You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2019/06/03 04:00:30 UTC

[skywalking] branch config-API updated: Finish the dynamic configuration service.

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch config-API
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/config-API by this push:
     new 89c2283  Finish the dynamic configuration service.
89c2283 is described below

commit 89c2283a90d3d4051fe77a5b81c5aace992886a4
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Mon Jun 3 12:00:20 2019 +0800

    Finish the dynamic configuration service.
---
 docs/en/setup/backend/backend-setup.md             |  2 ++
 docs/en/setup/backend/dynamic-config.md            | 39 ++++++++++++++++++++++
 .../src/main/proto/configuration-service.proto     |  4 +--
 3 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/docs/en/setup/backend/backend-setup.md b/docs/en/setup/backend/backend-setup.md
index 0092b5c..6ec0798 100644
--- a/docs/en/setup/backend/backend-setup.md
+++ b/docs/en/setup/backend/backend-setup.md
@@ -81,6 +81,8 @@ scale and support high payload, you may need this.
 system.
 1. [Time To Live (TTL)](ttl.md). Metrics and trace are time series data, they would be saved forever, you could 
 set the expired time for each dimension.
+1. [Dynamic Configuration](dynamic-config.md). Make configuration of OAP changed dynamic, from remote service
+or 3rd party configuration management system.
 
 ## Telemetry for backend
 OAP backend cluster itself underlying is a distributed streaming process system. For helping the Ops team,
diff --git a/docs/en/setup/backend/dynamic-config.md b/docs/en/setup/backend/dynamic-config.md
new file mode 100644
index 0000000..de13691
--- /dev/null
+++ b/docs/en/setup/backend/dynamic-config.md
@@ -0,0 +1,39 @@
+# Dynamic Configuration
+SkyWalking Configurations mostly are set through `application.yml` and OS system environment variables.
+But some of them are supporting dynamic settings from upstream management system.
+
+Right now, SkyWalking supports following dynamic configurations.
+
+| Config Key | Value Description | Value Format Example |
+|:----:|:----:|:----:|
+|receiver-trace.default.slowDBAccessThreshold| Thresholds of slow Database statement, override `receiver-trace/default/slowDBAccessThreshold` of `applciation.yml`. | default:200,mongodb:50|
+
+
+This feature depends on upstream service, so it is **OFF** as default.
+```yaml
+configuration:
+  none:
+```
+
+## 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 the upstream system implemented.
+The SkyWalking OAP fetches the configuration from the implementation(any system), after you open this implementation like this.
+
+```yaml
+configuration:
+  grpc:
+    # Upstream system hostname
+    host: 127.0.0.1
+    # Upstream system port
+    port: 9555
+    #period : 60 # Unit seconds, sync period. Default fetch every 60 seconds.
+    #clusterName: "default" # the name of current cluster, set the name if you want to upstream system known.  
+```
+
+
+## 3rd party Configuration Center
+We are welcome contributions to implement this module provider to support popular configuration center, 
+such as Zookeeper, etcd, Consul, Nacos. Submit issue to discuss.
+
+
diff --git a/oap-server/server-configuration/grpc-configuration-sync/src/main/proto/configuration-service.proto b/oap-server/server-configuration/grpc-configuration-sync/src/main/proto/configuration-service.proto
index 858de28..be15aef 100644
--- a/oap-server/server-configuration/grpc-configuration-sync/src/main/proto/configuration-service.proto
+++ b/oap-server/server-configuration/grpc-configuration-sync/src/main/proto/configuration-service.proto
@@ -37,10 +37,10 @@ message ConfigurationResponse {
     // Include all config items.
     // All config name should be not empty,
     // the name is composed by "module name"."provider name"."item name".
-    // Each watcher implementor will provide this, and it will be notified when the name matched.
+    // Each watcher implementor provides this, and it will be notified when the value changed.
     //
     // If the config center wants to set the value to NULL or empty,
-    // must set the name with empty and NULL explicitly.
+    // must set the name with empty value explicitly.
     repeated Config configTable = 1;
 }