未验证 提交 573c3359 编写于 作者: D Darcy 提交者: GitHub

Fix Agent Plugin "asynchttpclient" not record the status code of the … (#6665)

上级 0dd9cc1e
......@@ -29,6 +29,7 @@ Release Notes.
* Fix bug that springmvn-annotation-4.x-plugin, witness class does not exist in some versions.
* Add Redis command parameters to 'db.statement' field on Lettuce span UI for displaying more info
* Fix NullPointerException with `ReactiveRequestHolder.getHeaders`.
* Fix bug that asynchttpclient plugin does not record the response status code
#### OAP-Backend
* Allow user-defined `JAVA_OPTS` in the startup script.
......
......@@ -22,6 +22,7 @@ import io.netty.handler.codec.http.HttpHeaders;
import java.net.InetSocketAddress;
import java.util.List;
import javax.net.ssl.SSLSession;
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.logging.api.ILog;
import org.apache.skywalking.apm.agent.core.logging.api.LogManager;
......@@ -40,7 +41,7 @@ public class AsyncHandlerWrapper implements AsyncHandler {
private final AsyncHandler userAsyncHandler;
private final AbstractSpan asyncSpan;
private static ILog LOGGER = LogManager.getLogger(AsyncHandlerWrapper.class);
private static final ILog LOGGER = LogManager.getLogger(AsyncHandlerWrapper.class);
public AsyncHandlerWrapper(AsyncHandler asyncHandler, AbstractSpan span) {
this.userAsyncHandler = asyncHandler == null ? new AsyncCompletionHandlerBase() : asyncHandler;
......@@ -49,6 +50,11 @@ 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));
if (statusCode >= 400) {
asyncSpan.errorOccurred();
}
return userAsyncHandler.onStatusReceived(httpResponseStatus);
}
......
......@@ -34,6 +34,7 @@ segmentItems:
tags:
- {key: http.method, value: GET}
- {key: url, value: 'http://localhost:8080/asynchttpclient/back'}
- {key: status_code, value: '200'}
- operationName: /asynchttpclient/case
operationId: 0
parentSpanId: -1
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册