This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new 841a9d3 [agent/plugin] Move FILTER_LENGTH_LIMIT to
config.plugin.mongodb (#3820)
841a9d3 is described below
commit 841a9d395bada2a9f2d883f7ec7f9ed2c4f1027f
Author: zhang-wei <[email protected]>
AuthorDate: Sun Nov 10 15:04:00 2019 +0800
[agent/plugin] Move FILTER_LENGTH_LIMIT to config.plugin.mongodb (#3820)
* move FILTER_LENGTH_LIMIT
* fix checkstyle
---
.../skywalking/apm/agent/core/conf/Config.java | 13 +++++++++--
.../plugin/mongodb/v3/support/MongoConstants.java | 2 --
.../mongodb/v3/support/MongoOperationHelper.java | 27 ++++++++++++++++++----
docs/en/setup/service-agent/java-agent/README.md | 1 +
4 files changed, 35 insertions(+), 8 deletions(-)
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 18280df..376add8 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
@@ -19,13 +19,14 @@
package org.apache.skywalking.apm.agent.core.conf;
-import java.util.HashMap;
-import java.util.Map;
import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
import org.apache.skywalking.apm.agent.core.logging.core.LogLevel;
import org.apache.skywalking.apm.agent.core.logging.core.LogOutput;
import org.apache.skywalking.apm.agent.core.logging.core.WriterFactory;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* This is the core config in sniffer agent.
*
@@ -220,6 +221,14 @@ public class Config {
* include parameters.
*/
public static boolean TRACE_PARAM = false;
+
+ /**
+ * For the sake of performance, SkyWalking won't save the entire
parameters string into the tag, but only
+ * the first {@code FILTER_LENGTH_LIMIT} characters.
+ *
+ * Set a negative number to save the complete parameter string to
the tag.
+ */
+ public static int FILTER_LENGTH_LIMIT = 256;
}
public static class Elasticsearch {
diff --git
a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/mongodb/v3/support/MongoConstants.java
b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/mongodb/v3/support/MongoConstants.java
index 1619057..6230be9 100644
---
a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/mongodb/v3/support/MongoConstants.java
+++
b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/mongodb/v3/support/MongoConstants.java
@@ -31,8 +31,6 @@ public class MongoConstants {
public static final String MONGO_DB_OP_PREFIX = "MongoDB/";
- public static final int FILTER_LENGTH_LIMIT = 256;
-
public static final String EMPTY = "";
}
diff --git
a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/mongodb/v3/support/MongoOperationHelper.java
b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/mongodb/v3/support/MongoOperationHelper.java
index c038cd5..ca1d41e 100644
---
a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/mongodb/v3/support/MongoOperationHelper.java
+++
b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/mongodb/v3/support/MongoOperationHelper.java
@@ -23,7 +23,24 @@ import com.mongodb.bulk.DeleteRequest;
import com.mongodb.bulk.InsertRequest;
import com.mongodb.bulk.UpdateRequest;
import com.mongodb.bulk.WriteRequest;
-import com.mongodb.operation.*;
+import com.mongodb.operation.CountOperation;
+import com.mongodb.operation.CreateCollectionOperation;
+import com.mongodb.operation.CreateIndexesOperation;
+import com.mongodb.operation.CreateViewOperation;
+import com.mongodb.operation.DeleteOperation;
+import com.mongodb.operation.DistinctOperation;
+import com.mongodb.operation.FindAndDeleteOperation;
+import com.mongodb.operation.FindAndReplaceOperation;
+import com.mongodb.operation.FindAndUpdateOperation;
+import com.mongodb.operation.FindOperation;
+import com.mongodb.operation.GroupOperation;
+import com.mongodb.operation.InsertOperation;
+import com.mongodb.operation.ListCollectionsOperation;
+import com.mongodb.operation.MapReduceToCollectionOperation;
+import com.mongodb.operation.MapReduceWithInlineResultsOperation;
+import com.mongodb.operation.MixedBulkWriteOperation;
+import com.mongodb.operation.UpdateOperation;
+import org.apache.skywalking.apm.agent.core.conf.Config;
import org.bson.BsonDocument;
import java.util.List;
@@ -111,7 +128,8 @@ public class MongoOperationHelper {
} else if (request instanceof UpdateRequest) {
params.append(((UpdateRequest)
request).getFilter()).append(",");
}
- if (params.length() > MongoConstants.FILTER_LENGTH_LIMIT) {
+ final int filterLengthLimit =
Config.Plugin.MongoDB.FILTER_LENGTH_LIMIT;
+ if (filterLengthLimit > 0 && params.length() > filterLengthLimit) {
params.append("...");
break;
}
@@ -121,8 +139,9 @@ public class MongoOperationHelper {
private static String limitFilter(String filter) {
final StringBuilder params = new StringBuilder();
- if (filter.length() > MongoConstants.FILTER_LENGTH_LIMIT) {
- return params.append(filter, 0,
MongoConstants.FILTER_LENGTH_LIMIT).append("...").toString();
+ final int filterLengthLimit =
Config.Plugin.MongoDB.FILTER_LENGTH_LIMIT;
+ if (filterLengthLimit > 0 && filter.length() > filterLengthLimit) {
+ return params.append(filter, 0,
filterLengthLimit).append("...").toString();
} else {
return filter;
}
diff --git a/docs/en/setup/service-agent/java-agent/README.md
b/docs/en/setup/service-agent/java-agent/README.md
index 979837a..5db8bc7 100755
--- a/docs/en/setup/service-agent/java-agent/README.md
+++ b/docs/en/setup/service-agent/java-agent/README.md
@@ -97,6 +97,7 @@ property key | Description | Default |
`dictionary.endpoint_name_buffer_size`|The buffer size of endpoint names and
peer|`1000 * 10000`|
`plugin.peer_max_length `|Peer maximum description limit.|`200`|
`plugin.mongodb.trace_param`|If true, trace all the parameters in MongoDB
access, default is false. Only trace the operation, not include
parameters.|`false`|
+`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.|`256`|
`plugin.elasticsearch.trace_dsl`|If true, trace all the DSL(Domain Specific
Language) in ElasticSearch access, default is false.|`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.|`false`|
`plugin.toolit.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.|`false`|