Fix the default ignore mechanism isn't accurate enough bug (#5839)
Co-authored-by: huliang <hl@yumeitech.com.cn> Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
This commit is contained in:
parent
7220643cbf
commit
832582427a
|
|
@ -19,6 +19,7 @@ Release Notes.
|
|||
* Fix NPE in the nutz plugin.
|
||||
* Provide Apache Commons DBCP 2.x plugin.
|
||||
* Add the plugin for mssql-jtds 1.x plugin.
|
||||
* Fix the default ignore mechanism isn't accurate enough bug.
|
||||
|
||||
#### OAP-Backend
|
||||
* Add the `@SuperDataset` annotation for BrowserErrorLog.
|
||||
|
|
|
|||
|
|
@ -27,8 +27,13 @@ import org.apache.skywalking.apm.agent.core.remote.GRPCChannelManager;
|
|||
import org.apache.skywalking.apm.agent.core.remote.GRPCChannelStatus;
|
||||
import org.apache.skywalking.apm.agent.core.sampling.SamplingService;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@DefaultImplementor
|
||||
public class ContextManagerExtendService implements BootService, GRPCChannelListener {
|
||||
|
||||
private String[] ignoreSuffixArray = new String[0];
|
||||
|
||||
private volatile GRPCChannelStatus status = GRPCChannelStatus.DISCONNECT;
|
||||
|
||||
@Override
|
||||
|
|
@ -38,7 +43,7 @@ public class ContextManagerExtendService implements BootService, GRPCChannelList
|
|||
|
||||
@Override
|
||||
public void boot() {
|
||||
|
||||
ignoreSuffixArray = Config.Agent.IGNORE_SUFFIX.split(",");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -61,7 +66,7 @@ public class ContextManagerExtendService implements BootService, GRPCChannelList
|
|||
}
|
||||
|
||||
int suffixIdx = operationName.lastIndexOf(".");
|
||||
if (suffixIdx > -1 && Config.Agent.IGNORE_SUFFIX.contains(operationName.substring(suffixIdx))) {
|
||||
if (suffixIdx > -1 && Arrays.stream(ignoreSuffixArray).anyMatch(a -> a.equals(operationName.substring(suffixIdx)))) {
|
||||
context = new IgnoredTracerContext();
|
||||
} else {
|
||||
SamplingService samplingService = ServiceManager.INSTANCE.findService(SamplingService.class);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
*/
|
||||
|
||||
package org.apache.skywalking.apm.agent.core.context;
|
||||
|
||||
import org.apache.skywalking.apm.agent.core.boot.ServiceManager;
|
||||
import org.apache.skywalking.apm.agent.core.conf.Config;
|
||||
import org.apache.skywalking.apm.agent.core.test.tools.AgentServiceRule;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.Assert;
|
||||
|
||||
public class ContextManagerExtendServiceTest {
|
||||
|
||||
@Rule
|
||||
public AgentServiceRule serviceRule = new AgentServiceRule();
|
||||
|
||||
@BeforeClass
|
||||
public static void beforeClass() {
|
||||
Config.Agent.KEEP_TRACING = true;
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void afterClass() {
|
||||
Config.Agent.KEEP_TRACING = false;
|
||||
ServiceManager.INSTANCE.shutdown();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRequestUrlCreateTraceContext() {
|
||||
ContextManagerExtendService extendService = ServiceManager.INSTANCE.findService(ContextManagerExtendService.class);
|
||||
|
||||
AbstractTracerContext tracerContext = extendService.createTraceContext("/app/demo/index.html", false);
|
||||
String traceId = tracerContext.getReadablePrimaryTraceId();
|
||||
Assert.assertEquals("Ignored_Trace", traceId);
|
||||
|
||||
tracerContext = extendService.createTraceContext("/app/demo/index.htm", false);
|
||||
traceId = tracerContext.getReadablePrimaryTraceId();
|
||||
Assert.assertNotEquals("Ignored_Trace", traceId);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue