Module: Pigeon::Tracing
- Defined in:
- lib/pigeon/tracing.rb,
lib/pigeon/tracing/core.rb,
lib/pigeon/tracing/messaging.rb
Overview
Tracing module for Pigeon using OpenTelemetry
Defined Under Namespace
Class Method Summary collapse
-
.available? ⇒ Boolean
Check if OpenTelemetry is available.
-
.extract_context(headers) ⇒ OpenTelemetry::Context?
Extract trace context from headers.
-
.init(service_name: "pigeon", exporter: nil) ⇒ Boolean
Initialize OpenTelemetry tracing.
-
.inject_context(headers = {}, context = nil) ⇒ Hash
Inject trace context into headers.
-
.trace_batch_process(batch_size) {|span| ... } ⇒ Object
Create a span for batch processing.
-
.trace_process(message) {|span| ... } ⇒ Object
Create a span for processing a message.
-
.trace_publish(topic:, payload:, key: nil, headers: nil, correlation_id: nil) {|span, context, headers| ... } ⇒ Object
Create a span for publishing a message.
-
.tracer(name = "pigeon") ⇒ OpenTelemetry::Tracer?
Get the OpenTelemetry tracer.
-
.with_span(name, attributes: {}, kind: :internal, parent_context: nil) { ... } ⇒ Object
Create a span for a block of code.
Class Method Details
.available? ⇒ Boolean
Check if OpenTelemetry is available
21 22 23 |
# File 'lib/pigeon/tracing.rb', line 21 def available? Core.available? end |
.extract_context(headers) ⇒ OpenTelemetry::Context?
Extract trace context from headers
54 55 56 |
# File 'lib/pigeon/tracing.rb', line 54 def extract_context(headers) Core.extract_context(headers) end |
.init(service_name: "pigeon", exporter: nil) ⇒ Boolean
Initialize OpenTelemetry tracing
29 30 31 |
# File 'lib/pigeon/tracing.rb', line 29 def init(service_name: "pigeon", exporter: nil) Core.init(service_name: service_name, exporter: exporter) end |
.inject_context(headers = {}, context = nil) ⇒ Hash
Inject trace context into headers
62 63 64 |
# File 'lib/pigeon/tracing.rb', line 62 def inject_context(headers = {}, context = nil) Core.inject_context(headers, context) end |
.trace_batch_process(batch_size) {|span| ... } ⇒ Object
Create a span for batch processing
102 103 104 |
# File 'lib/pigeon/tracing.rb', line 102 def trace_batch_process(batch_size, &) Messaging.trace_batch_process(batch_size, &) end |
.trace_process(message) {|span| ... } ⇒ Object
Create a span for processing a message
93 94 95 |
# File 'lib/pigeon/tracing.rb', line 93 def trace_process(, &) Messaging.trace_process(, &) end |
.trace_publish(topic:, payload:, key: nil, headers: nil, correlation_id: nil) {|span, context, headers| ... } ⇒ Object
Create a span for publishing a message
77 78 79 80 81 82 83 84 85 86 |
# File 'lib/pigeon/tracing.rb', line 77 def trace_publish(topic:, payload:, key: nil, headers: nil, correlation_id: nil, &) Messaging.trace_publish( topic: topic, payload: payload, key: key, headers: headers, correlation_id: correlation_id, & ) end |
.tracer(name = "pigeon") ⇒ OpenTelemetry::Tracer?
Get the OpenTelemetry tracer
36 37 38 |
# File 'lib/pigeon/tracing.rb', line 36 def tracer(name = "pigeon") Core.tracer(name) end |
.with_span(name, attributes: {}, kind: :internal, parent_context: nil) { ... } ⇒ Object
Create a span for a block of code
47 48 49 |
# File 'lib/pigeon/tracing.rb', line 47 def with_span(name, attributes: {}, kind: :internal, parent_context: nil, &) Core.with_span(name, attributes: attributes, kind: kind, parent_context: parent_context, &) end |