Dynamic Configuration Service, DCS
Dynamic Configuration Service is a gRPC service which requires implementation of the upstream system. The SkyWalking OAP fetches the configuration from the implementation (any system) after you open the implementation like this:
configuration:
selector: ${SW_CONFIGURATION:grpc}
grpc:
host: ${SW_DCS_SERVER_HOST:""}
port: ${SW_DCS_SERVER_PORT:80}
clusterName: ${SW_DCS_CLUSTER_NAME:SkyWalking}
period: ${SW_DCS_PERIOD:20}
Config Server Response
uuid
: To identify whether the config data changed, if uuid
is the same, it is not required to respond to the config data.
Single Config
Implement:
rpc call (ConfigurationRequest) returns (ConfigurationResponse) { }
e.g. The config is:
{agent-analyzer.default.slowDBAccessThreshold}:{default:200,mongodb:50}
The response configTable
is:
configTable {
name: "agent-analyzer.default.slowDBAccessThreshold"
value: "default:200,mongodb:50"
}
Group Config
Implement:
rpc callGroup (ConfigurationRequest) returns (GroupConfigurationResponse) {}
Respond config data GroupConfigItems groupConfigTable
e.g. The config is:
{core.default.endpoint-name-grouping-openapi}:|{customerAPI-v1}:{value of customerAPI-v1}
|{productAPI-v1}:{value of productAPI-v1}
|{productAPI-v2}:{value of productAPI-v2}
The response groupConfigTable
is:
groupConfigTable {
groupName: "core.default.endpoint-name-grouping-openapi"
items {
name: "customerAPI-v1"
value: "value of customerAPI-v1"
}
items {
name: "productAPI-v1"
value: "value of productAPI-v1"
}
items {
name: "productAPI-v2"
value: "value of productAPI-v2"
}
}