Class: OpenTelemetry::Propagator::Vitess::SqlQueryPropagator
- Inherits:
-
Object
- Object
- OpenTelemetry::Propagator::Vitess::SqlQueryPropagator
- Defined in:
- lib/opentelemetry/propagator/vitess/sql_query_propagator.rb
Overview
Propagates context using Vitess header format: https://vitess.io/docs/16.0/user-guides/configuration-advanced/tracing/#instrumenting-queries
Instance Method Summary collapse
-
#extract(carrier, context: Context.current, getter: nil) ⇒ Object
No-op extractor.
-
#fields ⇒ Array<String>
Returns the predefined propagation fields.
-
#initialize ⇒ SqlQueryPropagator
constructor
A new instance of SqlQueryPropagator.
- #inject(carrier, context: Context.current, setter: SqlQuerySetter) ⇒ Object
Constructor Details
#initialize ⇒ SqlQueryPropagator
Returns a new instance of SqlQueryPropagator.
42 43 44 |
# File 'lib/opentelemetry/propagator/vitess/sql_query_propagator.rb', line 42 def initialize @jaeger = OpenTelemetry::Propagator::Jaeger.text_map_propagator end |
Instance Method Details
#extract(carrier, context: Context.current, getter: nil) ⇒ Object
No-op extractor.
47 48 49 |
# File 'lib/opentelemetry/propagator/vitess/sql_query_propagator.rb', line 47 def extract(carrier, context: Context.current, getter: nil) context end |
#fields ⇒ Array<String>
Returns the predefined propagation fields. If your carrier is reused, you should delete the fields returned by this method before calling +inject+.
72 73 74 |
# File 'lib/opentelemetry/propagator/vitess/sql_query_propagator.rb', line 72 def fields FIELDS end |
#inject(carrier, context: Context.current, setter: SqlQuerySetter) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/opentelemetry/propagator/vitess/sql_query_propagator.rb', line 56 def inject(carrier, context: Context.current, setter: SqlQuerySetter) span_context = Trace.current_span(context).context return unless span_context.valid? jaeger = {} @jaeger.inject(jaeger, context: context) encoded = Base64.strict_encode64(jaeger.to_json) setter.set(carrier, VT_SPAN_CONTEXT, encoded) nil end |