module OpenTelemetry::Common::HTTP::ClientContext

ClientContext contains common helpers for context propagation

Constants

CURRENT_ATTRIBUTES_HASH

Public Instance Methods

attributes(context = nil) click to toggle source

Returns the attributes hash representing the HTTP client context found in the optional context or the current context if none is provided.

@param [optional Context] context The context to lookup the current

attributes hash. Defaults to Context.current
# File lib/opentelemetry/common/http/client_context.rb, line 23
def attributes(context = nil)
  context ||= Context.current
  context.value(CURRENT_ATTRIBUTES_HASH) || {}
end
context_with_attributes(attributes_hash, parent_context: Context.current) click to toggle source

Returns a context containing the merged attributes hash, derived from the optional parent context, or the current context if one was not provided.

@param [optional Context] context The context to use as the parent for

the returned context
# File lib/opentelemetry/common/http/client_context.rb, line 33
def context_with_attributes(attributes_hash, parent_context: Context.current)
  attributes_hash = attributes(parent_context).merge(attributes_hash)
  parent_context.set_value(CURRENT_ATTRIBUTES_HASH, attributes_hash)
end
with_attributes(attributes_hash) { |h, c| ... } click to toggle source

Activates/deactivates the merged attributes hash within the current Context, which makes the “current attributes hash” available implicitly.

On exit, the attributes hash that was active before calling this method will be reactivated.

@param [Span] span the span to activate @yield [Hash, Context] yields attributes hash and a context containing the

attributes hash to the block.
# File lib/opentelemetry/common/http/client_context.rb, line 47
def with_attributes(attributes_hash)
  attributes_hash = attributes.merge(attributes_hash)
  Context.with_value(CURRENT_ATTRIBUTES_HASH, attributes_hash) { |c, h| yield h, c }
end