Module: OpenTelemetry::Common::HTTP::ClientContext

Extended by:
ClientContext
Included in:
ClientContext
Defined in:
lib/opentelemetry/common/http/client_context.rb

Overview

ClientContext contains common helpers for context propagation

Instance Method Summary collapse

Instance Method Details

#attributes(context = nil) ⇒ Object

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

Parameters:

  • context (optional Context) (defaults to: nil)

    The context to lookup the current attributes hash. Defaults to Context.current



23
24
25
26
# 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) ⇒ Object

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

Parameters:

  • context (optional Context)

    The context to use as the parent for the returned context



33
34
35
36
# 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) {|Hash, Context| ... } ⇒ Object

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.

Parameters:

  • span (Span)

    the span to activate

Yields:

  • (Hash, Context)

    yields attributes hash and a context containing the attributes hash to the block.



47
48
49
50
# 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