提交 841a9d39 编写于 作者: Z zhang-wei 提交者: wu-sheng

[agent/plugin] Move FILTER_LENGTH_LIMIT to config.plugin.mongodb (#3820)

* move FILTER_LENGTH_LIMIT

* fix checkstyle
上级 555de825
......@@ -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 {
......
......@@ -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 = "";
}
......@@ -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;
}
......
......@@ -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`|
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册