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 <pk...@outlook.com> 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`|