wu-sheng commented on a change in pull request #4514: Add selector property in 
application.yml
URL: https://github.com/apache/skywalking/pull/4514#discussion_r392670011
 
 

 ##########
 File path: docs/en/setup/backend/backend-setup.md
 ##########
 @@ -14,26 +14,41 @@ End user can switch or assemble the collector features by 
their own requirements
 
 So, in `application.yml`, there are three levels.
 1. **Level 1**, module name. Meaning this module is active in running mode.
-1. **Level 2**, provider name. Set the provider of the module.
+1. **Level 2**, provider name and provider selector. Available providers are 
listed here with a selector to indicate which one will actually take effect.
 1. **Level 3**. settings of the provider.
 
 Example:
+
 ```yaml
-core:
-  default:
-    restHost: 0.0.0.0
-    restPort: 12800
-    restContextPath: /
-    gRPCHost: 0.0.0.0
-    gRPCPort: 11800
+storage:
+  selector: mysql # the mysql storage will actually be activated, while the h2 
storage takes no effect
+  h2:
+    driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
+    url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
+    user: ${SW_STORAGE_H2_USER:sa}
+    metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
+  mysql:
+    properties:
+      jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest"}
+      dataSource.user: ${SW_DATA_SOURCE_USER:root}
+      dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root@1234}
+      dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
+      dataSource.prepStmtCacheSize: 
${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
+      dataSource.prepStmtCacheSqlLimit: 
${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
+      dataSource.useServerPrepStmts: 
${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
+    metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}
+  # other configurations
 ```
-1. **core** is the module.
-1. **default** is the default implementor of core module.
-1. `restHost`, `restPort`, ... `gRPCHost` are all setting items of the 
implementor.
+
+1. **`core`** is the module.
+1. **`selector`** selects one out of the all providers listed below, the 
unselected ones take no effect as if they were deleted.
+1. **`default`** is the default implementor of core module.
+1. `driver`, `url`, ... `metadataQueryMaxSize` are all setting items of the 
implementor.
 
 At the same time, modules includes required and optional, the required modules 
provide the skeleton of backend,
-even modularization supported pluggable, remove those modules are meaningless. 
We highly recommend you don't try to
-change APIs of those modules, unless you understand SkyWalking project and its 
codes very well.
+even modularization supported pluggable, removing those modules are 
meaningless, for optional modules, if there is provider
+called `none`, you can simply set it to the `selector` to disable it, 
otherwise, please set `-` to the selector.
 
 Review comment:
   `if there is provider called `none`, you can simply set it to the `selector` 
to disable it, otherwise, please set `-` to the selector`
   ->
   
   Some modules have a provider implementation called none, meaning it only 
provides a shell with no actual logic, typically such as telemetry.
   
   Set `-` to the selector means this whole module will be excluded in the 
runtime.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to