Class: OpenTelemetry::Baggage::Manager
- Inherits:
-
Object
- Object
- OpenTelemetry::Baggage::Manager
- Defined in:
- lib/opentelemetry/baggage/manager.rb
Overview
Operational Baggage Manager implementation
Instance Method Summary collapse
-
#build(context: Context.current) {|builder| ... } ⇒ Context
Used to chain modifications to baggage.
-
#clear(context: Context.current) ⇒ Context
Returns a new context with empty baggage.
- #raw_entries(context: Context.current) ⇒ Object private
-
#remove_value(key, context: Context.current) ⇒ Context
Returns a new context with value at key removed.
-
#set_value(key, value, metadata: nil, context: Context.current) ⇒ Context
Returns a new context with new key-value pair.
-
#value(key, context: Context.current) ⇒ String
Returns the corresponding baggage.entry (or nil) for key.
-
#values(context: Context.current) ⇒ Hash
Returns the baggage.
Instance Method Details
#build(context: Context.current) {|builder| ... } ⇒ Context
Used to chain modifications to baggage. The result is a context with an updated baggage. If only a single modification is being made to baggage, use the other methods on Manager
, if multiple modifications are being made, use this one.
24 25 26 27 28 |
# File 'lib/opentelemetry/baggage/manager.rb', line 24 def build(context: Context.current) builder = Builder.new(baggage_for(context).dup) yield builder context.set_value(BAGGAGE_KEY, builder.entries) end |
#clear(context: Context.current) ⇒ Context
Returns a new context with empty baggage
35 36 37 |
# File 'lib/opentelemetry/baggage/manager.rb', line 35 def clear(context: Context.current) context.set_value(BAGGAGE_KEY, EMPTY_BAGGAGE) end |
#raw_entries(context: Context.current) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
61 62 63 |
# File 'lib/opentelemetry/baggage/manager.rb', line 61 def raw_entries(context: Context.current) baggage_for(context).dup.freeze end |
#remove_value(key, context: Context.current) ⇒ Context
Returns a new context with value at key removed
88 89 90 91 92 93 94 95 |
# File 'lib/opentelemetry/baggage/manager.rb', line 88 def remove_value(key, context: Context.current) baggage = baggage_for(context) return context unless baggage.key?(key) new_baggage = baggage.dup new_baggage.delete(key) context.set_value(BAGGAGE_KEY, new_baggage) end |
#set_value(key, value, metadata: nil, context: Context.current) ⇒ Context
Returns a new context with new key-value pair
76 77 78 79 80 |
# File 'lib/opentelemetry/baggage/manager.rb', line 76 def set_value(key, value, metadata: nil, context: Context.current) new_baggage = baggage_for(context).dup new_baggage[key] = Entry.new(value, ) context.set_value(BAGGAGE_KEY, new_baggage) end |