Class InstrumentationConfig

java.lang.Object
io.opentelemetry.javaagent.bootstrap.internal.InstrumentationConfig

public abstract class InstrumentationConfig extends Object
Represents the global instrumentation configuration consisting of system properties, environment variables, contents of the agent configuration file and properties defined by the ConfigPropertySource SPI implementations.

In case any get*() method variant gets called for the same property more than once (e.g. each time an advice class executes) it is suggested to cache the result instead of repeatedly calling InstrumentationConfig. Instrumentation configuration does not change during the runtime so retrieving the property once and storing its result in a static final field allows JIT to do its magic and remove some code branches.

This class is internal and is hence not for public use. Its APIs are unstable and can change at any time.

  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    get()
    Returns the global instrumentation configuration.
    abstract boolean
    getBoolean(String name, boolean defaultValue)
    Returns a boolean-valued configuration property or defaultValue if a property with name name has not been configured.
    abstract double
    getDouble(String name, double defaultValue)
    Returns a double-valued configuration property or defaultValue if a property with name name has not been configured or when parsing has failed.
    abstract Duration
    getDuration(String name, Duration defaultValue)
    Returns a duration-valued configuration property or defaultValue if a property with name name has not been configured or when parsing has failed.
    abstract int
    getInt(String name, int defaultValue)
    Returns an integer-valued configuration property or defaultValue if a property with name name has not been configured or when parsing has failed.
    abstract List<String>
    getList(String name, List<String> defaultValue)
    Returns a list-valued configuration property or defaultValue if a property with name name has not been configured.
    abstract long
    getLong(String name, long defaultValue)
    Returns a long-valued configuration property or defaultValue if a property with name name has not been configured or when parsing has failed.
    abstract Map<String,String>
    getMap(String name, Map<String,String> defaultValue)
    Returns a map-valued configuration property or defaultValue if a property with name name has not been configured or when parsing has failed.
    abstract String
    Returns a string-valued configuration property or null if a property with name name has not been configured.
    abstract String
    getString(String name, String defaultValue)
    Returns a string-valued configuration property or defaultValue if a property with name name has not been configured.
    static void
    Sets the instrumentation configuration singleton.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • InstrumentationConfig

      public InstrumentationConfig()
  • Method Details

    • internalInitializeConfig

      public static void internalInitializeConfig(InstrumentationConfig config)
      Sets the instrumentation configuration singleton. This method is only supposed to be called once, during the agent initialization, just before get() is used for the first time.

      This method is internal and is hence not for public use. Its API is unstable and can change at any time.

    • get

      public static InstrumentationConfig get()
      Returns the global instrumentation configuration.
    • getString

      @Nullable public abstract String getString(String name)
      Returns a string-valued configuration property or null if a property with name name has not been configured.
    • getString

      public abstract String getString(String name, String defaultValue)
      Returns a string-valued configuration property or defaultValue if a property with name name has not been configured.
    • getBoolean

      public abstract boolean getBoolean(String name, boolean defaultValue)
      Returns a boolean-valued configuration property or defaultValue if a property with name name has not been configured.
    • getInt

      public abstract int getInt(String name, int defaultValue)
      Returns an integer-valued configuration property or defaultValue if a property with name name has not been configured or when parsing has failed.
    • getLong

      public abstract long getLong(String name, long defaultValue)
      Returns a long-valued configuration property or defaultValue if a property with name name has not been configured or when parsing has failed.
    • getDouble

      public abstract double getDouble(String name, double defaultValue)
      Returns a double-valued configuration property or defaultValue if a property with name name has not been configured or when parsing has failed.
    • getDuration

      public abstract Duration getDuration(String name, Duration defaultValue)
      Returns a duration-valued configuration property or defaultValue if a property with name name has not been configured or when parsing has failed.

      Durations can be of the form "{number}{unit}", where unit is one of:

      • ms
      • s
      • m
      • h
      • d

      If no unit is specified, milliseconds is the assumed duration unit.

      Examples: 10s, 20ms, 5000

    • getList

      public abstract List<String> getList(String name, List<String> defaultValue)
      Returns a list-valued configuration property or defaultValue if a property with name name has not been configured. The format of the original value must be comma-separated, e.g. one,two,three. The returned list is unmodifiable.
    • getMap

      public abstract Map<String,String> getMap(String name, Map<String,String> defaultValue)
      Returns a map-valued configuration property or defaultValue if a property with name name has not been configured or when parsing has failed. The format of the original value must be comma-separated for each key, with an '=' separating the key and value, e.g. key=value,anotherKey=anotherValue. The returned map is unmodifiable.