in metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/publish/SlowInvocationLogger.java [158:204]
private void logSlowEdge(Invocation invocation, Response response, OperationConfig operationConfig) {
RestOperationMeta restOperationMeta = invocation.getOperationMeta().getExtData(RestConst.SWAGGER_REST_OPERATION);
InvocationStageTrace stageTrace = invocation.getInvocationStageTrace();
invocation.getTraceIdLogger().warn(LOGGER, ""
+ "slow({} ms) invocation, {}:\n"
+ " http method: {}\n"
+ " url : {}\n"
+ " server : {}\n"
+ " status code: {}\n"
+ " total : {} ms\n"
+ " prepare : {} ms\n"
+ " threadPoolQueue : {} ms\n"
+ " server filters request : {} ms\n"
+ " handlers request : {} ms\n"
+ " client filters request : {} ms\n"
+ " send request : {} ms\n"
+ " get connection : {} ms\n"
+ " write to buf : {} ms\n"
+ " wait response : {} ms\n"
+ " wake consumer : {} ms\n"
+ " client filters response: {} ms\n"
+ " handlers response : {} ms\n"
+ " server filters response: {} ms\n"
+ " send response : {} ms",
operationConfig.getMsSlowInvocation(),
invocation.getInvocationQualifiedName(),
restOperationMeta.getHttpMethod(),
restOperationMeta.getAbsolutePath(),
collectTargetAddress(invocation),
response.getStatusCode(),
formatTime(stageTrace.calcTotalTime()),
formatTime(stageTrace.calcInvocationPrepareTime()),
formatTime(stageTrace.calcThreadPoolQueueTime()),
formatTime(stageTrace.calcServerFiltersRequestTime()),
formatTime(stageTrace.calcHandlersRequestTime()),
formatTime(stageTrace.calcClientFiltersRequestTime()),
formatTime(stageTrace.calcSendRequestTime()),
formatTime(stageTrace.calcGetConnectionTime()),
formatTime(stageTrace.calcWriteToBufferTime()),
formatTime(stageTrace.calcReceiveResponseTime()),
formatTime(stageTrace.calcWakeConsumer()),
formatTime(stageTrace.calcClientFiltersResponseTime()),
formatTime(stageTrace.calcHandlersResponseTime()),
formatTime(stageTrace.calcServerFiltersResponseTime()),
formatTime(stageTrace.calcSendResponseTime())
);
}