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

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

commit 09f0cc3e78bdef3b2b812be42d8c65533c32a425
Author: Wu Sheng <[email protected]>
AuthorDate: Wed Jan 11 15:12:45 2023 +0800

    Add a config `agent.enable`(default: true) to support disabling the agent
---
 CHANGES.md                                         |   2 +
 .../skywalking/apm/agent/core/conf/Config.java     |   5 +
 .../skywalking/apm/agent/SkyWalkingAgent.java      |  34 +--
 apm-sniffer/config/agent.config                    |   3 +
 .../service-agent/java-agent/configurations.md     | 254 +++++++++++----------
 5 files changed, 159 insertions(+), 139 deletions(-)

diff --git a/CHANGES.md b/CHANGES.md
index cc4da49a23..c7b7e6353c 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -24,6 +24,8 @@ Release Notes.
 * Support to customize the collect period of JVM relative metrics.
 * Upgrade netty-codec-http2 to 4.1.86.Final.
 * Put `Agent-Version` property reading in the premain stage to avoid deadlock 
when using `jarsigner`.
+* Add a config `agent.enable`(default: true) to support disabling the agent 
through system property `-Dskywalking.agent.disable=false` 
+  or system environment variable setting `SW_AGENT_ENABLE=false`. 
 
 #### Documentation
 
diff --git 
a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java
 
b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java
index ff075e39b8..cdd4d309cc 100755
--- 
a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java
+++ 
b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java
@@ -183,6 +183,11 @@ public class Config {
          * Agent version. This is set by the agent kernel through reading 
MANIFEST.MF file in the skywalking-agent.jar.
          */
         public static String VERSION = "UNKNOWN";
+
+        /**
+         * Enable the agent kernel services and instrumentation.
+         */
+        public static boolean enable = true;
     }
 
     public static class OsInfo {
diff --git 
a/apm-sniffer/apm-agent/src/main/java/org/apache/skywalking/apm/agent/SkyWalkingAgent.java
 
b/apm-sniffer/apm-agent/src/main/java/org/apache/skywalking/apm/agent/SkyWalkingAgent.java
index 38b6e1b8ff..e0526d252e 100644
--- 
a/apm-sniffer/apm-agent/src/main/java/org/apache/skywalking/apm/agent/SkyWalkingAgent.java
+++ 
b/apm-sniffer/apm-agent/src/main/java/org/apache/skywalking/apm/agent/SkyWalkingAgent.java
@@ -23,7 +23,6 @@ import java.security.ProtectionDomain;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
-
 import net.bytebuddy.ByteBuddy;
 import net.bytebuddy.agent.builder.AgentBuilder;
 import net.bytebuddy.description.NamedElement;
@@ -70,13 +69,17 @@ public class SkyWalkingAgent {
         } catch (Exception e) {
             // try to resolve a new logger, and use the new logger to write 
the error log here
             LogManager.getLogger(SkyWalkingAgent.class)
-                    .error(e, "SkyWalking agent initialized failure. Shutting 
down.");
+                      .error(e, "SkyWalking agent initialized failure. 
Shutting down.");
             return;
         } finally {
             // refresh logger again after initialization finishes
             LOGGER = LogManager.getLogger(SkyWalkingAgent.class);
         }
 
+        if (!Config.Agent.enable) {
+            return;
+        }
+
         try {
             pluginFinder = new PluginFinder(new 
PluginBootstrap().loadPlugins());
         } catch (AgentPackageNotFoundException ape) {
@@ -90,15 +93,15 @@ public class SkyWalkingAgent {
         final ByteBuddy byteBuddy = new 
ByteBuddy().with(TypeValidation.of(Config.Agent.IS_OPEN_DEBUGGING_CLASS));
 
         AgentBuilder agentBuilder = new AgentBuilder.Default(byteBuddy).ignore(
-                nameStartsWith("net.bytebuddy.")
-                        .or(nameStartsWith("org.slf4j."))
-                        .or(nameStartsWith("org.groovy."))
-                        .or(nameContains("javassist"))
-                        .or(nameContains(".asm."))
-                        .or(nameContains(".reflectasm."))
-                        .or(nameStartsWith("sun.reflect"))
-                        .or(allSkyWalkingAgentExcludeToolkit())
-                        .or(ElementMatchers.isSynthetic()));
+            nameStartsWith("net.bytebuddy.")
+                .or(nameStartsWith("org.slf4j."))
+                .or(nameStartsWith("org.groovy."))
+                .or(nameContains("javassist"))
+                .or(nameContains(".asm."))
+                .or(nameContains(".reflectasm."))
+                .or(nameStartsWith("sun.reflect"))
+                .or(allSkyWalkingAgentExcludeToolkit())
+                .or(ElementMatchers.isSynthetic()));
 
         JDK9ModuleExporter.EdgeClasses edgeClasses = new 
JDK9ModuleExporter.EdgeClasses();
         try {
@@ -140,7 +143,7 @@ public class SkyWalkingAgent {
         }
 
         Runtime.getRuntime()
-                .addShutdownHook(new Thread(ServiceManager.INSTANCE::shutdown, 
"skywalking service shutdown thread"));
+               .addShutdownHook(new Thread(ServiceManager.INSTANCE::shutdown, 
"skywalking service shutdown thread"));
     }
 
     private static class Transformer implements AgentBuilder.Transformer {
@@ -163,7 +166,7 @@ public class SkyWalkingAgent {
                 EnhanceContext context = new EnhanceContext();
                 for (AbstractClassEnhancePluginDefine define : pluginDefines) {
                     DynamicType.Builder<?> possibleNewBuilder = define.define(
-                            typeDescription, newBuilder, classLoader, context);
+                        typeDescription, newBuilder, classLoader, context);
                     if (possibleNewBuilder != null) {
                         newBuilder = possibleNewBuilder;
                     }
@@ -233,7 +236,10 @@ public class SkyWalkingAgent {
         }
 
         @Override
-        public Iterable<? extends List<Class<?>>> onError(int index, 
List<Class<?>> batch, Throwable throwable, List<Class<?>> types) {
+        public Iterable<? extends List<Class<?>>> onError(int index,
+                                                          List<Class<?>> batch,
+                                                          Throwable throwable,
+                                                          List<Class<?>> 
types) {
             LOGGER.error(throwable, "index={}, batch={}, types={}", index, 
batch, types);
             return Collections.emptyList();
         }
diff --git a/apm-sniffer/config/agent.config b/apm-sniffer/config/agent.config
index 3f8c535af0..7124e2e8a0 100755
--- a/apm-sniffer/config/agent.config
+++ b/apm-sniffer/config/agent.config
@@ -87,6 +87,9 @@ agent.ssl_key_path=${SW_AGENT_SSL_KEY_PATH:}
 
 agent.ssl_cert_chain_path=${SW_AGENT_SSL_CERT_CHAIN_PATH:}
 
+# Enable the agent kernel services and instrumentation.
+agent.enable=${SW_AGENT_ENABLE:true}
+
 # Limit the length of the ipv4 list size.
 osinfo.ipv4_list_size=${SW_AGENT_OSINFO_IPV4_LIST_SIZE:10}
 
diff --git a/docs/en/setup/service-agent/java-agent/configurations.md 
b/docs/en/setup/service-agent/java-agent/configurations.md
index 1514c0eb7b..c79c525d40 100644
--- a/docs/en/setup/service-agent/java-agent/configurations.md
+++ b/docs/en/setup/service-agent/java-agent/configurations.md
@@ -1,134 +1,138 @@
 # Table of Agent Configuration Properties
+
 This is the properties list supported in `agent/config/agent.config`.
 
-| property key                                              | Description      
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-|-----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 [...]
-| `agent.service_name`                                      | The service name 
to represent a logic group providing the same capabilities/logic. Suggestion: 
set a unique name for every logic service group, service instance nodes share 
the same code, Max length is 50(UTF-8 char). Optional, once `service_name` 
follows `<group name>::<logic name>` format, OAP server assigns the group name 
to the service metadata.                                                        
                        [...]
-| `agent.namespace`                                         | Namespace 
represents a subnet, such as kubernetes namespace, or 172.10.*.*                
                                                                                
                                                                                
                                                                                
                                                                                
                     [...]
-| `agent.cluster`                                           | Cluster defines 
the physical cluster in a data center or same network segment.                  
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `agent.sample_n_per_3_secs`                               | Negative or zero 
means off, by default.SAMPLE_N_PER_3_SECS means sampling N TraceSegment in 3 
seconds tops.                                                                   
                                                                                
                                                                                
                                                                                
                 [...]
-| `agent.authentication`                                    | Authentication 
active is based on backend setting, see application.yml for more details.For 
most scenarios, this needs backend extensions, only basic match auth provided 
in default implementation.                                                      
                                                                                
                                                                                
                     [...]
-| `agent.trace_segment_ref_limit_per_span`                  | The max number 
of TraceSegmentRef in a single span to keep memory cost estimatable.            
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
-| `agent.span_limit_per_segment`                            | The max number 
of spans in a single segment. Through this config item, SkyWalking keep your 
application memory cost estimated.                                              
                                                                                
                                                                                
                                                                                
                   [...]
-| `agent.ignore_suffix`                                     | If the operation 
name of the first span is included in this set, this segment should be ignored. 
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-| `agent.is_open_debugging_class`                           | If true, 
skywalking agent will save all instrumented classes files in `/debugging` 
folder. SkyWalking team may ask for these files in order to resolve compatible 
problem.                                                                        
                                                                                
                                                                                
                             [...]
-| `agent.is_cache_enhanced_class`                           | If true, 
SkyWalking agent will cache all instrumented classes files to memory or disk 
files (decided by class cache mode), allow another java agent to enhance those 
classes that enhanced by SkyWalking agent. To use some Java diagnostic tools 
(such as BTrace, Arthas) to diagnose applications or add a custom java agent to 
enhance classes, you need to enable this feature.                               
                             [...]
-| `agent.class_cache_mode`                                  | The instrumented 
classes cache mode: `MEMORY` or `FILE`. `MEMORY`: cache class bytes to memory, 
if instrumented classes is too many or too large, it may take up more memory. 
`FILE`: cache class bytes in `/class-cache` folder, automatically clean up 
cached class files when the application exits.                                  
                                                                                
                      [...]
-| `agent.instance_name`                                     | Instance name is 
the identity of an instance, should be unique in the service. If empty, 
SkyWalking agent will generate an 32-bit uuid. Default, use `UUID`@`hostname` 
as the instance name. Max length is 50(UTF-8 char)                              
                                                                                
                                                                                
                        [...]
-| `agent.instance_properties_json={"key":"value"}`          | Add service 
instance custom properties in json format.                                      
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `agent.cause_exception_depth`                             | How depth the 
agent goes, when log all cause exceptions.                                      
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `agent.force_reconnection_period `                        | Force 
reconnection period of grpc, based on grpc_channel_check_interval.              
                                                                                
                                                                                
                                                                                
                                                                                
                         [...]
-| `agent.operation_name_threshold `                         | The 
operationName max length, setting this value > 190 is not recommended.          
                                                                                
                                                                                
                                                                                
                                                                                
                           [...]
-| `agent.keep_tracing`                                      | Keep tracing 
even the backend is not available if this value is `true`.                      
                                                                                
                                                                                
                                                                                
                                                                                
                  [...]
-| `agent.force_tls`                                         | Force open TLS 
for gRPC channel if this value is `true`.                                       
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
-| `agent.ssl_trusted_ca_path`                               | gRPC SSL trusted 
ca file.                                                                        
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-| `agent.ssl_key_path`                                      | The private key 
file. Enable mTLS when ssl_key_path and ssl_cert_chain_path exist.              
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `agent.ssl_cert_chain_path`                               | The certificate 
file. Enable mTLS when ssl_key_path and ssl_cert_chain_path exist.              
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `osinfo.ipv4_list_size`                                   | Limit the length 
of the ipv4 list size.                                                          
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-| `collector.grpc_channel_check_interval`                   | grpc channel 
status check interval.                                                          
                                                                                
                                                                                
                                                                                
                                                                                
                  [...]
-| `collector.heartbeat_period`                              | agent heartbeat 
report period. Unit, second.                                                    
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `collector.properties_report_period_factor`               | The agent sends 
the instance properties to the backend every `collector.heartbeat_period * 
collector.properties_report_period_factor` seconds                              
                                                                                
                                                                                
                                                                                
                    [...]
-| `collector.backend_service`                               | Collector 
SkyWalking trace receiver service addresses.                                    
                                                                                
                                                                                
                                                                                
                                                                                
                     [...]
-| `collector.grpc_upstream_timeout`                         | How long grpc 
client will timeout in sending data to upstream. Unit is second.                
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `collector.get_profile_task_interval`                     | Sniffer get 
profile task list interval.                                                     
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `collector.get_agent_dynamic_config_interval`             | Sniffer get 
agent dynamic config interval                                                   
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `collector.is_resolve_dns_periodically`                   | If true, 
skywalking agent will enable periodically resolving DNS to update receiver 
service addresses.                                                              
                                                                                
                                                                                
                                                                                
                           [...]
-| `logging.level`                                           | Log level: 
TRACE, DEBUG, INFO, WARN, ERROR, OFF. Default is info.                          
                                                                                
                                                                                
                                                                                
                                                                                
                    [...]
-| `logging.file_name`                                       | Log file name.   
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-| `logging.output`                                          | Log output. 
Default is FILE. Use CONSOLE means output to stdout.                            
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `logging.dir`                                             | Log files 
directory. Default is blank string, means, use "{theSkywalkingAgentJarDir}/logs 
 " to output logs. {theSkywalkingAgentJarDir} is the directory where the 
skywalking agent jar file is located                                            
                                                                                
                                                                                
                            [...]
-| `logging.resolver`                                        | Logger resolver: 
`PATTERN` or `JSON`. The default is `PATTERN`, which uses `logging.pattern` to 
print traditional text logs. `JSON` resolver prints logs in JSON format.        
                                                                                
                                                                                
                                                                                
               [...]
-| `logging.pattern `                                        | Logging format. 
There are all conversion specifiers: <br>&nbsp;&nbsp;* `%level` means log 
level. <br>&nbsp;&nbsp;*  `%timestamp` means now of time with format 
`yyyy-MM-dd HH:mm:ss:SSS`.<br>&nbsp;&nbsp;*   `%thread` means name of current 
thread.<br>&nbsp;&nbsp;*   `%msg` means some message which user logged. 
<br>&nbsp;&nbsp;*  `%class` means SimpleName of TargetClass. <br>&nbsp;&nbsp;*  
`%throwable` means a throwable which user [...]
-| `logging.max_file_size`                                   | The max size of 
log file. If the size is bigger than this, archive the current file, and write 
into a new file.                                                                
                                                                                
                                                                                
                                                                                
                [...]
-| `logging.max_history_files`                               | The max history 
log files. When rollover happened, if log files exceed this number,then the 
oldest file will be delete. Negative or zero means off, by default.             
                                                                                
                                                                                
                                                                                
                   [...]
-| `statuscheck.ignored_exceptions`                          | Listed 
exceptions would not be treated as an error. Because in some codes, the 
exception is being used as a way of controlling business flow.                  
                                                                                
                                                                                
                                                                                
                                [...]
-| `statuscheck.max_recursive_depth`                         | The max 
recursive depth when checking the exception traced by the agent. Typically, we 
don't recommend setting this more than 10, which could cause a performance 
issue. Negative value and 0 would be ignored, which means all exceptions would 
make the span tagged in error status.                                           
                                                                                
                              [...]
-| `correlation.element_max_number`                          | Max element 
count in the correlation context.                                               
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
-| `correlation.value_max_length`                            | Max value length 
of each element.                                                                
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-| `correlation.auto_tag_keys`                               | Tag the span by 
the key/value in the correlation context, when the keys listed here exist.      
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `jvm.buffer_size`                                         | The buffer size 
of collected JVM info.                                                          
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `jvm.metrics_collect_period`                              | The period in 
seconds of JVM metrics collection.  Unit is second.                             
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `buffer.channel_size`                                     | The buffer 
channel size.                                                                   
                                                                                
                                                                                
                                                                                
                                                                                
                    [...]
-| `buffer.buffer_size`                                      | The buffer size. 
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-| `profile.active`                                          | If true, 
skywalking agent will enable profile when user create a new profile task. 
Otherwise disable profile.                                                      
                                                                                
                                                                                
                                                                                
                            [...]
-| `profile.max_parallel`                                    | Parallel monitor 
segment count                                                                   
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
-| `profile.duration`                                        | Max monitor 
segment time(minutes), if current segment monitor time out of limit, then stop 
it.                                                                             
                                                                                
                                                                                
                                                                                
                    [...]
-| `profile.dump_max_stack_depth`                            | Max dump thread 
stack depth                                                                     
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `profile.snapshot_transport_buffer_size`                  | Snapshot 
transport to backend buffer size                                                
                                                                                
                                                                                
                                                                                
                                                                                
                      [...]
-| `meter.active`                                            | If true, the 
agent collects and reports metrics to the backend.                              
                                                                                
                                                                                
                                                                                
                                                                                
                  [...]
-| `meter.report_interval`                                   | Report meters 
interval. The unit is second                                                    
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `meter.max_meter_size`                                    | Max size of the 
meter pool                                                                      
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `log.max_message_size`                                    | The max size of 
message to send to server.Default is 10 MB.                                     
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `plugin.mount`                                            | Mount the 
specific folders of the plugins. Plugins in mounted folders would work.         
                                                                                
                                                                                
                                                                                
                                                                                
                     [...]
-| `plugin.peer_max_length `                                 | Peer maximum 
description limit.                                                              
                                                                                
                                                                                
                                                                                
                                                                                
                  [...]
-| `plugin.exclude_plugins `                                 | Exclude some 
plugins define in plugins dir,Multiple plugins are separated by comma.Plugin 
names is defined in [Agent plugin list](Plugin-list.md)                         
                                                                                
                                                                                
                                                                                
                     [...]
-| `plugin.mongodb.trace_param`                              | If true, trace 
all the parameters in MongoDB access, default is false. Only trace the 
operation, not include parameters.                                              
                                                                                
                                                                                
                                                                                
                         [...]
-| `plugin.mongodb.filter_length_limit`                      | If set to 
positive number, the `WriteRequest.params` would be truncated to this length, 
otherwise it would be completely saved, which may cause performance problem.    
                                                                                
                                                                                
                                                                                
                       [...]
-| `plugin.elasticsearch.trace_dsl`                          | If true, trace 
all the DSL(Domain Specific Language) in ElasticSearch access, default is 
false.                                                                          
                                                                                
                                                                                
                                                                                
                      [...]
-| `plugin.springmvc.use_qualified_name_as_endpoint_name`    | If true, the 
fully qualified method name will be used as the endpoint name instead of the 
request URL, default is false.                                                  
                                                                                
                                                                                
                                                                                
                     [...]
-| `plugin.toolkit.use_qualified_name_as_operation_name`     | If true, the 
fully qualified method name will be used as the operation name instead of the 
given operation name, default is false.                                         
                                                                                
                                                                                
                                                                                
                    [...]
-| `plugin.jdbc.trace_sql_parameters`                        | If set to true, 
the parameters of the sql (typically `java.sql.PreparedStatement`) would be 
collected.                                                                      
                                                                                
                                                                                
                                                                                
                   [...]
-| `plugin.jdbc.sql_parameters_max_length`                   | If set to 
positive number, the `db.sql.parameters` would be truncated to this length, 
otherwise it would be completely saved, which may cause performance problem.    
                                                                                
                                                                                
                                                                                
                         [...]
-| `plugin.jdbc.sql_body_max_length`                         | If set to 
positive number, the `db.statement` would be truncated to this length, 
otherwise it would be completely saved, which may cause performance problem.    
                                                                                
                                                                                
                                                                                
                              [...]
-| `plugin.solrj.trace_statement`                            | If true, trace 
all the query parameters(include deleteByIds and deleteByQuery) in Solr query 
request, default is false.                                                      
                                                                                
                                                                                
                                                                                
                  [...]
-| `plugin.solrj.trace_ops_params`                           | If true, trace 
all the operation parameters in Solr request, default is false.                 
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
-| `plugin.light4j.trace_handler_chain`                      | If true, trace 
all middleware/business handlers that are part of the Light4J handler chain for 
a request.                                                                      
                                                                                
                                                                                
                                                                                
                [...]
+| property key                                                    | 
Description                                                                     
                                                                                
                                                                                
                                                                                
                                                                                
                         [...]
+|-----------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 [...]
+| `agent.service_name`                                            | The 
service name to represent a logic group providing the same capabilities/logic. 
Suggestion: set a unique name for every logic service group, service instance 
nodes share the same code, Max length is 50(UTF-8 char). Optional, once 
`service_name` follows `<group name>::<logic name>` format, OAP server assigns 
the group name to the service metadata.                                         
                                 [...]
+| `agent.namespace`                                               | Namespace 
represents a subnet, such as kubernetes namespace, or 172.10.*.*                
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
+| `agent.cluster`                                                 | Cluster 
defines the physical cluster in a data center or same network segment.          
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `agent.sample_n_per_3_secs`                                     | Negative 
or zero means off, by default.SAMPLE_N_PER_3_SECS means sampling N TraceSegment 
in 3 seconds tops.                                                              
                                                                                
                                                                                
                                                                                
                [...]
+| `agent.authentication`                                          | 
Authentication active is based on backend setting, see application.yml for more 
details.For most scenarios, this needs backend extensions, only basic match 
auth provided in default implementation.                                        
                                                                                
                                                                                
                             [...]
+| `agent.trace_segment_ref_limit_per_span`                        | The max 
number of TraceSegmentRef in a single span to keep memory cost estimatable.     
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `agent.span_limit_per_segment`                                  | The max 
number of spans in a single segment. Through this config item, SkyWalking keep 
your application memory cost estimated.                                         
                                                                                
                                                                                
                                                                                
                  [...]
+| `agent.ignore_suffix`                                           | If the 
operation name of the first span is included in this set, this segment should 
be ignored.                                                                     
                                                                                
                                                                                
                                                                                
                    [...]
+| `agent.is_open_debugging_class`                                 | If true, 
skywalking agent will save all instrumented classes files in `/debugging` 
folder. SkyWalking team may ask for these files in order to resolve compatible 
problem.                                                                        
                                                                                
                                                                                
                       [...]
+| `agent.is_cache_enhanced_class`                                 | If true, 
SkyWalking agent will cache all instrumented classes files to memory or disk 
files (decided by class cache mode), allow another java agent to enhance those 
classes that enhanced by SkyWalking agent. To use some Java diagnostic tools 
(such as BTrace, Arthas) to diagnose applications or add a custom java agent to 
enhance classes, you need to enable this feature.                               
                       [...]
+| `agent.class_cache_mode`                                        | The 
instrumented classes cache mode: `MEMORY` or `FILE`. `MEMORY`: cache class 
bytes to memory, if instrumented classes is too many or too large, it may take 
up more memory. `FILE`: cache class bytes in `/class-cache` folder, 
automatically clean up cached class files when the application exits.           
                                                                                
                                       [...]
+| `agent.instance_name`                                           | Instance 
name is the identity of an instance, should be unique in the service. If empty, 
SkyWalking agent will generate an 32-bit uuid. Default, use `UUID`@`hostname` 
as the instance name. Max length is 50(UTF-8 char)                              
                                                                                
                                                                                
                  [...]
+| `agent.instance_properties_json={"key":"value"}`                | Add 
service instance custom properties in json format.                              
                                                                                
                                                                                
                                                                                
                                                                                
                     [...]
+| `agent.cause_exception_depth`                                   | How depth 
the agent goes, when log all cause exceptions.                                  
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
+| `agent.force_reconnection_period `                              | Force 
reconnection period of grpc, based on grpc_channel_check_interval.              
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
+| `agent.operation_name_threshold `                               | The 
operationName max length, setting this value > 190 is not recommended.          
                                                                                
                                                                                
                                                                                
                                                                                
                     [...]
+| `agent.keep_tracing`                                            | Keep 
tracing even the backend is not available if this value is `true`.              
                                                                                
                                                                                
                                                                                
                                                                                
                    [...]
+| `agent.force_tls`                                               | Force open 
TLS for gRPC channel if this value is `true`.                                   
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
+| `agent.ssl_trusted_ca_path`                                     | gRPC SSL 
trusted ca file.                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
+| `agent.ssl_key_path`                                            | The 
private key file. Enable mTLS when ssl_key_path and ssl_cert_chain_path exist.  
                                                                                
                                                                                
                                                                                
                                                                                
                     [...]
+| `agent.ssl_cert_chain_path`                                     | The 
certificate file. Enable mTLS when ssl_key_path and ssl_cert_chain_path exist.  
                                                                                
                                                                                
                                                                                
                                                                                
                     [...]
+| `agent.enable`                                                  | Enable the 
agent kernel services and instrumentation.                                      
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
+| `osinfo.ipv4_list_size`                                         | Limit the 
length of the ipv4 list size.                                                   
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
+| `collector.grpc_channel_check_interval`                         | grpc 
channel status check interval.                                                  
                                                                                
                                                                                
                                                                                
                                                                                
                    [...]
+| `collector.heartbeat_period`                                    | agent 
heartbeat report period. Unit, second.                                          
                                                                                
                                                                                
                                                                                
                                                                                
                   [...]
+| `collector.properties_report_period_factor`                     | The agent 
sends the instance properties to the backend every `collector.heartbeat_period 
* collector.properties_report_period_factor` seconds                            
                                                                                
                                                                                
                                                                                
                [...]
+| `collector.backend_service`                                     | Collector 
SkyWalking trace receiver service addresses.                                    
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
+| `collector.grpc_upstream_timeout`                               | How long 
grpc client will timeout in sending data to upstream. Unit is second.           
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
+| `collector.get_profile_task_interval`                           | Sniffer 
get profile task list interval.                                                 
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `collector.get_agent_dynamic_config_interval`                   | Sniffer 
get agent dynamic config interval                                               
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `collector.is_resolve_dns_periodically`                         | If true, 
skywalking agent will enable periodically resolving DNS to update receiver 
service addresses.                                                              
                                                                                
                                                                                
                                                                                
                     [...]
+| `logging.level`                                                 | Log level: 
TRACE, DEBUG, INFO, WARN, ERROR, OFF. Default is info.                          
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
+| `logging.file_name`                                             | Log file 
name.                                                                           
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
+| `logging.output`                                                | Log 
output. Default is FILE. Use CONSOLE means output to stdout.                    
                                                                                
                                                                                
                                                                                
                                                                                
                     [...]
+| `logging.dir`                                                   | Log files 
directory. Default is blank string, means, use "{theSkywalkingAgentJarDir}/logs 
 " to output logs. {theSkywalkingAgentJarDir} is the directory where the 
skywalking agent jar file is located                                            
                                                                                
                                                                                
                      [...]
+| `logging.resolver`                                              | Logger 
resolver: `PATTERN` or `JSON`. The default is `PATTERN`, which uses 
`logging.pattern` to print traditional text logs. `JSON` resolver prints logs 
in JSON format.                                                                 
                                                                                
                                                                                
                                [...]
+| `logging.pattern `                                              | Logging 
format. There are all conversion specifiers: <br>&nbsp;&nbsp;* `%level` means 
log level. <br>&nbsp;&nbsp;*  `%timestamp` means now of time with format 
`yyyy-MM-dd HH:mm:ss:SSS`.<br>&nbsp;&nbsp;*   `%thread` means name of current 
thread.<br>&nbsp;&nbsp;*   `%msg` means some message which user logged. 
<br>&nbsp;&nbsp;*  `%class` means SimpleName of TargetClass. <br>&nbsp;&nbsp;*  
`%throwable` means a throwable whic [...]
+| `logging.max_file_size`                                         | The max 
size of log file. If the size is bigger than this, archive the current file, 
and write into a new file.                                                      
                                                                                
                                                                                
                                                                                
                    [...]
+| `logging.max_history_files`                                     | The max 
history log files. When rollover happened, if log files exceed this number,then 
the oldest file will be delete. Negative or zero means off, by default.         
                                                                                
                                                                                
                                                                                
                 [...]
+| `statuscheck.ignored_exceptions`                                | Listed 
exceptions would not be treated as an error. Because in some codes, the 
exception is being used as a way of controlling business flow.                  
                                                                                
                                                                                
                                                                                
                          [...]
+| `statuscheck.max_recursive_depth`                               | The max 
recursive depth when checking the exception traced by the agent. Typically, we 
don't recommend setting this more than 10, which could cause a performance 
issue. Negative value and 0 would be ignored, which means all exceptions would 
make the span tagged in error status.                                           
                                                                                
                        [...]
+| `correlation.element_max_number`                                | Max 
element count in the correlation context.                                       
                                                                                
                                                                                
                                                                                
                                                                                
                     [...]
+| `correlation.value_max_length`                                  | Max value 
length of each element.                                                         
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
+| `correlation.auto_tag_keys`                                     | Tag the 
span by the key/value in the correlation context, when the keys listed here 
exist.                                                                          
                                                                                
                                                                                
                                                                                
                     [...]
+| `jvm.buffer_size`                                               | The buffer 
size of collected JVM info.                                                     
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
+| `jvm.metrics_collect_period`                                    | The period 
in seconds of JVM metrics collection.  Unit is second.                          
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
+| `buffer.channel_size`                                           | The buffer 
channel size.                                                                   
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
+| `buffer.buffer_size`                                            | The buffer 
size.                                                                           
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
+| `profile.active`                                                | If true, 
skywalking agent will enable profile when user create a new profile task. 
Otherwise disable profile.                                                      
                                                                                
                                                                                
                                                                                
                      [...]
+| `profile.max_parallel`                                          | Parallel 
monitor segment count                                                           
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
+| `profile.duration`                                              | Max 
monitor segment time(minutes), if current segment monitor time out of limit, 
then stop it.                                                                   
                                                                                
                                                                                
                                                                                
                        [...]
+| `profile.dump_max_stack_depth`                                  | Max dump 
thread stack depth                                                              
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
+| `profile.snapshot_transport_buffer_size`                        | Snapshot 
transport to backend buffer size                                                
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
+| `meter.active`                                                  | If true, 
the agent collects and reports metrics to the backend.                          
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
+| `meter.report_interval`                                         | Report 
meters interval. The unit is second                                             
                                                                                
                                                                                
                                                                                
                                                                                
                  [...]
+| `meter.max_meter_size`                                          | Max size 
of the meter pool                                                               
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
+| `log.max_message_size`                                          | The max 
size of message to send to server.Default is 10 MB.                             
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.mount`                                                  | Mount the 
specific folders of the plugins. Plugins in mounted folders would work.         
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
+| `plugin.peer_max_length `                                       | Peer 
maximum description limit.                                                      
                                                                                
                                                                                
                                                                                
                                                                                
                    [...]
+| `plugin.exclude_plugins `                                       | Exclude 
some plugins define in plugins dir,Multiple plugins are separated by 
comma.Plugin names is defined in [Agent plugin list](Plugin-list.md)            
                                                                                
                                                                                
                                                                                
                            [...]
+| `plugin.mongodb.trace_param`                                    | If true, 
trace all the parameters in MongoDB access, default is false. Only trace the 
operation, not include parameters.                                              
                                                                                
                                                                                
                                                                                
                   [...]
+| `plugin.mongodb.filter_length_limit`                            | If set to 
positive number, the `WriteRequest.params` would be truncated to this length, 
otherwise it would be completely saved, which may cause performance problem.    
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.elasticsearch.trace_dsl`                                | If true, 
trace all the DSL(Domain Specific Language) in ElasticSearch access, default is 
false.                                                                          
                                                                                
                                                                                
                                                                                
                [...]
+| `plugin.springmvc.use_qualified_name_as_endpoint_name`          | If true, 
the fully qualified method name will be used as the endpoint name instead of 
the request URL, default is false.                                              
                                                                                
                                                                                
                                                                                
                   [...]
+| `plugin.toolkit.use_qualified_name_as_operation_name`           | If true, 
the fully qualified method name will be used as the operation name instead of 
the given operation name, default is false.                                     
                                                                                
                                                                                
                                                                                
                  [...]
+| `plugin.jdbc.trace_sql_parameters`                              | If set to 
true, the parameters of the sql (typically `java.sql.PreparedStatement`) would 
be collected.                                                                   
                                                                                
                                                                                
                                                                                
                [...]
+| `plugin.jdbc.sql_parameters_max_length`                         | If set to 
positive number, the `db.sql.parameters` would be truncated to this length, 
otherwise it would be completely saved, which may cause performance problem.    
                                                                                
                                                                                
                                                                                
                   [...]
+| `plugin.jdbc.sql_body_max_length`                               | If set to 
positive number, the `db.statement` would be truncated to this length, 
otherwise it would be completely saved, which may cause performance problem.    
                                                                                
                                                                                
                                                                                
                        [...]
+| `plugin.solrj.trace_statement`                                  | If true, 
trace all the query parameters(include deleteByIds and deleteByQuery) in Solr 
query request, default is false.                                                
                                                                                
                                                                                
                                                                                
                  [...]
+| `plugin.solrj.trace_ops_params`                                 | If true, 
trace all the operation parameters in Solr request, default is false.           
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
+| `plugin.light4j.trace_handler_chain`                            | If true, 
trace all middleware/business handlers that are part of the Light4J handler 
chain for a request.                                                            
                                                                                
                                                                                
                                                                                
                    [...]
 | `plugin.springtransaction.simplify_transaction_definition_name` | If true, 
the transaction definition name will be simplified.                             
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
-| `plugin.jdkthreading.threading_class_prefixes`            | Threading 
classes (`java.lang.Runnable` and `java.util.concurrent.Callable`) and their 
subclasses, including anonymous inner classes whose name match any one of the 
`THREADING_CLASS_PREFIXES` (splitted by `,`) will be instrumented, make sure to 
only specify as narrow prefixes as what you're expecting to instrument, 
(`java.` and `javax.` will be ignored due to safety issues)                     
                                  [...]
-| `plugin.tomcat.collect_http_params`                       | This config item 
controls that whether the Tomcat plugin should collect the parameters of the 
request. Also, activate implicitly in the profiled trace.                       
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.springmvc.collect_http_params`                    | This config item 
controls that whether the SpringMVC plugin should collect the parameters of the 
request, when your Spring application is based on Tomcat, consider only setting 
either `plugin.tomcat.collect_http_params` or 
`plugin.springmvc.collect_http_params`. Also, activate implicitly in the 
profiled trace.                                                                 
                                                       [...]
-| `plugin.httpclient.collect_http_params`                   | This config item 
controls that whether the HttpClient plugin should collect the parameters of 
the request                                                                     
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.http.http_params_length_threshold`                | When 
`COLLECT_HTTP_PARAMS` is enabled, how many characters to keep and send to the 
OAP backend, use negative values to keep and send the complete parameters, NB. 
this config item is added for the sake of performance.                          
                                                                                
                                                                                
                             [...]
-| `plugin.http.http_headers_length_threshold`               | When 
`include_http_headers` declares header names, this threshold controls the 
length limitation of all header values. use negative values to keep and send 
the complete headers. Note. this config item is added for the sake of 
performance.                                                                    
                                                                                
                                             [...]
-| `plugin.http.include_http_headers`                        | Set the header 
names, which should be collected by the plugin. Header name must follow 
`javax.servlet.http` definition. Multiple names should be split by comma.       
                                                                                
                                                                                
                                                                                
                        [...]
-| `plugin.feign.collect_request_body`                       | This config item 
controls that whether the Feign plugin should collect the http body of the 
request.                                                                        
                                                                                
                                                                                
                                                                                
                   [...]
-| `plugin.feign.filter_length_limit`                        | When 
`COLLECT_REQUEST_BODY` is enabled, how many characters to keep and send to the 
OAP backend, use negative values to keep and send the complete body.            
                                                                                
                                                                                
                                                                                
                           [...]
-| `plugin.feign.supported_content_types_prefix`             | When 
`COLLECT_REQUEST_BODY` is enabled and content-type start with 
SUPPORTED_CONTENT_TYPES_PREFIX, collect the body of the request , multiple 
paths should be separated by `,`                                                
                                                                                
                                                                                
                                                 [...]
-| `plugin.influxdb.trace_influxql`                          | If true, trace 
all the influxql(query and write) in InfluxDB access, default is true.          
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
-| `plugin.dubbo.collect_consumer_arguments`                 | Apache Dubbo 
consumer collect `arguments` in RPC call, use `Object#toString` to collect 
`arguments`.                                                                    
                                                                                
                                                                                
                                                                                
                       [...]
-| `plugin.dubbo.consumer_arguments_length_threshold`        | When 
`plugin.dubbo.collect_consumer_arguments` is `true`, Arguments of length from 
the front will to the OAP backend                                               
                                                                                
                                                                                
                                                                                
                            [...]
-| `plugin.dubbo.collect_provider_arguments`                 | Apache Dubbo 
provider collect `arguments` in RPC call, use `Object#toString` to collect 
`arguments`.                                                                    
                                                                                
                                                                                
                                                                                
                       [...]
-| `plugin.dubbo.provider_arguments_length_threshold`        | When 
`plugin.dubbo.collect_provider_arguments` is `true`, Arguments of length from 
the front will to the OAP backend                                               
                                                                                
                                                                                
                                                                                
                            [...]
-| `plugin.kafka.bootstrap_servers`                          | A list of 
host/port pairs to use for establishing the initial connection to the Kafka 
cluster.                                                                        
                                                                                
                                                                                
                                                                                
                         [...]
-| `plugin.kafka.get_topic_timeout`                          | Timeout period 
of reading topics from the Kafka server, the unit is second.                    
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
-| `plugin.kafka.producer_config`                            | Kafka producer 
configuration. Read [producer 
configure](http://kafka.apache.org/24/documentation.html#producerconfigs) to 
get more details. Check [Kafka report 
doc](advanced-reporters.md#kafka-reporter) for more details and examples.       
                                                                                
                                                                                
                               [...]
-| `plugin.kafka.producer_config_json`                       | Configure Kafka 
Producer configuration in JSON format. Notice it will be overridden by 
`plugin.kafka.producer_config[key]`, if the key duplication.                    
                                                                                
                                                                                
                                                                                
                        [...]
-| `plugin.kafka.topic_meter`                                | Specify which 
Kafka topic name for Meter System data to report to.                            
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.kafka.topic_metrics`                              | Specify which 
Kafka topic name for JVM metrics data to report to.                             
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.kafka.topic_segment`                              | Specify which 
Kafka topic name for traces data to report to.                                  
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.kafka.topic_profiling`                            | Specify which 
Kafka topic name for Thread Profiling snapshot to report to.                    
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.kafka.topic_management`                           | Specify which 
Kafka topic name for the register or heartbeat data of Service Instance to 
report to.                                                                      
                                                                                
                                                                                
                                                                                
                      [...]
-| `plugin.kafka.topic_logging`                              | Specify which 
Kafka topic name for the logging data to report to.                             
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.kafka.namespace`                                  | isolate multi 
OAP server when using same Kafka cluster (final topic name will append 
namespace before Kafka topics with `-` ).                                       
                                                                                
                                                                                
                                                                                
                          [...]
-| `plugin.springannotation.classname_match_regex`           | Match spring 
beans with regular expression for the class name. Multiple expressions could be 
separated by a comma. This only works when `Spring annotation plugin` has been 
activated.                                                                      
                                                                                
                                                                                
                   [...]
-| `plugin.toolkit.log.transmit_formatted`                   | Whether or not 
to transmit logged data as formatted or un-formatted.                           
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
-| `plugin.lettuce.trace_redis_parameters`                   | If set to true, 
the parameters of Redis commands would be collected by Lettuce agent.           
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `plugin.lettuce.redis_parameter_max_length`               | If set to 
positive number and `plugin.lettuce.trace_redis_parameters` is set to `true`, 
Redis command parameters would be collected and truncated to this length.       
                                                                                
                                                                                
                                                                                
                       [...]
-| `plugin.jedis.trace_redis_parameters`                     | If set to true, 
the parameters of Redis commands would be collected by Jedis agent.             
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `plugin.jedis.redis_parameter_max_length`                 | If set to 
positive number and `plugin.jedis.trace_redis_parameters` is set to `true`, 
Redis command parameters would be collected and truncated to this length.       
                                                                                
                                                                                
                                                                                
                         [...]
-| `plugin.jedis.operation_mapping_write`                    | Specify which 
command should be converted to `write` operation                                
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.jedis.operation_mapping_read  `                   | Specify which 
command should be converted to `read` operation                                 
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.redisson.trace_redis_parameters`                  | If set to true, 
the parameters of Redis commands would be collected by Redisson agent.          
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `plugin.redisson.redis_parameter_max_length`              | If set to 
positive number and `plugin.redisson.trace_redis_parameters` is set to `true`, 
Redis command parameters would be collected and truncated to this length.       
                                                                                
                                                                                
                                                                                
                      [...]
-| `plugin.neo4j.trace_cypher_parameters`                    | If set to true, 
the parameters of the cypher would be collected.                                
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
-| `plugin.neo4j.cypher_parameters_max_length`               | If set to 
positive number, the `db.cypher.parameters` would be truncated to this length, 
otherwise it would be completely saved, which may cause performance problem.    
                                                                                
                                                                                
                                                                                
                      [...]
-| `plugin.neo4j.cypher_body_max_length`                     | If set to 
positive number, the `db.statement` would be truncated to this length, 
otherwise it would be completely saved, which may cause performance problem.    
                                                                                
                                                                                
                                                                                
                              [...]
-| `plugin.cpupolicy.sample_cpu_usage_percent_limit`         | If set to a 
positive number and activate `trace sampler CPU policy plugin`, the trace would 
not be collected when agent process CPU usage percent is greater than 
`plugin.cpupolicy.sample_cpu_usage_percent_limit`.                              
                                                                                
                                                                                
                             [...]
-| `plugin.micronauthttpclient.collect_http_params`          | This config item 
controls that whether the Micronaut http client plugin should collect the 
parameters of the request. Also, activate implicitly in the profiled trace.     
                                                                                
                                                                                
                                                                                
                    [...]
-| `plugin.micronauthttpserver.collect_http_params`          | This config item 
controls that whether the Micronaut http server plugin should collect the 
parameters of the request. Also, activate implicitly in the profiled trace.     
                                                                                
                                                                                
                                                                                
                    [...]
-| `plugin.memcached.operation_mapping_write`                | Specify which 
command should be converted to `write` operation                                
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.memcached.operation_mapping_read`                 | Specify which 
command should be converted to `read` operation                                 
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.ehcache.operation_mapping_write`                  | Specify which 
command should be converted to `write` operation                                
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.ehcache.operation_mapping_read`                   | Specify which 
command should be converted to `read` operation                                 
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.guavacache.operation_mapping_write`               | Specify which 
command should be converted to `write` operation                                
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-| `plugin.guavacache.operation_mapping_read`                | Specify which 
command should be converted to `read` operation                                 
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
-
+| `plugin.jdkthreading.threading_class_prefixes`                  | Threading 
classes (`java.lang.Runnable` and `java.util.concurrent.Callable`) and their 
subclasses, including anonymous inner classes whose name match any one of the 
`THREADING_CLASS_PREFIXES` (splitted by `,`) will be instrumented, make sure to 
only specify as narrow prefixes as what you're expecting to instrument, 
(`java.` and `javax.` will be ignored due to safety issues)                     
                            [...]
+| `plugin.tomcat.collect_http_params`                             | This 
config item controls that whether the Tomcat plugin should collect the 
parameters of the request. Also, activate implicitly in the profiled trace.     
                                                                                
                                                                                
                                                                                
                             [...]
+| `plugin.springmvc.collect_http_params`                          | This 
config item controls that whether the SpringMVC plugin should collect the 
parameters of the request, when your Spring application is based on Tomcat, 
consider only setting either `plugin.tomcat.collect_http_params` or 
`plugin.springmvc.collect_http_params`. Also, activate implicitly in the 
profiled trace.                                                                 
                                                 [...]
+| `plugin.httpclient.collect_http_params`                         | This 
config item controls that whether the HttpClient plugin should collect the 
parameters of the request                                                       
                                                                                
                                                                                
                                                                                
                         [...]
+| `plugin.http.http_params_length_threshold`                      | When 
`COLLECT_HTTP_PARAMS` is enabled, how many characters to keep and send to the 
OAP backend, use negative values to keep and send the complete parameters, NB. 
this config item is added for the sake of performance.                          
                                                                                
                                                                                
                       [...]
+| `plugin.http.http_headers_length_threshold`                     | When 
`include_http_headers` declares header names, this threshold controls the 
length limitation of all header values. use negative values to keep and send 
the complete headers. Note. this config item is added for the sake of 
performance.                                                                    
                                                                                
                                       [...]
+| `plugin.http.include_http_headers`                              | Set the 
header names, which should be collected by the plugin. Header name must follow 
`javax.servlet.http` definition. Multiple names should be split by comma.       
                                                                                
                                                                                
                                                                                
                  [...]
+| `plugin.feign.collect_request_body`                             | This 
config item controls that whether the Feign plugin should collect the http body 
of the request.                                                                 
                                                                                
                                                                                
                                                                                
                    [...]
+| `plugin.feign.filter_length_limit`                              | When 
`COLLECT_REQUEST_BODY` is enabled, how many characters to keep and send to the 
OAP backend, use negative values to keep and send the complete body.            
                                                                                
                                                                                
                                                                                
                     [...]
+| `plugin.feign.supported_content_types_prefix`                   | When 
`COLLECT_REQUEST_BODY` is enabled and content-type start with 
SUPPORTED_CONTENT_TYPES_PREFIX, collect the body of the request , multiple 
paths should be separated by `,`                                                
                                                                                
                                                                                
                                           [...]
+| `plugin.influxdb.trace_influxql`                                | If true, 
trace all the influxql(query and write) in InfluxDB access, default is true.    
                                                                                
                                                                                
                                                                                
                                                                                
                [...]
+| `plugin.dubbo.collect_consumer_arguments`                       | Apache 
Dubbo consumer collect `arguments` in RPC call, use `Object#toString` to 
collect `arguments`.                                                            
                                                                                
                                                                                
                                                                                
                         [...]
+| `plugin.dubbo.consumer_arguments_length_threshold`              | When 
`plugin.dubbo.collect_consumer_arguments` is `true`, Arguments of length from 
the front will to the OAP backend                                               
                                                                                
                                                                                
                                                                                
                      [...]
+| `plugin.dubbo.collect_provider_arguments`                       | Apache 
Dubbo provider collect `arguments` in RPC call, use `Object#toString` to 
collect `arguments`.                                                            
                                                                                
                                                                                
                                                                                
                         [...]
+| `plugin.dubbo.provider_arguments_length_threshold`              | When 
`plugin.dubbo.collect_provider_arguments` is `true`, Arguments of length from 
the front will to the OAP backend                                               
                                                                                
                                                                                
                                                                                
                      [...]
+| `plugin.kafka.bootstrap_servers`                                | A list of 
host/port pairs to use for establishing the initial connection to the Kafka 
cluster.                                                                        
                                                                                
                                                                                
                                                                                
                   [...]
+| `plugin.kafka.get_topic_timeout`                                | Timeout 
period of reading topics from the Kafka server, the unit is second.             
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.kafka.producer_config`                                  | Kafka 
producer configuration. Read [producer 
configure](http://kafka.apache.org/24/documentation.html#producerconfigs) to 
get more details. Check [Kafka report 
doc](advanced-reporters.md#kafka-reporter) for more details and examples.       
                                                                                
                                                                                
                         [...]
+| `plugin.kafka.producer_config_json`                             | Configure 
Kafka Producer configuration in JSON format. Notice it will be overridden by 
`plugin.kafka.producer_config[key]`, if the key duplication.                    
                                                                                
                                                                                
                                                                                
                  [...]
+| `plugin.kafka.topic_meter`                                      | Specify 
which Kafka topic name for Meter System data to report to.                      
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.kafka.topic_metrics`                                    | Specify 
which Kafka topic name for JVM metrics data to report to.                       
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.kafka.topic_segment`                                    | Specify 
which Kafka topic name for traces data to report to.                            
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.kafka.topic_profiling`                                  | Specify 
which Kafka topic name for Thread Profiling snapshot to report to.              
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.kafka.topic_management`                                 | Specify 
which Kafka topic name for the register or heartbeat data of Service Instance 
to report to.                                                                   
                                                                                
                                                                                
                                                                                
                   [...]
+| `plugin.kafka.topic_logging`                                    | Specify 
which Kafka topic name for the logging data to report to.                       
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.kafka.namespace`                                        | isolate 
multi OAP server when using same Kafka cluster (final topic name will append 
namespace before Kafka topics with `-` ).                                       
                                                                                
                                                                                
                                                                                
                    [...]
+| `plugin.springannotation.classname_match_regex`                 | Match 
spring beans with regular expression for the class name. Multiple expressions 
could be separated by a comma. This only works when `Spring annotation plugin` 
has been activated.                                                             
                                                                                
                                                                                
                      [...]
+| `plugin.toolkit.log.transmit_formatted`                         | Whether or 
not to transmit logged data as formatted or un-formatted.                       
                                                                                
                                                                                
                                                                                
                                                                                
              [...]
+| `plugin.lettuce.trace_redis_parameters`                         | If set to 
true, the parameters of Redis commands would be collected by Lettuce agent.     
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
+| `plugin.lettuce.redis_parameter_max_length`                     | If set to 
positive number and `plugin.lettuce.trace_redis_parameters` is set to `true`, 
Redis command parameters would be collected and truncated to this length.       
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.jedis.trace_redis_parameters`                           | If set to 
true, the parameters of Redis commands would be collected by Jedis agent.       
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
+| `plugin.jedis.redis_parameter_max_length`                       | If set to 
positive number and `plugin.jedis.trace_redis_parameters` is set to `true`, 
Redis command parameters would be collected and truncated to this length.       
                                                                                
                                                                                
                                                                                
                   [...]
+| `plugin.jedis.operation_mapping_write`                          | Specify 
which command should be converted to `write` operation                          
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.jedis.operation_mapping_read  `                         | Specify 
which command should be converted to `read` operation                           
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.redisson.trace_redis_parameters`                        | If set to 
true, the parameters of Redis commands would be collected by Redisson agent.    
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
+| `plugin.redisson.redis_parameter_max_length`                    | If set to 
positive number and `plugin.redisson.trace_redis_parameters` is set to `true`, 
Redis command parameters would be collected and truncated to this length.       
                                                                                
                                                                                
                                                                                
                [...]
+| `plugin.neo4j.trace_cypher_parameters`                          | If set to 
true, the parameters of the cypher would be collected.                          
                                                                                
                                                                                
                                                                                
                                                                                
               [...]
+| `plugin.neo4j.cypher_parameters_max_length`                     | If set to 
positive number, the `db.cypher.parameters` would be truncated to this length, 
otherwise it would be completely saved, which may cause performance problem.    
                                                                                
                                                                                
                                                                                
                [...]
+| `plugin.neo4j.cypher_body_max_length`                           | If set to 
positive number, the `db.statement` would be truncated to this length, 
otherwise it would be completely saved, which may cause performance problem.    
                                                                                
                                                                                
                                                                                
                        [...]
+| `plugin.cpupolicy.sample_cpu_usage_percent_limit`               | If set to 
a positive number and activate `trace sampler CPU policy plugin`, the trace 
would not be collected when agent process CPU usage percent is greater than 
`plugin.cpupolicy.sample_cpu_usage_percent_limit`.                              
                                                                                
                                                                                
                       [...]
+| `plugin.micronauthttpclient.collect_http_params`                | This 
config item controls that whether the Micronaut http client plugin should 
collect the parameters of the request. Also, activate implicitly in the 
profiled trace.                                                                 
                                                                                
                                                                                
                                  [...]
+| `plugin.micronauthttpserver.collect_http_params`                | This 
config item controls that whether the Micronaut http server plugin should 
collect the parameters of the request. Also, activate implicitly in the 
profiled trace.                                                                 
                                                                                
                                                                                
                                  [...]
+| `plugin.memcached.operation_mapping_write`                      | Specify 
which command should be converted to `write` operation                          
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.memcached.operation_mapping_read`                       | Specify 
which command should be converted to `read` operation                           
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.ehcache.operation_mapping_write`                        | Specify 
which command should be converted to `write` operation                          
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.ehcache.operation_mapping_read`                         | Specify 
which command should be converted to `read` operation                           
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.guavacache.operation_mapping_write`                     | Specify 
which command should be converted to `write` operation                          
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
+| `plugin.guavacache.operation_mapping_read`                      | Specify 
which command should be converted to `read` operation                           
                                                                                
                                                                                
                                                                                
                                                                                
                 [...]
 
 # Reset Collection/Map type configurations as empty collection.
 
-* Collection type config, e.g.  using ` plugin.kafka.topics=` 
-to override default `plugin.kafka.topics=a,b,c,d` 
-* Map type config, e.g. using `plugin.kafka.producer_config[]=` to override 
default `plugin.kafka.producer_config[key]=value`
+* Collection type config, e.g. using ` plugin.kafka.topics=`
+  to override default `plugin.kafka.topics=a,b,c,d`
+* Map type config, e.g. using `plugin.kafka.producer_config[]=` to override
+  default `plugin.kafka.producer_config[key]=value`
 
 # Dynamic Configurations
-All configurations above are static, if you need to change some agent settings 
at runtime, please read [CDS - Configuration Discovery Service 
document](configuration-discovery.md) for more details.
+
+All configurations above are static, if you need to change some agent settings 
at runtime, please
+read [CDS - Configuration Discovery Service 
document](configuration-discovery.md) for more details.

Reply via email to