Class: OpenTelemetry::SDK::Configurator
- Inherits:
- 
      Object
      
        - Object
- OpenTelemetry::SDK::Configurator
 
- Defined in:
- lib/opentelemetry/sdk/configurator.rb
Overview
The configurator provides defaults and facilitates configuring the SDK for use.
Instance Attribute Summary collapse
- #error_handler ⇒ Object
- 
  
    
      #id_generator  ⇒ Object 
    
    
  
  
  
  
    
    
      writeonly
    
  
  
  
  
  
  
    Sets the attribute id_generator. 
- #logger ⇒ Object
- 
  
    
      #propagators  ⇒ Object 
    
    
  
  
  
  
    
    
      writeonly
    
  
  
  
  
  
  
    Sets the attribute propagators. 
Instance Method Summary collapse
- 
  
    
      #add_span_processor(span_processor)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Add a span processor to the export pipeline. 
- 
  
    
      #configure  ⇒ Object 
    
    
  
  
  
  
  
  
  
  private
  
    The configure method is where we define the setup process. 
- 
  
    
      #initialize  ⇒ Configurator 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Configurator. 
- 
  
    
      #resource=(new_resource)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Accepts a resource object that is merged with the default telemetry sdk resource. 
- 
  
    
      #service_name=(service_name)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Accepts a string that is merged in as the service.name resource attribute. 
- 
  
    
      #service_version=(service_version)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Accepts a string that is merged in as the service.version resource attribute. 
- 
  
    
      #use(instrumentation_name, config = nil)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Install an instrumentation with specificied optional config.
- 
  
    
      #use_all(instrumentation_config_map = {})  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Install all registered instrumentation. 
Constructor Details
#initialize ⇒ Configurator
Returns a new instance of Configurator.
| 20 21 22 23 24 25 26 27 28 | # File 'lib/opentelemetry/sdk/configurator.rb', line 20 def initialize @instrumentation_names = [] @instrumentation_config_map = {} @propagators = nil @span_processors = [] @use_mode = USE_MODE_UNSPECIFIED @resource = Resources::Resource.default @id_generator = OpenTelemetry::Trace end | 
Instance Attribute Details
#error_handler ⇒ Object
| 34 35 36 | # File 'lib/opentelemetry/sdk/configurator.rb', line 34 def error_handler @error_handler ||= OpenTelemetry.error_handler end | 
#id_generator=(value) ⇒ Object (writeonly)
Sets the attribute id_generator
| 18 19 20 | # File 'lib/opentelemetry/sdk/configurator.rb', line 18 def id_generator=(value) @id_generator = value end | 
#logger ⇒ Object
| 30 31 32 | # File 'lib/opentelemetry/sdk/configurator.rb', line 30 def logger @logger ||= OpenTelemetry.logger end | 
#propagators=(value) ⇒ Object (writeonly)
Sets the attribute propagators
| 18 19 20 | # File 'lib/opentelemetry/sdk/configurator.rb', line 18 def propagators=(value) @propagators = value end | 
Instance Method Details
#add_span_processor(span_processor) ⇒ Object
Add a span processor to the export pipeline
| 100 101 102 | # File 'lib/opentelemetry/sdk/configurator.rb', line 100 def add_span_processor(span_processor) @span_processors << span_processor end | 
#configure ⇒ 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.
The configure method is where we define the setup process. This allows us to make certain guarantees about which systems and globals are setup at each stage. The setup process is: - setup logging - setup propagation - setup tracer_provider and meter_provider - install instrumentation
| 112 113 114 115 116 117 118 119 120 121 | # File 'lib/opentelemetry/sdk/configurator.rb', line 112 def configure OpenTelemetry.logger = logger OpenTelemetry.error_handler = error_handler OpenTelemetry.baggage = Baggage::Manager.new configure_propagation configure_span_processors tracer_provider.id_generator = @id_generator OpenTelemetry.tracer_provider = tracer_provider install_instrumentation end | 
#resource=(new_resource) ⇒ Object
Accepts a resource object that is merged with the default telemetry sdk resource. The use of this method is optional, and is provided as means to include additional resource information. If a resource key collision occurs the passed in resource takes priority.
| 44 45 46 | # File 'lib/opentelemetry/sdk/configurator.rb', line 44 def resource=(new_resource) @resource = @resource.merge(new_resource) end | 
#service_name=(service_name) ⇒ Object
Accepts a string that is merged in as the service.name resource attribute. The most recent assigned value will be used in the event of repeated calls to this setter.
| 52 53 54 55 56 | # File 'lib/opentelemetry/sdk/configurator.rb', line 52 def service_name=(service_name) self.resource = OpenTelemetry::SDK::Resources::Resource.create( OpenTelemetry::SDK::Resources::Constants::SERVICE_RESOURCE[:name] => service_name ) end | 
#service_version=(service_version) ⇒ Object
Accepts a string that is merged in as the service.version resource attribute. The most recent assigned value will be used in the event of repeated calls to this setter.
| 62 63 64 65 66 | # File 'lib/opentelemetry/sdk/configurator.rb', line 62 def service_version=(service_version) self.resource = OpenTelemetry::SDK::Resources::Resource.create( OpenTelemetry::SDK::Resources::Constants::SERVICE_RESOURCE[:version] => service_version ) end | 
#use(instrumentation_name, config = nil) ⇒ Object
Install an instrumentation with specificied optional config. Use can be called multiple times to install multiple instrumentation. Only use or use_all, but not both when installing instrumentation. A call to use_all after use will result in an exception.
| 76 77 78 79 80 | # File 'lib/opentelemetry/sdk/configurator.rb', line 76 def use(instrumentation_name, config = nil) check_use_mode!(USE_MODE_ONE) @instrumentation_names << instrumentation_name @instrumentation_config_map[instrumentation_name] = config if config end | 
#use_all(instrumentation_config_map = {}) ⇒ Object
Install all registered instrumentation. Configuration for specific instrumentation can be provided with the optional instrumentation_config_map parameter. Only use or use_all, but not both when installing instrumentation. A call to use after use_all will result in an exception.
| 90 91 92 93 | # File 'lib/opentelemetry/sdk/configurator.rb', line 90 def use_all(instrumentation_config_map = {}) check_use_mode!(USE_MODE_ALL) @instrumentation_config_map = instrumentation_config_map end |