Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

255
Views
ID de DataDog a OpenTracing: conversión de enteros sin firmar de 64 bits a hex. sin firmar de 128 bits y hexadecimal sin firmar de 64 bits

Estoy tratando de correlacionar los rastros que se originan en el RUM SDK de DataDog, que BE instrumenta con OpenTelemetry. Esencialmente tratando de implementar el reverso de la documentación de DD en Connect OpenTelemetry Traces And Logs

Las propiedades TraceId y SpanId de OpenTelemetry difieren de las convenciones de Datadog. Por lo tanto, es necesario traducir TraceId y SpanId de sus formatos OpenTelemetry (un int sin firmar de 128 bits y un int sin firmar de 64 bits representado como una cadena en minúsculas de 32 caracteres hexadecimales y 16 caracteres hexadecimales, respectivamente) a sus formatos Datadog (un int sin firmar de 64 bits) .

El contexto se establece en mi BE de la siguiente manera;

 (event:any) => { if(event.headers) { const traceId = event.headers['x-datadog-trace-id'] const spanId = event.headers['x-datadog-parent-id'] if(traceId && spanId) { const convertedTraceId = convertToOtelId(traceId, 32); const convertedSpanId = convertToOtelId(spanId, 16); const spanContext: SpanContext = { traceId: convertedTraceId, spanId: convertedSpanId, traceFlags: 1, isRemote: true, }; return propagation.extract(context.active(), spanContext); } } return ROOT_CONTEXT; }

convertToOtelId está produciendo estos resultados;

trace id - In: 2245099779221068633, Out: 00000000000000001f28325aa9c79b59

span id - In: 4011377516575614177, Out: 37ab46991f7a64e1

Obviamente, el uint de 128 bits para trace_id no parece correcto con sus ceros iniciales. ¿Estoy entendiendo esta conversión correctamente?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Sí, lo estás haciendo correctamente. Los ceros iniciales adicionales indican los bits restantes no utilizados. Aquí hay una verificación cruzada simple en python.

 >>> >>> format(2245099779221068633, "032x") # The trace ID as 32-byte hexadecimal string '00000000000000001f28325aa9c79b59' >>> >>> format(4011377516575614177, "016x") # The span ID as 16-byte hexadecimal string '37ab46991f7a64e1'
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!