Dynamic Configuration

SkyWalking Configurations are mostly set through application.yml and OS system environment variables.

At the same time, some of them support dynamic settings from an upstream management system.

Currently, SkyWalking supports two types of dynamic configurations: Single and Group.

This feature depends on upstream service, so it is DISABLED by default.

configuration:
  selector: ${SW_CONFIGURATION:none}
  none:
  grpc:
    host: ${SW_DCS_SERVER_HOST:""}
    port: ${SW_DCS_SERVER_PORT:80}
    clusterName: ${SW_DCS_CLUSTER_NAME:SkyWalking}
    period: ${SW_DCS_PERIOD:20}
  # ... other implementations

Single Configuration

Single Configuration is a config key that corresponds to a specific config value. The logic structure is:

{configKey}:{configValue}

For example:

{agent-analyzer.default.slowDBAccessThreshold}:{default:200,mongodb:50}

Supported configurations are as follows:

Config KeyValue DescriptionValue Format Example
agent-analyzer.default.slowDBAccessThresholdThresholds of slow Database statement. Overrides agent-analyzer/default/slowDBAccessThreshold of application.yml.default:200,mongodb:50
agent-analyzer.default.uninstrumentedGatewaysThe uninstrumented gateways. Overrides gateways.yml.Same as gateways.yml.
alarm.default.alarm-settingsThe alarm settings. Overrides alarm-settings.yml.Same as alarm-settings.yml.
core.default.apdexThresholdThe apdex threshold settings. Overrides service-apdex-threshold.yml.Same as service-apdex-threshold.yml.
core.default.endpoint-name-groupingThe endpoint name grouping setting. Overrides endpoint-name-grouping.yml.Same as endpoint-name-grouping.yml.
core.default.log4j-xmlThe log4j xml configuration. Overrides log4j2.xml.Same as log4j2.xml.
agent-analyzer.default.traceSamplingPolicyThe sampling policy for default and service dimension, override trace-sampling-policy-settings.yml.same as trace-sampling-policy-settings.yml
configuration-discovery.default.agentConfigurationsThe ConfigurationDiscovery settings.See configuration-discovery.md.

Group Configuration

Group Configuration is a config key corresponding to a group sub config item. A sub config item is a key-value pair. The logic structure is:

{configKey}: |{subItemkey1}:{subItemValue1}
             |{subItemkey2}:{subItemValue2}
             |{subItemkey3}:{subItemValue3}
             ...      

For example:

{core.default.endpoint-name-grouping-openapi}:|{customerAPI-v1}:{value of customerAPI-v1}
                                              |{productAPI-v1}:{value of productAPI-v1}
                                              |{productAPI-v2}:{value of productAPI-v2}
                                              

Supported configurations are as follows:

Config KeySubItem Key DescriptionValue DescriptionValue Format Example
core.default.endpoint-name-grouping-openapiThe serviceName relevant to openAPI definition file. eg. serviceA. If the serviceName relevant to multiple files should add subItems for each files, and each subItem key should split serviceName and fileName with . eg. serviceA.API-file1,serviceA.API-file2The openAPI definitions file contents(yaml format) for create endpoint name grouping rules.Same as productAPI-v2.yaml

Dynamic Configuration Implementations