blob: 90279e59e385382dc3b7a74c8a1697d542c0e9a9 [file] [log] [blame] [view]
# Dynamic Configuration Service, DCS
[Dynamic Configuration Service](../../../../oap-server/server-configuration/grpc-configuration-sync/src/main/proto/configuration-service.proto)
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:
```yaml
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"
}
}
```