fix: Fix MultiScopesAnalysisListener#setPublicAttrs log warn frequently (#7271)
* fix: Fix MultiScopesAnalysisListener#setPublicAttrs log warn frequently. #6562 1. Rename current STATUS_CODE to HTTP_RESPONSE_STATUS_CODE, real tag key should be http.status_code. 2. Add a new string tag RPC_RESPONSE_STATUS_CODE to hold all string type value tag. The key is `rpc.status_code`. 3. At the backend, keep responseCode for HTTP_RESPONSE_STATUS_CODE tag, but add @Deprecated. Also, add httpResponseStatusCode(a duplicate of responseCode) and rpcStatusCode(for RPC_RESPONSE_STATUS_CODE) fields for OAL. * Modify `Tags.STATUS_CODE` field name to `Tags.HTTP_RESPONSE_STATUS_CODE` and type from `StringTag` to `IntegerTag`, add `Tags.RPC_RESPONSE_STATUS_CODE` field to hold rpc response code value. * Add `rpcStatusCode` for `rpc.status_code` tag in the OAL objects. The `responseCode` field is marked as deprecated and replaced by `httpResponseStatusCode` field. * Tag `status_code` is still supported in the backend for forward compatbility. Will be removed one year later. Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
This commit is contained in:
parent
cf08a2da37
commit
4b66f1e0a7
|
|
@ -14,6 +14,7 @@ Release Notes.
|
|||
#### Java Agent
|
||||
|
||||
* Support Multiple DNS period resolving mechanism
|
||||
* Modify `Tags.STATUS_CODE` field name to `Tags.HTTP_RESPONSE_STATUS_CODE` and type from `StringTag` to `IntegerTag`, add `Tags.RPC_RESPONSE_STATUS_CODE` field to hold rpc response code value.
|
||||
|
||||
#### OAP-Backend
|
||||
|
||||
|
|
@ -36,6 +37,7 @@ Release Notes.
|
|||
* [Break Change] Remove endpoint name in the backend log query condition. Only support `query by endpoint id`.
|
||||
* [Break Change] Fix typo for a column `page_path_id`(was `pate_path_id`) of storage entity `browser_error_log`.
|
||||
* Add component id for Python falcon plugin.
|
||||
* Add `rpcStatusCode` for `rpc.status_code` tag. The `responseCode` field is marked as deprecated and replaced by `httpResponseStatusCode` field.
|
||||
|
||||
#### UI
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* 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.tag;
|
||||
|
||||
import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
|
||||
|
||||
/**
|
||||
* A subclass of {@link AbstractTag}, represent a tag with a {@link Integer} value.
|
||||
*/
|
||||
public class IntegerTag extends AbstractTag<Integer> {
|
||||
|
||||
public IntegerTag(int id, String tagKey, boolean canOverwrite) {
|
||||
super(id, tagKey, canOverwrite);
|
||||
}
|
||||
|
||||
public IntegerTag(String key) {
|
||||
super(key);
|
||||
}
|
||||
|
||||
public IntegerTag(int id, String tagKey) {
|
||||
super(id, tagKey, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void set(AbstractSpan span, Integer tagValue) {
|
||||
span.tag(this, Integer.toString(tagValue));
|
||||
}
|
||||
}
|
||||
|
|
@ -40,7 +40,7 @@ public final class Tags {
|
|||
/**
|
||||
* STATUS_CODE records the http status code of the response.
|
||||
*/
|
||||
public static final StringTag STATUS_CODE = new StringTag(2, "status_code", true);
|
||||
public static final IntegerTag HTTP_RESPONSE_STATUS_CODE = new IntegerTag(2, "http.status_code", true);
|
||||
|
||||
/**
|
||||
* DB_TYPE records database type, such as sql, redis, cassandra and so on.
|
||||
|
|
@ -90,6 +90,12 @@ public final class Tags {
|
|||
*/
|
||||
public static final StringTag TRANSMISSION_LATENCY = new StringTag(15, "transmission.latency", false);
|
||||
|
||||
/**
|
||||
* RESPONSE_CODE records the code string of the response. This is different from status code, which is
|
||||
* used to record http response code.
|
||||
*/
|
||||
public static final StringTag RPC_RESPONSE_STATUS_CODE = new StringTag(18, "rpc.status_code", true);
|
||||
|
||||
public static final class HTTP {
|
||||
public static final StringTag METHOD = new StringTag(10, "http.method");
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public class AsyncHandlerWrapper implements AsyncHandler {
|
|||
@Override
|
||||
public State onStatusReceived(final HttpResponseStatus httpResponseStatus) throws Exception {
|
||||
int statusCode = httpResponseStatus.getStatusCode();
|
||||
Tags.STATUS_CODE.set(asyncSpan, String.valueOf(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(asyncSpan, statusCode);
|
||||
if (statusCode >= 400) {
|
||||
asyncSpan.errorOccurred();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ public class DefaultHttpClientInterceptor implements InstanceMethodsAroundInterc
|
|||
AbstractSpan span = ContextManager.activeSpan();
|
||||
if (statusCode >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ public class LoadBalancerHttpClientInterceptor implements InstanceMethodsAroundI
|
|||
AbstractSpan span = ContextManager.activeSpan();
|
||||
if (statusCode >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,15 @@
|
|||
|
||||
package org.apache.skywalking.apm.plugin.grpc.v1.client;
|
||||
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.BLOCKING_CALL_EXIT_SPAN;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.CLIENT;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.REQUEST_ON_CANCEL_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.REQUEST_ON_COMPLETE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.REQUEST_ON_MESSAGE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.RESPONSE_ON_CLOSE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.RESPONSE_ON_MESSAGE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.OperationNameFormatUtil.formatOperationName;
|
||||
|
||||
import io.grpc.Channel;
|
||||
import io.grpc.ClientCall;
|
||||
import io.grpc.ForwardingClientCall;
|
||||
|
|
@ -36,15 +45,6 @@ import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
|
|||
import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
|
||||
import org.apache.skywalking.apm.plugin.grpc.v1.OperationNameFormatUtil;
|
||||
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.BLOCKING_CALL_EXIT_SPAN;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.CLIENT;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.REQUEST_ON_CANCEL_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.REQUEST_ON_COMPLETE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.REQUEST_ON_MESSAGE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.RESPONSE_ON_CLOSE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.RESPONSE_ON_MESSAGE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.OperationNameFormatUtil.formatOperationName;
|
||||
|
||||
/**
|
||||
* Fully client tracing for gRPC servers.
|
||||
*/
|
||||
|
|
@ -199,7 +199,7 @@ class TracingClientCall<REQUEST, RESPONSE> extends ForwardingClientCall.SimpleFo
|
|||
ContextManager.continued(contextSnapshot);
|
||||
if (!status.isOk()) {
|
||||
span.log(status.asRuntimeException());
|
||||
Tags.STATUS_CODE.set(span, status.getCode().name());
|
||||
Tags.RPC_RESPONSE_STATUS_CODE.set(span, status.getCode().name());
|
||||
}
|
||||
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -18,6 +18,10 @@
|
|||
|
||||
package org.apache.skywalking.apm.plugin.grpc.v1.server;
|
||||
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.RESPONSE_ON_CLOSE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.RESPONSE_ON_MESSAGE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.SERVER;
|
||||
|
||||
import io.grpc.ForwardingServerCall;
|
||||
import io.grpc.Metadata;
|
||||
import io.grpc.ServerCall;
|
||||
|
|
@ -27,9 +31,6 @@ import org.apache.skywalking.apm.agent.core.context.tag.Tags;
|
|||
import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
|
||||
import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
|
||||
import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.RESPONSE_ON_CLOSE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.RESPONSE_ON_MESSAGE_OPERATION_NAME;
|
||||
import static org.apache.skywalking.apm.plugin.grpc.v1.Constants.SERVER;
|
||||
import org.apache.skywalking.apm.plugin.grpc.v1.OperationNameFormatUtil;
|
||||
|
||||
public class TracingServerCall<REQUEST, RESPONSE> extends ForwardingServerCall.SimpleForwardingServerCall<REQUEST, RESPONSE> {
|
||||
|
|
@ -91,7 +92,7 @@ public class TracingServerCall<REQUEST, RESPONSE> extends ForwardingServerCall.S
|
|||
}
|
||||
break;
|
||||
}
|
||||
Tags.STATUS_CODE.set(span, status.getCode().name());
|
||||
Tags.RPC_RESPONSE_STATUS_CODE.set(span, status.getCode().name());
|
||||
|
||||
try {
|
||||
super.close(status, trailers);
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterc
|
|||
AbstractSpan span = ContextManager.activeSpan();
|
||||
if (statusCode >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
HttpRequest httpRequest = (HttpRequest) allArguments[1];
|
||||
// Active HTTP parameter collection automatically in the profiling context.
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ public class HttpAsyncResponseConsumerWrapper<T> implements HttpAsyncResponseCon
|
|||
int statusCode = response.getStatusLine().getStatusCode();
|
||||
if (statusCode >= 400) {
|
||||
AbstractSpan span = ContextManager.activeSpan().errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, String.valueOf(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
ContextManager.stopSpan();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ public class HttpClientExecuteInterceptor implements InstanceMethodsAroundInterc
|
|||
final AbstractSpan span = ContextManager.activeSpan();
|
||||
if (statusCode >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
final HttpMethod httpMethod = (HttpMethod) allArguments[1];
|
||||
if (httpMethod == null) {
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ public class HandleInterceptor implements InstanceMethodsAroundInterceptor {
|
|||
AbstractSpan span = ContextManager.activeSpan();
|
||||
if (IS_SERVLET_GET_STATUS_METHOD_EXIST && servletResponse.getStatus() >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(servletResponse.getStatus()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, servletResponse.getStatus());
|
||||
}
|
||||
ContextManager.stopSpan();
|
||||
ContextManager.getRuntimeContext().remove(Constants.FORWARD_REQUEST_FLAG);
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public class JsonServiceExporterInterceptor implements InstanceMethodsAroundInte
|
|||
HttpServletResponse response = (HttpServletResponse) objects[1];
|
||||
AbstractSpan span = ContextManager.activeSpan();
|
||||
if (IS_SERVLET_GET_STATUS_METHOD_EXIST) {
|
||||
Tags.STATUS_CODE.set(span, String.valueOf(response.getStatus()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, response.getStatus());
|
||||
}
|
||||
|
||||
ContextManager.stopSpan();
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ public class HandleRequestInterceptor implements InstanceMethodsAroundIntercepto
|
|||
|
||||
if (exchange.getStatusCode() >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, String.valueOf(exchange.getStatusCode()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, exchange.getStatusCode());
|
||||
}
|
||||
|
||||
ContextManager.stopSpan(span);
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public class SenderSendInterceptor implements InstanceMethodsAroundInterceptor {
|
|||
if (response == null || response.getStatus() >= 400) {
|
||||
span.errorOccurred();
|
||||
if (response != null)
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(response.getStatus()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, response.getStatus());
|
||||
}
|
||||
ContextManager.stopSpan();
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ public class ActionMethodInterceptor implements InstanceMethodsAroundInterceptor
|
|||
AbstractSpan span = ContextManager.activeSpan();
|
||||
if (response.getStatus() >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(response.getStatus()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, response.getStatus());
|
||||
}
|
||||
ContextManager.stopSpan();
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ public class RealCallInterceptor implements InstanceMethodsAroundInterceptor, In
|
|||
AbstractSpan span = ContextManager.activeSpan();
|
||||
if (statusCode >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ public class TracingFilter extends Filter {
|
|||
CompletionStage<Result> stage = next.apply(request).thenApply(result -> {
|
||||
if (result.status() >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(result.status()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, result.status());
|
||||
}
|
||||
try {
|
||||
span.asyncFinish();
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ public class SynchronousDispatcherInterceptor implements InstanceMethodsAroundIn
|
|||
AbstractSpan span = ContextManager.activeSpan();
|
||||
if (response.getStatus() >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(response.getStatus()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, response.getStatus());
|
||||
}
|
||||
ContextManager.stopSpan();
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ public class ProducerOperationHandlerInterceptor implements InstanceMethodsAroun
|
|||
int statusCode = invocation.getStatus().getStatusCode();
|
||||
if (statusCode >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
ContextManager.stopSpan();
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public class TransportClientHandlerInterceptor implements InstanceMethodsAroundI
|
|||
int statusCode = invocation.getStatus().getStatusCode();
|
||||
if (statusCode >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
ContextManager.stopSpan();
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ public class ProducerOperationHandlerInterceptor implements InstanceMethodsAroun
|
|||
int statusCode = invocation.getStatus().getStatusCode();
|
||||
if (statusCode >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
ContextManager.stopSpan();
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public class TransportClientHandlerInterceptor implements InstanceMethodsAroundI
|
|||
int statusCode = invocation.getStatus().getStatusCode();
|
||||
if (statusCode >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
ContextManager.stopSpan();
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ public class InvokeInterceptor implements InstanceMethodsAroundInterceptorV2 {
|
|||
HttpStatus httpStatus = exchange.getResponse().getStatusCode();
|
||||
if (httpStatus != null && httpStatus.isError()) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(httpStatus.value()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, httpStatus.value());
|
||||
}
|
||||
span.asyncFinish();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@ public abstract class AbstractMethodInterceptor implements InstanceMethodsAround
|
|||
|
||||
if (statusCode != null && statusCode >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
|
||||
runtimeContext.remove(REACTIVE_ASYNC_SPAN_IN_RUNTIME_CONTEXT);
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public class RestResponseInterceptor implements InstanceMethodsAroundInterceptor
|
|||
AbstractSpan span = ContextManager.activeSpan();
|
||||
if (statusCode >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(statusCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, statusCode);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ public class WebFluxWebClientInterceptor implements InstanceMethodsAroundInterce
|
|||
return ret1.doOnSuccess(clientResponse -> {
|
||||
HttpStatus httpStatus = clientResponse.statusCode();
|
||||
if (httpStatus != null) {
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(httpStatus.value()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, httpStatus.value());
|
||||
if (httpStatus.isError()) {
|
||||
span.errorOccurred();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public class Struts2Interceptor implements InstanceMethodsAroundInterceptor {
|
|||
AbstractSpan span = ContextManager.activeSpan();
|
||||
if (IS_SERVLET_GET_STATUS_METHOD_EXIST && response.getStatus() >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(response.getStatus()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, response.getStatus());
|
||||
}
|
||||
ContextManager.stopSpan();
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ public class TomcatInvokeInterceptor implements InstanceMethodsAroundInterceptor
|
|||
AbstractSpan span = ContextManager.activeSpan();
|
||||
if (IS_SERVLET_GET_STATUS_METHOD_EXIST && response.getStatus() >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(response.getStatus()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, response.getStatus());
|
||||
}
|
||||
// Active HTTP parameter collection automatically in the profiling context.
|
||||
if (!TomcatPluginConfig.Plugin.Tomcat.COLLECT_HTTP_PARAMS && span.isProfiling()) {
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public class TracingHandler implements HttpHandler {
|
|||
nextListener.proceed();
|
||||
if (httpServerExchange.getStatusCode() >= 400) {
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(httpServerExchange.getStatusCode()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, httpServerExchange.getStatusCode());
|
||||
}
|
||||
span.asyncFinish();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public class HttpClientRequestImplHandleResponseInterceptor implements InstanceM
|
|||
HttpClientRequestContext requestContext = (HttpClientRequestContext) objInst.getSkyWalkingDynamicField();
|
||||
if (!requestContext.usingWebClient) {
|
||||
VertxContext context = requestContext.vertxContext;
|
||||
Tags.STATUS_CODE.set(context.getSpan(), Integer.toString(((HttpClientResponse) allArguments[0]).statusCode()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(context.getSpan(), ((HttpClientResponse) allArguments[0]).statusCode());
|
||||
context.getSpan().asyncFinish();
|
||||
|
||||
AbstractSpan span = ContextManager.createLocalSpan("#" + context.getSpan().getOperationName());
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class HttpContextHandleDispatchResponseInterceptor implements InstanceMet
|
|||
HttpClientRequest clientRequest = httpContext.clientRequest();
|
||||
VertxContext context = ((HttpClientRequestContext) ((EnhancedInstance) clientRequest)
|
||||
.getSkyWalkingDynamicField()).vertxContext;
|
||||
Tags.STATUS_CODE.set(context.getSpan(), Integer.toString(httpContext.clientResponse().statusCode()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(context.getSpan(), httpContext.clientResponse().statusCode());
|
||||
context.getSpan().asyncFinish();
|
||||
|
||||
AbstractSpan span = ContextManager.createLocalSpan("#" + context.getSpan().getOperationName());
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class HttpServerResponseImplInterceptor implements InstanceMethodsAroundI
|
|||
if ((VertxContext.VERTX_VERSION < 36 && allArguments[0] instanceof ByteBuf)
|
||||
|| ((VertxContext.VERTX_VERSION >= 36 && VertxContext.VERTX_VERSION <= 37) || allArguments.length == 2)) {
|
||||
VertxContext context = (VertxContext) objInst.getSkyWalkingDynamicField();
|
||||
Tags.STATUS_CODE.set(context.getSpan(), Integer.toString(((HttpServerResponse) objInst).getStatusCode()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(context.getSpan(), ((HttpServerResponse) objInst).getStatusCode());
|
||||
context.getSpan().asyncFinish();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ public class HttpClientParseHttpInterceptor implements InstanceMethodsAroundInte
|
|||
if (responseCode >= 400) {
|
||||
AbstractSpan span = ContextManager.activeSpan();
|
||||
span.errorOccurred();
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(responseCode));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, responseCode);
|
||||
}
|
||||
ContextManager.stopSpan();
|
||||
return ret;
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ public class HttpClientRequestInterceptor implements InstanceMethodsAroundInterc
|
|||
} else if (httpClientResponse.status().code() > 400) {
|
||||
abstractSpan.errorOccurred();
|
||||
}
|
||||
Tags.STATUS_CODE.set(abstractSpan, String.valueOf(httpClientResponse.status().code()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(abstractSpan, httpClientResponse.status().code());
|
||||
abstractSpan.asyncFinish();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ public class HttpClientFinalizerResponseConnectionInterceptor implements Instanc
|
|||
if (response.status().code() >= 400) {
|
||||
cache.getSpan().errorOccurred();
|
||||
}
|
||||
Tags.STATUS_CODE.set(cache.getSpan(), String.valueOf(response.status().code()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(cache.getSpan(), response.status().code());
|
||||
cache.getSpan().asyncFinish();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public class HttpClientFinalizerResponseConnectionInterceptor implements Instanc
|
|||
if (response.status().code() >= HttpResponseStatus.BAD_REQUEST.code()) {
|
||||
cache.getSpan().errorOccurred();
|
||||
}
|
||||
Tags.STATUS_CODE.set(cache.getSpan(), String.valueOf(response.status().code()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(cache.getSpan(), response.status().code());
|
||||
cache.getSpan().asyncFinish();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public class DispatcherHandlerHandleMethodInterceptor implements InstanceMethods
|
|||
}
|
||||
|
||||
AbstractSpan span = ContextManager.createEntrySpan(exchange.getRequest().getURI().getPath(), carrier);
|
||||
|
||||
|
||||
if (instance != null && instance.getSkyWalkingDynamicField() != null) {
|
||||
ContextManager.continued((ContextSnapshot) instance.getSkyWalkingDynamicField());
|
||||
}
|
||||
|
|
@ -76,7 +76,7 @@ public class DispatcherHandlerHandleMethodInterceptor implements InstanceMethods
|
|||
|
||||
exchange.getAttributes().put("SKYWALING_SPAN", span);
|
||||
}
|
||||
|
||||
|
||||
private void maybeSetPattern(AbstractSpan span, ServerWebExchange exchange) {
|
||||
if (span != null) {
|
||||
PathPattern pathPattern = exchange.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
|
||||
|
|
@ -95,17 +95,17 @@ public class DispatcherHandlerHandleMethodInterceptor implements InstanceMethods
|
|||
ServerWebExchange exchange = (ServerWebExchange) allArguments[0];
|
||||
|
||||
AbstractSpan span = (AbstractSpan) exchange.getAttributes().get("SKYWALING_SPAN");
|
||||
|
||||
|
||||
return ((Mono) ret).doFinally(s -> {
|
||||
|
||||
if (span != null) {
|
||||
maybeSetPattern(span, exchange);
|
||||
try {
|
||||
|
||||
|
||||
HttpStatus httpStatus = exchange.getResponse().getStatusCode();
|
||||
// fix webflux-2.0.0-2.1.0 version have bug. httpStatus is null. not support
|
||||
if (httpStatus != null) {
|
||||
Tags.STATUS_CODE.set(span, Integer.toString(httpStatus.value()));
|
||||
Tags.HTTP_RESPONSE_STATUS_CODE.set(span, httpStatus.value());
|
||||
if (httpStatus.isError()) {
|
||||
span.errorOccurred();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ Using the Aggregation Function, the requests will be grouped by time and **Group
|
|||
| endpoint | The endpoint path of each request. | | string |
|
||||
| latency | The time taken by each request. | | int(in ms) |
|
||||
| status | The success or failure of the request. | | bool(true for success) |
|
||||
| responseCode | The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| ~~responseCode~~ | Deprecated.The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| httpResponseStatusCode | The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| rpcStatusCode | The string value of the rpc response code. | | string |
|
||||
| type | The type of each request, such as Database, HTTP, RPC, or gRPC. | | enum |
|
||||
| tags | The labels of each request. Each value is made up by `TagKey:TagValue` in the segment. | | `List<String>` |
|
||||
|
||||
|
|
@ -26,7 +28,9 @@ This calculates the metrics data from each request of the service.
|
|||
| endpointName | The name of the endpoint, such as a full path of HTTP URI. | | string |
|
||||
| latency | The time taken by each request. | | int |
|
||||
| status | Indicates the success or failure of the request. | | bool(true for success) |
|
||||
| responseCode | The response code of the HTTP response, if this request is an HTTP call. | | int|
|
||||
| ~~responseCode~~ | Deprecated.The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| httpResponseStatusCode | The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| rpcStatusCode | The string value of the rpc response code. | | string |
|
||||
| type | The type of each request. Such as: Database, HTTP, RPC, gRPC. | | enum |
|
||||
| tags | The labels of each request. Each value is made up by `TagKey:TagValue` in the segment. | | `List<String>` |
|
||||
| sideCar.internalErrorCode | The sidecar/gateway proxy internal error code. The value is based on the implementation. | | string|
|
||||
|
|
@ -45,7 +49,9 @@ This calculates the metrics data from each request of the service instance.
|
|||
| endpointName | The name of the endpoint, such as a full path of the HTTP URI. | | string|
|
||||
| latency | The time taken by each request. | | int |
|
||||
| status | Indicates the success or failure of the request. | | bool(true for success) |
|
||||
| responseCode | The response code of HTTP response, if this request is an HTTP call. | | int |
|
||||
| ~~responseCode~~ | Deprecated.The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| httpResponseStatusCode | The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| rpcStatusCode | The string value of the rpc response code. | | string |
|
||||
| type | The type of each request, such as Database, HTTP, RPC, or gRPC. | | enum |
|
||||
| tags | The labels of each request. Each value is made up by `TagKey:TagValue` in the segment. | | `List<String>` |
|
||||
| sideCar.internalErrorCode | The sidecar/gateway proxy internal error code. The value is based on the implementation. | | string|
|
||||
|
|
@ -134,7 +140,9 @@ This calculates the metrics data from each request of the endpoint in the servic
|
|||
| serviceInstanceName | The name of the service instance ID. | | string |
|
||||
| latency | The time taken by each request. | | int |
|
||||
| status | Indicates the success or failure of the request.| | bool(true for success) |
|
||||
| responseCode | The response code of HTTP response, if this request is an HTTP call. | | int |
|
||||
| ~~responseCode~~ | Deprecated.The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| httpResponseStatusCode | The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| rpcStatusCode | The string value of the rpc response code. | | string |
|
||||
| type | The type of each request, such as Database, HTTP, RPC, or gRPC. | | enum |
|
||||
| tags | The labels of each request. Each value is made up by `TagKey:TagValue` in the segment. | | `List<String>` |
|
||||
| sideCar.internalErrorCode | The sidecar/gateway proxy internal error code. The value is based on the implementation. | | string|
|
||||
|
|
@ -157,7 +165,9 @@ This calculates the metrics data from each request between services.
|
|||
| componentId | The ID of component used in this call. | yes | string
|
||||
| latency | The time taken by each request. | | int |
|
||||
| status | Indicates the success or failure of the request.| | bool(true for success) |
|
||||
| responseCode | The response code of HTTP response, if this request is an HTTP call. | | int |
|
||||
| ~~responseCode~~ | Deprecated.The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| httpResponseStatusCode | The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| rpcStatusCode | The string value of the rpc response code. | | string |
|
||||
| type | The type of each request, such as Database, HTTP, RPC, or gRPC. | | enum |
|
||||
| detectPoint | Where the relation is detected. The value may be client, server, or proxy. | yes | enum|
|
||||
| tlsMode | The TLS mode between source and destination services, such as `service_relation_mtls_cpm = from(ServiceRelation.*).filter(tlsMode == "mTLS").cpm()` || string|
|
||||
|
|
@ -181,7 +191,9 @@ This calculates the metrics data from each request between service instances.
|
|||
| componentId | The ID of the component used in this call. | yes | string
|
||||
| latency | The time taken by each request. | | int |
|
||||
| status | Indicates the success or failure of the request.| | bool(true for success) |
|
||||
| responseCode | The response code of the HTTP response, if this request is an HTTP call. | | int |
|
||||
| ~~responseCode~~ | Deprecated.The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| httpResponseStatusCode | The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| rpcStatusCode | The string value of the rpc response code. | | string |
|
||||
| type | The type of each request, such as Database, HTTP, RPC, or gRPC. | | enum |
|
||||
| detectPoint | Where the relation is detected. The value may be client, server, or proxy. | yes | enum|
|
||||
| tlsMode | The TLS mode between source and destination service instances, such as `service_instance_relation_mtls_cpm = from(ServiceInstanceRelation.*).filter(tlsMode == "mTLS").cpm()` || string|
|
||||
|
|
@ -208,7 +220,9 @@ including auto instrument agents (like Java and .NET), OpenCensus SkyWalking exp
|
|||
| rpcLatency | The latency of the RPC between the parent endpoint and childEndpoint, excluding the latency caused by the parent endpoint itself.
|
||||
| componentId | The ID of the component used in this call. | yes | string
|
||||
| status | Indicates the success or failure of the request.| | bool(true for success) |
|
||||
| responseCode | The response code of the HTTP response, if this request is an HTTP call. | | int |
|
||||
| ~~responseCode~~ | Deprecated.The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| httpResponseStatusCode | The response code of the HTTP response, and if this request is the HTTP call. E.g. 200, 404, 302| | int |
|
||||
| rpcStatusCode | The string value of the rpc response code. | | string |
|
||||
| type | The type of each request, such as Database, HTTP, RPC, or gRPC. | | enum |
|
||||
| detectPoint | Indicates where the relation is detected. The value may be client, server, or proxy. | yes | enum|
|
||||
|
||||
|
|
|
|||
|
|
@ -159,7 +159,7 @@ For extension of the component name/ID, please follow the [component library def
|
|||
### Special Span Tags
|
||||
All tags are available in the trace view. Meanwhile, in the OAP backend analysis, some special tags or tag combinations provide other advanced features.
|
||||
|
||||
#### Tag key `status_code`
|
||||
#### Tag key `http.status_code`
|
||||
The value should be an integer. The response code of OAL entities corresponds to this value.
|
||||
|
||||
#### Tag keys `db.statement` and `db.type`.
|
||||
|
|
|
|||
|
|
@ -22,8 +22,17 @@ package org.apache.skywalking.oap.server.analyzer.provider.trace.parser;
|
|||
* Reserved keys of the span. The backend analysis the metrics according the existed tags.
|
||||
*/
|
||||
public class SpanTags {
|
||||
public static final String HTTP_RESPONSE_STATUS_CODE = "http.status_code";
|
||||
/**
|
||||
* Deprecated. The old status_code tag, in order to be compatible with the old version of agent.
|
||||
* It should be replaced by {@link #HTTP_RESPONSE_STATUS_CODE} or using
|
||||
* {@link #RPC_RESPONSE_STATUS_CODE} if status code is related to a rpc call.
|
||||
*/
|
||||
@Deprecated
|
||||
public static final String STATUS_CODE = "status_code";
|
||||
|
||||
public static final String RPC_RESPONSE_STATUS_CODE = "rpc.status_code";
|
||||
|
||||
public static final String DB_STATEMENT = "db.statement";
|
||||
|
||||
public static final String DB_TYPE = "db.type";
|
||||
|
|
|
|||
|
|
@ -18,6 +18,8 @@
|
|||
|
||||
package org.apache.skywalking.oap.server.analyzer.provider.trace.parser.listener;
|
||||
|
||||
import static org.apache.skywalking.oap.server.analyzer.provider.trace.parser.SpanTags.LOGIC_ENDPOINT;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonObject;
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -49,8 +51,6 @@ import org.apache.skywalking.oap.server.core.source.ServiceInstanceRelation;
|
|||
import org.apache.skywalking.oap.server.core.source.SourceReceiver;
|
||||
import org.apache.skywalking.oap.server.library.module.ModuleManager;
|
||||
|
||||
import static org.apache.skywalking.oap.server.analyzer.provider.trace.parser.SpanTags.LOGIC_ENDPOINT;
|
||||
|
||||
/**
|
||||
* MultiScopesSpanListener includes the most segment to source(s) logic.
|
||||
*
|
||||
|
|
@ -239,13 +239,18 @@ public class MultiScopesAnalysisListener implements EntryAnalysisListener, ExitA
|
|||
sourceBuilder.setTimeBucket(TimeBucket.getMinuteTimeBucket(span.getStartTime()));
|
||||
sourceBuilder.setLatency((int) latency);
|
||||
sourceBuilder.setResponseCode(Const.NONE);
|
||||
sourceBuilder.setHttpResponseStatusCode(Const.NONE);
|
||||
span.getTagsList().forEach(tag -> {
|
||||
if (SpanTags.STATUS_CODE.equals(tag.getKey())) {
|
||||
final String tagKey = tag.getKey();
|
||||
if (SpanTags.STATUS_CODE.equals(tagKey) || SpanTags.HTTP_RESPONSE_STATUS_CODE.equals(tagKey)) {
|
||||
try {
|
||||
sourceBuilder.setResponseCode(Integer.parseInt(tag.getValue()));
|
||||
sourceBuilder.setHttpResponseStatusCode(Integer.parseInt(tag.getValue()));
|
||||
} catch (NumberFormatException e) {
|
||||
log.warn("span {} has illegal status code {}", span, tag.getValue());
|
||||
}
|
||||
} else if (SpanTags.RPC_RESPONSE_STATUS_CODE.equals(tagKey)) {
|
||||
sourceBuilder.setRpcStatusCode(tag.getValue());
|
||||
}
|
||||
sourceBuilder.setTag(tag);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -85,9 +85,16 @@ class SourceBuilder {
|
|||
private boolean status;
|
||||
@Getter
|
||||
@Setter
|
||||
@Deprecated
|
||||
private int responseCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private int httpResponseStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private String rpcStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private RequestType type;
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
@ -119,6 +126,8 @@ class SourceBuilder {
|
|||
all.setLatency(latency);
|
||||
all.setStatus(status);
|
||||
all.setResponseCode(responseCode);
|
||||
all.setHttpResponseStatusCode(httpResponseStatusCode);
|
||||
all.setRpcStatusCode(rpcStatusCode);
|
||||
all.setType(type);
|
||||
all.setTimeBucket(timeBucket);
|
||||
all.setTags(tags);
|
||||
|
|
@ -137,6 +146,8 @@ class SourceBuilder {
|
|||
service.setLatency(latency);
|
||||
service.setStatus(status);
|
||||
service.setResponseCode(responseCode);
|
||||
service.setHttpResponseStatusCode(httpResponseStatusCode);
|
||||
service.setRpcStatusCode(rpcStatusCode);
|
||||
service.setType(type);
|
||||
service.setTags(tags);
|
||||
service.setTimeBucket(timeBucket);
|
||||
|
|
@ -159,6 +170,8 @@ class SourceBuilder {
|
|||
serviceRelation.setLatency(latency);
|
||||
serviceRelation.setStatus(status);
|
||||
serviceRelation.setResponseCode(responseCode);
|
||||
serviceRelation.setHttpResponseStatusCode(httpResponseStatusCode);
|
||||
serviceRelation.setRpcStatusCode(rpcStatusCode);
|
||||
serviceRelation.setType(type);
|
||||
serviceRelation.setDetectPoint(detectPoint);
|
||||
serviceRelation.setTimeBucket(timeBucket);
|
||||
|
|
@ -178,6 +191,8 @@ class SourceBuilder {
|
|||
serviceInstance.setLatency(latency);
|
||||
serviceInstance.setStatus(status);
|
||||
serviceInstance.setResponseCode(responseCode);
|
||||
serviceInstance.setHttpResponseStatusCode(httpResponseStatusCode);
|
||||
serviceInstance.setRpcStatusCode(rpcStatusCode);
|
||||
serviceInstance.setType(type);
|
||||
serviceInstance.setTags(tags);
|
||||
serviceInstance.setTimeBucket(timeBucket);
|
||||
|
|
@ -203,6 +218,8 @@ class SourceBuilder {
|
|||
serviceInstanceRelation.setLatency(latency);
|
||||
serviceInstanceRelation.setStatus(status);
|
||||
serviceInstanceRelation.setResponseCode(responseCode);
|
||||
serviceInstanceRelation.setHttpResponseStatusCode(httpResponseStatusCode);
|
||||
serviceInstanceRelation.setRpcStatusCode(rpcStatusCode);
|
||||
serviceInstanceRelation.setType(type);
|
||||
serviceInstanceRelation.setDetectPoint(detectPoint);
|
||||
serviceInstanceRelation.setTimeBucket(timeBucket);
|
||||
|
|
@ -221,6 +238,8 @@ class SourceBuilder {
|
|||
endpoint.setLatency(latency);
|
||||
endpoint.setStatus(status);
|
||||
endpoint.setResponseCode(responseCode);
|
||||
endpoint.setHttpResponseStatusCode(httpResponseStatusCode);
|
||||
endpoint.setRpcStatusCode(rpcStatusCode);
|
||||
endpoint.setType(type);
|
||||
endpoint.setTags(tags);
|
||||
endpoint.setTimeBucket(timeBucket);
|
||||
|
|
@ -252,6 +271,8 @@ class SourceBuilder {
|
|||
endpointRelation.setRpcLatency(latency);
|
||||
endpointRelation.setStatus(status);
|
||||
endpointRelation.setResponseCode(responseCode);
|
||||
endpointRelation.setHttpResponseStatusCode(httpResponseStatusCode);
|
||||
endpointRelation.setRpcStatusCode(rpcStatusCode);
|
||||
endpointRelation.setType(type);
|
||||
endpointRelation.setDetectPoint(detectPoint);
|
||||
endpointRelation.setTimeBucket(timeBucket);
|
||||
|
|
|
|||
|
|
@ -53,9 +53,16 @@ public class All extends Source {
|
|||
private boolean status;
|
||||
@Getter
|
||||
@Setter
|
||||
@Deprecated
|
||||
private int responseCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private int httpResponseStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private String rpcStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private RequestType type;
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
|
|||
|
|
@ -72,9 +72,16 @@ public class Endpoint extends Source {
|
|||
private boolean status;
|
||||
@Getter
|
||||
@Setter
|
||||
@Deprecated
|
||||
private int responseCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private int httpResponseStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private String rpcStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private RequestType type;
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
|
|||
|
|
@ -83,9 +83,16 @@ public class EndpointRelation extends Source {
|
|||
private boolean status;
|
||||
@Getter
|
||||
@Setter
|
||||
@Deprecated
|
||||
private int responseCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private int httpResponseStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private String rpcStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private RequestType type;
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
|
|||
|
|
@ -67,9 +67,16 @@ public class Service extends Source {
|
|||
private boolean status;
|
||||
@Getter
|
||||
@Setter
|
||||
@Deprecated
|
||||
private int responseCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private int httpResponseStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private String rpcStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private RequestType type;
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
|
|||
|
|
@ -70,9 +70,16 @@ public class ServiceInstance extends Source {
|
|||
private boolean status;
|
||||
@Getter
|
||||
@Setter
|
||||
@Deprecated
|
||||
private int responseCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private int httpResponseStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private String rpcStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private RequestType type;
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
|
|||
|
|
@ -92,9 +92,16 @@ public class ServiceInstanceRelation extends Source {
|
|||
private boolean status;
|
||||
@Getter
|
||||
@Setter
|
||||
@Deprecated
|
||||
private int responseCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private int httpResponseStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private String rpcStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private RequestType type;
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
|
|||
|
|
@ -86,9 +86,16 @@ public class ServiceRelation extends Source {
|
|||
private boolean status;
|
||||
@Getter
|
||||
@Setter
|
||||
@Deprecated
|
||||
private int responseCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private int httpResponseStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private String rpcStatusCode;
|
||||
@Getter
|
||||
@Setter
|
||||
private RequestType type;
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
|
|||
|
|
@ -64,8 +64,8 @@ class ServiceAMock {
|
|||
span.setOperationName(REST_ENDPOINT);
|
||||
span.setIsError(false);
|
||||
span.addTags(KeyStringValuePair.newBuilder().setKey("http.method").setValue("get").build());
|
||||
span.addTags(KeyStringValuePair.newBuilder().setKey("status_code").setValue("404").build());
|
||||
span.addTags(KeyStringValuePair.newBuilder().setKey("status_code").setValue("200").build());
|
||||
span.addTags(KeyStringValuePair.newBuilder().setKey("http.status_code").setValue("404").build());
|
||||
span.addTags(KeyStringValuePair.newBuilder().setKey("http.status_code").setValue("200").build());
|
||||
return span;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -134,10 +134,15 @@ public class MultiScopesAnalysisListenerTest {
|
|||
.setSpanType(SpanType.Entry)
|
||||
.addTags(
|
||||
KeyStringValuePair.newBuilder()
|
||||
.setKey(SpanTags.STATUS_CODE)
|
||||
.setKey(SpanTags.HTTP_RESPONSE_STATUS_CODE)
|
||||
.setValue("500")
|
||||
.build()
|
||||
)
|
||||
.addTags(
|
||||
KeyStringValuePair.newBuilder()
|
||||
.setKey(SpanTags.RPC_RESPONSE_STATUS_CODE)
|
||||
.setValue("OK")
|
||||
.build())
|
||||
.build();
|
||||
final SegmentObject segment = SegmentObject.newBuilder()
|
||||
.setService("mock-service")
|
||||
|
|
@ -158,6 +163,8 @@ public class MultiScopesAnalysisListenerTest {
|
|||
final EndpointRelation endpointRelation = (EndpointRelation) receivedSources.get(6);
|
||||
Assert.assertEquals("mock-service", service.getName());
|
||||
Assert.assertEquals(500, service.getResponseCode());
|
||||
Assert.assertEquals(500, service.getHttpResponseStatusCode());
|
||||
Assert.assertEquals("OK", service.getRpcStatusCode());
|
||||
Assert.assertFalse(service.isStatus());
|
||||
Assert.assertEquals("mock-instance", serviceInstance.getName());
|
||||
Assert.assertEquals("/springMVC", endpoint.getName());
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: 'http://localhost:8080/asynchttpclient/back'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- operationName: /asynchttpclient/case
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
|
|
|
|||
|
|
@ -213,7 +213,7 @@ segmentItems:
|
|||
peer: ''
|
||||
skipAnalysis: false
|
||||
tags:
|
||||
- {key: status_code, value: OK}
|
||||
- {key: rpc.status_code, value: OK}
|
||||
- operationName: Greeter.sayHello/server/Request/onComplete
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/provider/b/testcase'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
|
|
@ -74,7 +74,7 @@ segmentItems:
|
|||
peer: 'localhost:18070'
|
||||
tags:
|
||||
- {key: url, value: not null}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: SpringCloudGateway/RoutingFilter
|
||||
operationId: 0
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/provider/b/testcase'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
|
|
@ -74,7 +74,7 @@ segmentItems:
|
|||
peer: 'localhost:18070'
|
||||
tags:
|
||||
- {key: url, value: not null}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: SpringCloudGateway/RoutingFilter
|
||||
operationId: 0
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/provider/b/testcase'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
skipAnalysis: 'false'
|
||||
- segmentId: not null
|
||||
spans:
|
||||
|
|
@ -74,7 +74,7 @@ segmentItems:
|
|||
peer: 'localhost:18070'
|
||||
tags:
|
||||
- {key: url, value: not null}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: SpringCloudGateway/RoutingFilter
|
||||
operationId: 0
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ segmentItems:
|
|||
spanType: Local
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: status_code, value: OK}
|
||||
- {key: rpc.status_code, value: OK}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: GreeterBlocking.sayHello/server/Request/onComplete
|
||||
operationId: 0
|
||||
|
|
@ -231,7 +231,7 @@ segmentItems:
|
|||
spanType: Local
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: status_code, value: OK}
|
||||
- {key: rpc.status_code, value: OK}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: Greeter.sayHello/server/Request/onComplete
|
||||
operationId: 0
|
||||
|
|
@ -317,7 +317,7 @@ segmentItems:
|
|||
spanType: Local
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: status_code, value: UNKNOWN}
|
||||
- {key: rpc.status_code, value: UNKNOWN}
|
||||
logs:
|
||||
- logEvent:
|
||||
- {key: event, value: error}
|
||||
|
|
@ -370,7 +370,7 @@ segmentItems:
|
|||
spanType: Local
|
||||
peer: ''
|
||||
tags:
|
||||
- {key: status_code, value: UNKNOWN}
|
||||
- {key: rpc.status_code, value: UNKNOWN}
|
||||
logs:
|
||||
- logEvent:
|
||||
- {key: event, value: error}
|
||||
|
|
@ -428,7 +428,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:8080/grpc-scenario/case/grpc-scenario'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '500'}
|
||||
- {key: http.status_code, value: '500'}
|
||||
logs:
|
||||
- logEvent:
|
||||
- {key: event, value: error}
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ segmentItems:
|
|||
value: 'http://localhost:8080/jsonrpc4j-1.x-scenario/path/to/demo-service',
|
||||
}
|
||||
- { key: jsonrpc.method, value: sayHello }
|
||||
- { key: status_code, value: '200' }
|
||||
- { key: http.status_code, value: '200' }
|
||||
refs:
|
||||
- {
|
||||
parentEndpoint: /jsonrpc4j-1.x-scenario/case/json-rpc,
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: not null}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '500'}
|
||||
- {key: http.status_code, value: '500'}
|
||||
logs:
|
||||
- logEvent:
|
||||
- {key: event, value: error}
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: not null}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '500'}
|
||||
- {key: http.status_code, value: '500'}
|
||||
logs:
|
||||
- logEvent:
|
||||
- {key: event, value: error}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: HEAD}
|
||||
- {key: url, value: '/vertx-eventbus-3-scenario/case/healthCheck'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: local-message-receiver
|
||||
|
|
@ -97,7 +97,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-eventbus-3-scenario/case/executeTest'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- operationName: org.apache.skywalking.apm.testcase.vertxeventbus.controller.VertxEventbusController$$Lambda$.handle(RoutingContext)
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
|
|
@ -125,7 +125,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-eventbus-3-scenario/case/eventbus-case'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '#/vertx-eventbus-3-scenario/case/executeTest'
|
||||
|
|
@ -207,7 +207,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-eventbus-3-scenario/case/executeTest'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: '{GET}/vertx-eventbus-3-scenario/case/eventbus-case', networkAddress: 'localhost:8080',
|
||||
refType: CrossProcess, parentSpanId: 2, parentTraceSegmentId: not null,
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: HEAD}
|
||||
- {key: url, value: '/vertx-web-3_54minus-scenario/case/healthCheck'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '/vertx-web-3_54minus-scenario/dynamicEndpoint/100'
|
||||
|
|
@ -64,7 +64,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-web-3_54minus-scenario/dynamicEndpoint/100'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- operationName: '/vertx-web-3_54minus-scenario/case/healthCheck'
|
||||
operationId: 0
|
||||
parentSpanId: 1
|
||||
|
|
@ -80,7 +80,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: HEAD}
|
||||
- {key: url, value: '/vertx-web-3_54minus-scenario/case/healthCheck'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- operationName: org.apache.skywalking.apm.testcase.vertxweb.controller.VertxWebController$$Lambda$.handle(RoutingContext)
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
|
|
@ -108,7 +108,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-web-3_54minus-scenario/case/web-case'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: org.apache.skywalking.apm.testcase.vertxweb.controller.VertxWebController$$Lambda$.handle(RoutingContext)
|
||||
|
|
@ -138,7 +138,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: HEAD}
|
||||
- {key: url, value: '/vertx-web-3_54minus-scenario/case/healthCheck'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: '{GET}/vertx-web-3_54minus-scenario/case/web-case', networkAddress: 'localhost:8080',
|
||||
refType: CrossProcess, parentSpanId: 3, parentTraceSegmentId: not null,
|
||||
|
|
@ -173,7 +173,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-web-3_54minus-scenario/dynamicEndpoint/100'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: '{GET}/vertx-web-3_54minus-scenario/case/web-case', networkAddress: 'localhost:8080',
|
||||
refType: CrossProcess, parentSpanId: 2, parentTraceSegmentId: not null,
|
||||
|
|
@ -208,7 +208,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-web-3_54minus-scenario/case/web-case/withBodyHandler'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: '#/vertx-web-3_54minus-scenario/case/healthCheck', networkAddress: 'localhost:8080',
|
||||
refType: CrossProcess, parentSpanId: 1, parentTraceSegmentId: not null,
|
||||
|
|
@ -269,7 +269,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-web-3_54minus-scenario/case/web-case/withBodyHandler'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- operationName: '#/vertx-web-3_54minus-scenario/case/healthCheck'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: HEAD}
|
||||
- {key: url, value: '/vertx-web-3_6plus-scenario/case/healthCheck'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: '/vertx-web-3_6plus-scenario/dynamicEndpoint/100'
|
||||
|
|
@ -64,7 +64,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-web-3_6plus-scenario/dynamicEndpoint/100'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- operationName: '/vertx-web-3_6plus-scenario/case/healthCheck'
|
||||
operationId: 0
|
||||
parentSpanId: 1
|
||||
|
|
@ -80,7 +80,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: HEAD}
|
||||
- {key: url, value: '/vertx-web-3_6plus-scenario/case/healthCheck'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- operationName: org.apache.skywalking.apm.testcase.vertxweb.controller.VertxWebController$$Lambda$.handle(RoutingContext)
|
||||
operationId: 0
|
||||
parentSpanId: 0
|
||||
|
|
@ -108,7 +108,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-web-3_6plus-scenario/case/web-case'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- segmentId: not null
|
||||
spans:
|
||||
- operationName: org.apache.skywalking.apm.testcase.vertxweb.controller.VertxWebController$$Lambda$.handle(RoutingContext)
|
||||
|
|
@ -138,7 +138,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: HEAD}
|
||||
- {key: url, value: '/vertx-web-3_6plus-scenario/case/healthCheck'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: '{GET}/vertx-web-3_6plus-scenario/case/web-case', networkAddress: 'localhost:8080',
|
||||
refType: CrossProcess, parentSpanId: 3, parentTraceSegmentId: not null,
|
||||
|
|
@ -173,7 +173,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-web-3_6plus-scenario/dynamicEndpoint/100'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: '{GET}/vertx-web-3_6plus-scenario/case/web-case', networkAddress: 'localhost:8080',
|
||||
refType: CrossProcess, parentSpanId: 2, parentTraceSegmentId: not null,
|
||||
|
|
@ -208,7 +208,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-web-3_6plus-scenario/case/web-case/withBodyHandler'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: '#/vertx-web-3_6plus-scenario/case/healthCheck', networkAddress: 'localhost:8080',
|
||||
refType: CrossProcess, parentSpanId: 1, parentTraceSegmentId: not null,
|
||||
|
|
@ -269,7 +269,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: http.method, value: GET}
|
||||
- {key: url, value: '/vertx-web-3_6plus-scenario/case/web-case/withBodyHandler'}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
- operationName: '#/vertx-web-3_6plus-scenario/case/healthCheck'
|
||||
operationId: 0
|
||||
parentSpanId: -1
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:18080/testcase/annotation/success'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: /projectA/testcase, networkAddress: 'localhost:18080', refType: CrossProcess,
|
||||
parentSpanId: 1, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
|
|
@ -55,7 +55,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:18080/testcase/annotation/error'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '500'}
|
||||
- {key: http.status_code, value: '500'}
|
||||
refs:
|
||||
- {parentEndpoint: /projectA/testcase, networkAddress: 'localhost:18080', refType: CrossProcess,
|
||||
parentSpanId: 2, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
|
|
@ -77,7 +77,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:18080/testcase/annotation/foo'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: /projectA/testcase, networkAddress: 'localhost:18080', refType: CrossProcess,
|
||||
parentSpanId: 3, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
|
|
@ -99,7 +99,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:18080/testcase/annotation/loo'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: /projectA/testcase, networkAddress: 'localhost:18080', refType: CrossProcess,
|
||||
parentSpanId: 4, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
|
|
@ -121,7 +121,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:18080/testcase/route/success'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: /projectA/testcase, networkAddress: 'localhost:18080', refType: CrossProcess,
|
||||
parentSpanId: 5, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
|
|
@ -143,7 +143,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:18080/testcase/route/error'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '500'}
|
||||
- {key: http.status_code, value: '500'}
|
||||
refs:
|
||||
- {parentEndpoint: /projectA/testcase, networkAddress: 'localhost:18080', refType: CrossProcess,
|
||||
parentSpanId: 6, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
|
|
@ -165,7 +165,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:18080/notFound'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '404'}
|
||||
- {key: http.status_code, value: '404'}
|
||||
refs:
|
||||
- {parentEndpoint: /projectA/testcase, networkAddress: 'localhost:18080', refType: CrossProcess,
|
||||
parentSpanId: 7, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
|
|
@ -187,7 +187,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:18080/testcase/annotation/mono/hello'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: /projectA/testcase, networkAddress: 'localhost:18080', refType: CrossProcess,
|
||||
parentSpanId: 8, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
|
|
@ -209,7 +209,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: 'http://localhost:18080/testcase/webclient/server'}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
refs:
|
||||
- {parentEndpoint: /projectA/testcase, networkAddress: 'localhost:18080', refType: CrossProcess,
|
||||
parentSpanId: 9, parentTraceSegmentId: not null, parentServiceInstance: not
|
||||
|
|
@ -249,7 +249,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: not null}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '500'}
|
||||
- {key: http.status_code, value: '500'}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /testcase/annotation/foo
|
||||
operationId: 0
|
||||
|
|
@ -310,7 +310,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: not null}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '500'}
|
||||
- {key: http.status_code, value: '500'}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /notFound
|
||||
operationId: 0
|
||||
|
|
@ -326,7 +326,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: not null}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value: '404'}
|
||||
- {key: http.status_code, value: '404'}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /testcase/annotation/mono/hello
|
||||
operationId: 0
|
||||
|
|
@ -357,7 +357,7 @@ segmentItems:
|
|||
tags:
|
||||
- {key: url, value: not null}
|
||||
- {key: http.method, value: GET}
|
||||
- {key: status_code, value:'200'}
|
||||
- {key: http.status_code, value: '200'}
|
||||
skipAnalysis: 'false'
|
||||
- operationName: /projectA/testcase
|
||||
operationId: 0
|
||||
|
|
|
|||
Loading…
Reference in New Issue