Class: Instana::SpanFiltering::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/instana/span_filtering/configuration.rb

Overview

Configuration class for span filtering

This class handles loading and managing span filtering rules from various sources:

  • YAML configuration file (via INSTANA_CONFIG_PATH)

  • Environment variables

  • Agent discovery response

It supports both include and exclude rules with various matching strategies

Constant Summary collapse

TRACING_CONFIG_WARNING =
'Please use "tracing" instead of "com.instana.tracing" for local configuration file.'.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



19
20
21
22
23
24
# File 'lib/instana/span_filtering/configuration.rb', line 19

def initialize
  @include_rules = []
  @exclude_rules = []
  @deactivated = false
  load_configuration
end

Instance Attribute Details

#deactivatedObject (readonly)

Returns the value of attribute deactivated.



15
16
17
# File 'lib/instana/span_filtering/configuration.rb', line 15

def deactivated
  @deactivated
end

#exclude_rulesObject (readonly)

Returns the value of attribute exclude_rules.



15
16
17
# File 'lib/instana/span_filtering/configuration.rb', line 15

def exclude_rules
  @exclude_rules
end

#include_rulesObject (readonly)

Returns the value of attribute include_rules.



15
16
17
# File 'lib/instana/span_filtering/configuration.rb', line 15

def include_rules
  @include_rules
end

Instance Method Details

#load_configurationObject

Load configuration from all available sources



27
28
29
30
31
# File 'lib/instana/span_filtering/configuration.rb', line 27

def load_configuration
  load_from_yaml
  load_from_env_vars unless rules_loaded?
  # Agent configuration will be loaded after discovery via read_config_from_agent
end

#read_config_from_agent(discovery) ⇒ Object

Read configuration from agent discovery response This is called from Config#read_config_from_agent after discovery is complete

Parameters:

  • discovery (Hash)

    The discovery response from the agent



36
37
38
39
40
41
42
# File 'lib/instana/span_filtering/configuration.rb', line 36

def read_config_from_agent(discovery)
  return if rules_loaded? # Don't override if already loaded from YAML or env

  process_discovery_config(discovery)
rescue => e
  Instana.logger.warn("Failed to read span filtering configuration from agent: #{e.message}")
end