Class: Temporalio::Contrib::OpenTelemetry::TracingInterceptor

Inherits:
Object
  • Object
show all
Includes:
Temporalio::Client::Interceptor, Worker::Interceptor::Activity, Worker::Interceptor::Workflow
Defined in:
lib/temporalio/contrib/open_telemetry.rb

Overview

Tracing interceptor to add OpenTelemetry traces to clients, activities, and workflows.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tracer, header_key: '_tracer-data', propagator: ::OpenTelemetry::Context::Propagation::CompositeTextMapPropagator.compose_propagators( [ ::OpenTelemetry::Trace::Propagation::TraceContext::TextMapPropagator.new, ::OpenTelemetry::Baggage::Propagation::TextMapPropagator.new ] ), always_create_workflow_spans: false) ⇒ TracingInterceptor

Create interceptor.



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/temporalio/contrib/open_telemetry.rb', line 31

def initialize(
  tracer,
  header_key: '_tracer-data',
  propagator: ::OpenTelemetry::Context::Propagation::CompositeTextMapPropagator.compose_propagators(
    [
      ::OpenTelemetry::Trace::Propagation::TraceContext::TextMapPropagator.new,
      ::OpenTelemetry::Baggage::Propagation::TextMapPropagator.new
    ]
  ),
  always_create_workflow_spans: false
)
  @tracer = tracer
  @header_key = header_key
  @propagator = propagator
  @always_create_workflow_spans = always_create_workflow_spans
end

Instance Attribute Details

#tracerOpenTelemetry::Trace::Tracer (readonly)



19
20
21
# File 'lib/temporalio/contrib/open_telemetry.rb', line 19

def tracer
  @tracer
end