Skip to content

Commit 1e24e4a

Browse files
committed
update
1 parent f27ecc6 commit 1e24e4a

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
stack-service-base (0.0.90)
4+
stack-service-base (0.0.91)
55
async
66
debug
77
dotenv

lib/stack-service-base/open_telemetry.rb

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,12 +225,22 @@ def otl_traceparent_id
225225
return nil unless OTEL_ENABLED && Otel.enabled
226226

227227
span_context = OpenTelemetry::Trace.current_span.context
228-
trace_id = span_context.trace_id.unpack1('H*')
229-
span_id = span_context.span_id.unpack1('H*')
230-
trace_flags = format('%02x', span_context.trace_flags.instance_eval{ @flags }) # Two-digit hex for trace flags (e.g., sampled)
228+
trace_id = span_context.hex_trace_id
229+
span_id = span_context.hex_span_id
230+
trace_flags = span_context.trace_flags.sampled? ? '01' : '00'
231231
"00-#{trace_id}-#{span_id}-#{trace_flags}"
232232
end
233233

234+
def otl_span_from_traceparent(traceparent_id, name, attributes = {})
235+
parent_ctx = OpenTelemetry.propagation.extract( 'traceparent' => traceparent_id )
236+
237+
OpenTelemetry::Context.with_current(parent_ctx) do
238+
otl_span(name, attributes) do |span|
239+
yield span if block_given?
240+
end
241+
end
242+
end
243+
234244
def otl_def(name)
235245
original_method = self.respond_to?(:instance_method) ? instance_method(name) : method(name)
236246
self.respond_to?(:remove_method) ? remove_method(name) : Object.send(:remove_method, name)
@@ -278,4 +288,3 @@ def process
278288
end
279289
end
280290

281-

0 commit comments

Comments
 (0)