|
19 | 19 | import java.util.HashMap; |
20 | 20 | import java.util.Map; |
21 | 21 |
|
| 22 | +import org.apache.servicecomb.core.Invocation; |
22 | 23 | import org.apache.servicecomb.foundation.metrics.publish.spectator.MeasurementNode; |
| 24 | +import org.apache.servicecomb.foundation.vertx.http.VertxServerRequestToHttpServletRequest; |
23 | 25 | import org.apache.servicecomb.metrics.core.meter.invocation.MeterInvocationConst; |
24 | 26 | import org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerf; |
25 | 27 | import org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroup; |
26 | 28 | import org.apache.servicecomb.metrics.core.publish.model.invocation.OperationPerfGroups; |
27 | 29 | import org.apache.servicecomb.metrics.core.publish.model.invocation.PerfInfo; |
| 30 | +import org.apache.servicecomb.swagger.invocation.Response; |
28 | 31 |
|
29 | 32 | import com.netflix.spectator.api.Statistic; |
30 | 33 |
|
| 34 | +import io.vertx.core.http.HttpServerResponse; |
| 35 | +import io.vertx.ext.web.RoutingContext; |
| 36 | + |
31 | 37 | public final class PublishUtils { |
| 38 | + public static final String EMPTY_RESULT = "-"; |
| 39 | + |
32 | 40 | private PublishUtils() { |
33 | 41 | } |
34 | 42 |
|
@@ -73,4 +81,18 @@ public static void addOperationPerfGroups(OperationPerfGroups operationPerfGroup |
73 | 81 | OperationPerf operationPerf = createOperationPerf(operation, statusNode); |
74 | 82 | group.addOperationPerf(operationPerf); |
75 | 83 | } |
| 84 | + |
| 85 | + public static String refactorStatus(Invocation invocation, Response response) { |
| 86 | + if (invocation.getRequestEx() instanceof VertxServerRequestToHttpServletRequest) { |
| 87 | + RoutingContext context = ((VertxServerRequestToHttpServletRequest) invocation.getRequestEx()).getContext(); |
| 88 | + if (context == null) { |
| 89 | + return String.valueOf(response.getStatusCode()); |
| 90 | + } |
| 91 | + HttpServerResponse contextResponse = context.response(); |
| 92 | + if (response.getStatusCode() == 200 && contextResponse.closed() && !contextResponse.ended()) { |
| 93 | + return EMPTY_RESULT; |
| 94 | + } |
| 95 | + } |
| 96 | + return String.valueOf(response.getStatusCode()); |
| 97 | + } |
76 | 98 | } |
0 commit comments