@@ -30,6 +30,8 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
3030 |> Keyword . delete ( :attributes )
3131 |> Keyword . merge (
3232 trace_id: cast_trace_id ( otel_attrs [ :trace_id ] ) ,
33+ span_id: cast_span_id ( otel_attrs [ :span_id ] ) ,
34+ parent_span_id: cast_span_id ( otel_attrs [ :parent_span_id ] ) ,
3335 origin: origin ,
3436 attributes: attributes
3537 )
@@ -38,6 +40,10 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
3840 struct ( __MODULE__ , attrs )
3941 end
4042
43+ defp cast_span_id ( nil ) , do: nil
44+ defp cast_span_id ( :undefined ) , do: nil
45+ defp cast_span_id ( span_id ) , do: bytes_to_hex ( span_id , 16 )
46+
4147 defp cast_trace_id ( trace_id ) , do: bytes_to_hex ( trace_id , 32 )
4248
4349 defp bytes_to_hex ( bytes , length ) do
@@ -63,7 +69,7 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
6369
6470 SpanStorage . update_span ( span_record )
6571
66- if span_record . parent_span_id == :undefined do
72+ if span_record . parent_span_id == nil do
6773 root_span = SpanStorage . get_root_span ( span_record . span_id )
6874 child_spans = SpanStorage . get_child_spans ( span_record . span_id )
6975
@@ -91,7 +97,7 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
9197 contexts: % {
9298 trace: % {
9399 trace_id: root_span . trace_id ,
94- span_id: cast_span_id ( root_span . span_id ) ,
100+ span_id: root_span . span_id ,
95101 op: root_span . name
96102 }
97103 } ,
@@ -113,8 +119,8 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
113119 contexts: % {
114120 trace: % {
115121 trace_id: root_span . trace_id ,
116- span_id: cast_span_id ( root_span . span_id ) ,
117- parent_span_id: cast_span_id ( root_span . parent_span_id ) ,
122+ span_id: root_span . span_id ,
123+ parent_span_id: root_span . parent_span_id ,
118124 op: "db" ,
119125 origin: root_span . origin
120126 }
@@ -203,8 +209,8 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
203209 contexts: % {
204210 trace: % {
205211 trace_id: root_span . trace_id ,
206- span_id: cast_span_id ( root_span . span_id ) ,
207- parent_span_id: cast_span_id ( root_span . parent_span_id )
212+ span_id: root_span . span_id ,
213+ parent_span_id: root_span . parent_span_id
208214 }
209215 } ,
210216 platform: "elixir" ,
@@ -231,7 +237,7 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
231237 defp build_trace_context ( % SpanRecord { origin: origin , attributes: attributes } = root_span ) do
232238 % {
233239 trace_id: root_span . trace_id ,
234- span_id: cast_span_id ( root_span . span_id ) ,
240+ span_id: root_span . span_id ,
235241 parent_span_id: nil ,
236242 op: "http.server" ,
237243 origin: origin ,
@@ -252,8 +258,8 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
252258 start_timestamp: cast_timestamp ( span_record . start_time ) ,
253259 timestamp: cast_timestamp ( span_record . end_time ) ,
254260 trace_id: trace_id ,
255- span_id: cast_span_id ( span_record . span_id ) ,
256- parent_span_id: cast_span_id ( span_record . parent_span_id ) ,
261+ span_id: span_record . span_id ,
262+ parent_span_id: span_record . parent_span_id ,
257263 description: attributes [ :"http.route" ] ,
258264 origin: span_record . origin
259265 }
@@ -265,8 +271,8 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
265271 op: span_record . name ,
266272 start_timestamp: cast_timestamp ( span_record . start_time ) ,
267273 timestamp: cast_timestamp ( span_record . end_time ) ,
268- span_id: cast_span_id ( span_record . span_id ) ,
269- parent_span_id: cast_span_id ( span_record . parent_span_id )
274+ span_id: span_record . span_id ,
275+ parent_span_id: span_record . parent_span_id
270276 }
271277 end
272278
@@ -276,8 +282,8 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
276282 op: span_record . name ,
277283 start_timestamp: cast_timestamp ( span_record . start_time ) ,
278284 timestamp: cast_timestamp ( span_record . end_time ) ,
279- span_id: cast_span_id ( span_record . span_id ) ,
280- parent_span_id: cast_span_id ( span_record . parent_span_id ) ,
285+ span_id: span_record . span_id ,
286+ parent_span_id: span_record . parent_span_id ,
281287 description: span_record . name ,
282288 origin: span_record . origin
283289 }
@@ -292,8 +298,8 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
292298 op: span_record . name ,
293299 start_timestamp: cast_timestamp ( span_record . start_time ) ,
294300 timestamp: cast_timestamp ( span_record . end_time ) ,
295- span_id: cast_span_id ( span_record . span_id ) ,
296- parent_span_id: cast_span_id ( span_record . parent_span_id ) ,
301+ span_id: span_record . span_id ,
302+ parent_span_id: span_record . parent_span_id ,
297303 origin: span_record . origin ,
298304 data: % {
299305 "db.system" => attributes [ :"db.system" ] ,
@@ -311,15 +317,11 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
311317 op: span_record . name ,
312318 start_timestamp: cast_timestamp ( span_record . start_time ) ,
313319 timestamp: cast_timestamp ( span_record . end_time ) ,
314- span_id: cast_span_id ( span_record . span_id ) ,
315- parent_span_id: cast_span_id ( span_record . parent_span_id )
320+ span_id: span_record . span_id ,
321+ parent_span_id: span_record . parent_span_id
316322 }
317323 end
318324
319- defp cast_span_id ( nil ) , do: nil
320- defp cast_span_id ( :undefined ) , do: nil
321- defp cast_span_id ( span_id ) , do: bytes_to_hex ( span_id , 16 )
322-
323325 defp cast_timestamp ( :undefined ) , do: nil
324326 defp cast_timestamp ( nil ) , do: nil
325327
@@ -329,11 +331,4 @@ defmodule Sentry.Opentelemetry.SpanProcessor do
329331
330332 DateTime . to_iso8601 ( datetime )
331333 end
332-
333- defp bytes_to_hex ( bytes , length ) do
334- case ( :otel_utils . format_binary_string ( "~#{ length } .16.0b" , [ bytes ] ) ) do
335- { :ok , result } -> result
336- { :error , _ } -> raise "Failed to convert bytes to hex: #{ inspect ( bytes ) } "
337- end
338- end
339334end
0 commit comments