未验证 提交 2c676ead 编写于 作者: wu-sheng's avatar wu-sheng 提交者: GitHub

Add OAP configuration vocabulary documentation. (#5149)

上级 1877d0fc
...@@ -70,6 +70,7 @@ If you are already familiar with SkyWalking, you could use this catalog to find ...@@ -70,6 +70,7 @@ If you are already familiar with SkyWalking, you could use this catalog to find
* Use [ALS (access log service)](https://www.envoyproxy.io/docs/envoy/latest/api-v2/service/accesslog/v2/als.proto) to observe service mesh, without Mixer. Follow [document](en/setup/envoy/als_setting.md) to open it. * Use [ALS (access log service)](https://www.envoyproxy.io/docs/envoy/latest/api-v2/service/accesslog/v2/als.proto) to observe service mesh, without Mixer. Follow [document](en/setup/envoy/als_setting.md) to open it.
* [Backend, UI and CLI setup document](en/setup/backend/backend-ui-setup.md). * [Backend, UI and CLI setup document](en/setup/backend/backend-ui-setup.md).
* [Backend setup document](en/setup/backend/backend-setup.md). * [Backend setup document](en/setup/backend/backend-setup.md).
* [Configuration Vocabulary](en/setup/backend/configuration-vocabulary.md). Configuration Vocabulary lists all available configurations provided by `application.yml`.
* [Overriding settings](en/setup/backend/backend-setting-override.md) in application.yml is supported. * [Overriding settings](en/setup/backend/backend-setting-override.md) in application.yml is supported.
* [IP and port setting](en/setup/backend/backend-ip-port.md). Introduces how IP and port set can be used. * [IP and port setting](en/setup/backend/backend-ip-port.md). Introduces how IP and port set can be used.
* [Backend init mode startup](en/setup/backend/backend-init-mode.md). How to init the environment and exit graciously. Read this before you try to start a new cluster. * [Backend init mode startup](en/setup/backend/backend-init-mode.md). How to init the environment and exit graciously. Read this before you try to start a new cluster.
......
...@@ -68,6 +68,9 @@ service by some network(RPC) protocol, such as gRPC, HTTPRestful. ...@@ -68,6 +68,9 @@ service by some network(RPC) protocol, such as gRPC, HTTPRestful.
The receivers have many different module names, you could The receivers have many different module names, you could
read **Set receivers** document in the [link list](#advanced-feature-document-link-list). read **Set receivers** document in the [link list](#advanced-feature-document-link-list).
## Configuration Vocabulary
All available configurations in `application.yml` could be found in [Configuration Vocabulary](configuration-vocabulary.md).
## Advanced feature document link list ## Advanced feature document link list
After understand the setting file structure, you could choose your interesting feature document. After understand the setting file structure, you could choose your interesting feature document.
We recommend you to read the feature documents in our following order. We recommend you to read the feature documents in our following order.
......
...@@ -51,13 +51,14 @@ storage: ...@@ -51,13 +51,14 @@ storage:
nameSpace: ${SW_NAMESPACE:""} nameSpace: ${SW_NAMESPACE:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200} clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"} protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:""} trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}
trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""} trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}
dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.
user: ${SW_ES_USER:""} user: ${SW_ES_USER:""}
password: ${SW_ES_PASSWORD:""} password: ${SW_ES_PASSWORD:""}
secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool. secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool.
dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index. indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # Shard number of new indexes
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2} superDatasetIndexShardsFactor: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR:5} # Super data set has been defined in the codes, such as trace segments. This factor provides more shards for the super data set, shards number = indexShardsNumber * superDatasetIndexShardsFactor. Also, this factor effects Zipkin and Jaeger traces.
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0} indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
# Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html # Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests
...@@ -88,14 +89,7 @@ storage: ...@@ -88,14 +89,7 @@ storage:
trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"} trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}
trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""} trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"https"} protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"https"}
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2} ...
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
# Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:2000} # Execute the bulk every 2000 requests
bulkSize: ${SW_STORAGE_ES_BULK_SIZE:20} # flush the bulk every 20mb
flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
advanced: ${SW_STORAGE_ES_ADVANCED:""}
``` ```
- File at `trustStorePath` is being monitored, once it is changed, the ElasticSearch client will do reconnecting. - File at `trustStorePath` is being monitored, once it is changed, the ElasticSearch client will do reconnecting.
- `trustStorePass` could be changed on the runtime through [**Secrets Management File Of ElasticSearch Authentication**](#secrets-management-file-of-elasticsearch-authentication). - `trustStorePass` could be changed on the runtime through [**Secrets Management File Of ElasticSearch Authentication**](#secrets-management-file-of-elasticsearch-authentication).
......
此差异已折叠。
...@@ -66,13 +66,12 @@ core: ...@@ -66,13 +66,12 @@ core:
downsampling: downsampling:
- Hour - Hour
- Day - Day
- Month
# Set a timeout on metrics data. After the timeout has expired, the metrics data will automatically be deleted. # Set a timeout on metrics data. After the timeout has expired, the metrics data will automatically be deleted.
enableDataKeeperExecutor: ${SW_CORE_ENABLE_DATA_KEEPER_EXECUTOR:true} # Turn it off then automatically metrics data delete will be close. enableDataKeeperExecutor: ${SW_CORE_ENABLE_DATA_KEEPER_EXECUTOR:true} # Turn it off then automatically metrics data delete will be close.
dataKeeperExecutePeriod: ${SW_CORE_DATA_KEEPER_EXECUTE_PERIOD:5} # How often the data keeper executor runs periodically, unit is minute dataKeeperExecutePeriod: ${SW_CORE_DATA_KEEPER_EXECUTE_PERIOD:5} # How often the data keeper executor runs periodically, unit is minute
recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:3} # Unit is day recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:3} # Unit is day
metricsDataTTL: ${SW_CORE_METRICS_DATA_TTL:7} # Unit is day metricsDataTTL: ${SW_CORE_METRICS_DATA_TTL:7} # Unit is day
# Cache metric data for 1 minute to reduce database queries, and if the OAP cluster changes within that minute, # Cache metrics data for 1 minute to reduce database queries, and if the OAP cluster changes within that minute,
# the metrics may not be accurate within that minute. # the metrics may not be accurate within that minute.
enableDatabaseSession: ${SW_CORE_ENABLE_DATABASE_SESSION:true} enableDatabaseSession: ${SW_CORE_ENABLE_DATABASE_SESSION:true}
topNReportPeriod: ${SW_CORE_TOPN_REPORT_PERIOD:10} # top_n record worker report cycle, unit is minute topNReportPeriod: ${SW_CORE_TOPN_REPORT_PERIOD:10} # top_n record worker report cycle, unit is minute
...@@ -97,10 +96,9 @@ storage: ...@@ -97,10 +96,9 @@ storage:
password: ${SW_ES_PASSWORD:""} password: ${SW_ES_PASSWORD:""}
secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool. secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool.
dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index. dayStep: ${SW_STORAGE_DAY_STEP:1} # Represent the number of days in the one minute/hour/day index.
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # The index shards number is for store metrics data rather than basic segment record indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # Shard number of new indexes
superDatasetIndexShardsFactor: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR:5} # Super data set has been defined in the codes, such as trace segments. This factor provides more shards for the super data set, shards number = indexShardsNumber * superDatasetIndexShardsFactor. Also, this factor effects Zipkin and Jaeger traces. superDatasetIndexShardsFactor: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR:5} # Super data set has been defined in the codes, such as trace segments. This factor provides more shards for the super data set, shards number = indexShardsNumber * superDatasetIndexShardsFactor. Also, this factor effects Zipkin and Jaeger traces.
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0} indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
# Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests
flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
...@@ -119,10 +117,9 @@ storage: ...@@ -119,10 +117,9 @@ storage:
user: ${SW_ES_USER:""} user: ${SW_ES_USER:""}
password: ${SW_ES_PASSWORD:""} password: ${SW_ES_PASSWORD:""}
secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool. secretsManagementFile: ${SW_ES_SECRETS_MANAGEMENT_FILE:""} # Secrets management file in the properties format includes the username, password, which are managed by 3rd party tool.
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # The index shards number is for store metrics data rather than basic segment record indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1} # Shard number of new indexes
superDatasetIndexShardsFactor: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR:5} # Super data set has been defined in the codes, such as trace segments. This factor provides more shards for the super data set, shards number = indexShardsNumber * superDatasetIndexShardsFactor. Also, this factor effects Zipkin and Jaeger traces. superDatasetIndexShardsFactor: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR:5} # Super data set has been defined in the codes, such as trace segments. This factor provides more shards for the super data set, shards number = indexShardsNumber * superDatasetIndexShardsFactor. Also, this factor effects Zipkin and Jaeger traces.
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0} indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
# Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests
flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
...@@ -266,7 +263,7 @@ configuration: ...@@ -266,7 +263,7 @@ configuration:
# Consul host and ports, separated by comma, e.g. 1.2.3.4:8500,2.3.4.5:8500 # Consul host and ports, separated by comma, e.g. 1.2.3.4:8500,2.3.4.5:8500
hostAndPorts: ${SW_CONFIG_CONSUL_HOST_AND_PORTS:1.2.3.4:8500} hostAndPorts: ${SW_CONFIG_CONSUL_HOST_AND_PORTS:1.2.3.4:8500}
# Sync period in seconds. Defaults to 60 seconds. # Sync period in seconds. Defaults to 60 seconds.
period: ${SW_CONFIG_CONSUL_PERIOD:1} period: ${SW_CONFIG_CONSUL_PERIOD:60}
# Consul aclToken # Consul aclToken
aclToken: ${SW_CONFIG_CONSUL_ACL_TOKEN:""} aclToken: ${SW_CONFIG_CONSUL_ACL_TOKEN:""}
k8s-configmap: k8s-configmap:
...@@ -284,8 +281,6 @@ configuration: ...@@ -284,8 +281,6 @@ configuration:
namespace: ${SW_CONFIG_NACOS_SERVER_NAMESPACE:} namespace: ${SW_CONFIG_NACOS_SERVER_NAMESPACE:}
# Unit seconds, sync period. Default fetch every 60 seconds. # Unit seconds, sync period. Default fetch every 60 seconds.
period: ${SW_CONFIG_NACOS_PERIOD:60} period: ${SW_CONFIG_NACOS_PERIOD:60}
# the name of current cluster, set the name if you want to upstream system known.
clusterName: ${SW_CONFIG_NACOS_CLUSTER_NAME:default}
exporter: exporter:
selector: ${SW_EXPORTER:-} selector: ${SW_EXPORTER:-}
......
...@@ -18,8 +18,12 @@ ...@@ -18,8 +18,12 @@
package org.apache.skywalking.oap.server.configuration.apollo; package org.apache.skywalking.oap.server.configuration.apollo;
import lombok.Getter;
import lombok.ToString;
import org.apache.skywalking.oap.server.library.module.ModuleConfig; import org.apache.skywalking.oap.server.library.module.ModuleConfig;
@Getter
@ToString
public class ApolloConfigurationCenterSettings extends ModuleConfig { public class ApolloConfigurationCenterSettings extends ModuleConfig {
private String apolloCluster = "default"; private String apolloCluster = "default";
private String apolloMeta; private String apolloMeta;
...@@ -29,64 +33,4 @@ public class ApolloConfigurationCenterSettings extends ModuleConfig { ...@@ -29,64 +33,4 @@ public class ApolloConfigurationCenterSettings extends ModuleConfig {
private String clusterName = "default"; private String clusterName = "default";
private int period = 60; private int period = 60;
public String getApolloCluster() {
return this.apolloCluster;
}
public String getClusterName() {
return this.clusterName;
}
public String getApolloMeta() {
return apolloMeta;
}
public void setApolloMeta(String apolloMeta) {
this.apolloMeta = apolloMeta;
}
public String getApolloEnv() {
return apolloEnv;
}
public void setApolloEnv(String apolloEnv) {
this.apolloEnv = apolloEnv;
}
public String getAppId() {
return appId;
}
public void setAppId(String appId) {
this.appId = appId;
}
public String getNamespace() {
return namespace;
}
public void setNamespace(String namespace) {
this.namespace = namespace;
}
public int getPeriod() {
return this.period;
}
public void setApolloCluster(String apolloCluster) {
this.apolloCluster = apolloCluster;
}
public void setClusterName(String clusterName) {
this.clusterName = clusterName;
}
public void setPeriod(int period) {
this.period = period;
}
public String toString() {
return "ApolloConfigurationCenterSettings(" + "apolloCluster=" + this.getApolloCluster() + ", clusterName=" + this
.getClusterName() + ", period=" + this.getPeriod() + ")";
}
} }
...@@ -27,7 +27,6 @@ import org.apache.skywalking.oap.server.library.module.ModuleConfig; ...@@ -27,7 +27,6 @@ import org.apache.skywalking.oap.server.library.module.ModuleConfig;
@Setter @Setter
@ToString @ToString
public class NacosServerSettings extends ModuleConfig { public class NacosServerSettings extends ModuleConfig {
private String clusterName = "default";
private String namespace = ""; private String namespace = "";
private String serverAddr; private String serverAddr;
private int port = 8848; private int port = 8848;
......
...@@ -20,20 +20,16 @@ package org.apache.skywalking.oap.server.configuration.zookeeper; ...@@ -20,20 +20,16 @@ package org.apache.skywalking.oap.server.configuration.zookeeper;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
import org.apache.skywalking.oap.server.library.module.ModuleConfig; import org.apache.skywalking.oap.server.library.module.ModuleConfig;
@Getter @Getter
@Setter @Setter
@ToString
public class ZookeeperServerSettings extends ModuleConfig { public class ZookeeperServerSettings extends ModuleConfig {
private String nameSpace = "/default"; private String nameSpace = "/default";
private String hostPort; private String hostPort;
private int baseSleepTimeMs = 1000; private int baseSleepTimeMs = 1000;
private int maxRetries = 3; private int maxRetries = 3;
private int period = 60; private int period = 60;
@Override
public String toString() {
return "ZookeeperServerSettings(nameSpace=" + this.getNameSpace() + ", hostPort=" + this.getHostPort() + ", baseSleepTimeMs=" + this
.getBaseSleepTimeMs() + ", maxRetries=" + this.getMaxRetries() + ", period=" + this.getPeriod() + ")";
}
} }
...@@ -107,7 +107,7 @@ public class GRPCServer implements Server { ...@@ -107,7 +107,7 @@ public class GRPCServer implements Server {
ExecutorService executor = new ThreadPoolExecutor(threadPoolSize, threadPoolSize, 60, TimeUnit.SECONDS, blockingQueue, new CustomThreadFactory("grpcServerPool"), new CustomRejectedExecutionHandler()); ExecutorService executor = new ThreadPoolExecutor(threadPoolSize, threadPoolSize, 60, TimeUnit.SECONDS, blockingQueue, new CustomThreadFactory("grpcServerPool"), new CustomRejectedExecutionHandler());
nettyServerBuilder = NettyServerBuilder.forAddress(address); nettyServerBuilder = NettyServerBuilder.forAddress(address);
nettyServerBuilder = nettyServerBuilder.maxConcurrentCallsPerConnection(maxConcurrentCallsPerConnection) nettyServerBuilder = nettyServerBuilder.maxConcurrentCallsPerConnection(maxConcurrentCallsPerConnection)
.maxMessageSize(maxMessageSize) .maxInboundMessageSize(maxMessageSize)
.executor(executor); .executor(executor);
logger.info("Server started, host {} listening on {}", host, port); logger.info("Server started, host {} listening on {}", host, port);
} }
......
...@@ -29,7 +29,6 @@ public class JaegerReceiverConfig extends ModuleConfig { ...@@ -29,7 +29,6 @@ public class JaegerReceiverConfig extends ModuleConfig {
private int gRPCPort = -1; private int gRPCPort = -1;
private int maxConcurrentCallsPerConnection; private int maxConcurrentCallsPerConnection;
private int maxMessageSize; private int maxMessageSize;
private boolean registerJaegerEndpoint = true;
private int gRPCThreadPoolSize; private int gRPCThreadPoolSize;
private int gRPCThreadPoolQueueSize; private int gRPCThreadPoolQueueSize;
} }
...@@ -31,5 +31,4 @@ public class ZipkinReceiverConfig extends ModuleConfig { ...@@ -31,5 +31,4 @@ public class ZipkinReceiverConfig extends ModuleConfig {
private int expireTime = 20; private int expireTime = 20;
private int maxCacheSize = 1_000_000; private int maxCacheSize = 1_000_000;
private boolean needAnalysis = false; private boolean needAnalysis = false;
private boolean registerZipkinEndpoint = true;
} }
...@@ -46,8 +46,6 @@ public class StorageModuleElasticsearchConfig extends ModuleConfig { ...@@ -46,8 +46,6 @@ public class StorageModuleElasticsearchConfig extends ModuleConfig {
private int flushInterval = 10; private int flushInterval = 10;
@Setter @Setter
private int concurrentRequests = 2; private int concurrentRequests = 2;
@Setter
private int syncBulkActions = 3;
/** /**
* @since 7.0.0 This could be managed inside {@link #secretsManagementFile} * @since 7.0.0 This could be managed inside {@link #secretsManagementFile}
*/ */
......
...@@ -26,7 +26,7 @@ import org.apache.skywalking.oap.server.library.module.ModuleConfig; ...@@ -26,7 +26,7 @@ import org.apache.skywalking.oap.server.library.module.ModuleConfig;
@Getter @Getter
public class H2StorageConfig extends ModuleConfig { public class H2StorageConfig extends ModuleConfig {
private String driver = "org.h2.jdbcx.JdbcDataSource"; private String driver = "org.h2.jdbcx.JdbcDataSource";
private String url = "jdbc:h2:mem:collector"; private String url = "jdbc:h2:mem:skywalking-oap-db";
private String user = ""; private String user = "";
private String password = ""; private String password = "";
private int metadataQueryMaxSize = 5000; private int metadataQueryMaxSize = 5000;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册