wu-sheng commented on a change in pull request #5849:
URL: https://github.com/apache/skywalking/pull/5849#discussion_r524029956



##########
File path: 
oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/envoy/als/LogEntry2MetricsAdapter.java
##########
@@ -164,4 +169,52 @@ protected static String parseTLS(final TLSProperties 
properties) {
         return M_TLS;
     }
 
+    /**
+     * Refer to 
https://www.envoyproxy.io/docs/envoy/latest/api-v2/data/accesslog/v2/accesslog.proto#data-accesslog-v2-responseflags
+     *
+     * @param responseFlags in the ALS v2
+     * @return empty string if no internal error code, or literal string 
representing the code.
+     */
+    protected static String parseInternalErrorCode(final ResponseFlags 
responseFlags) {
+        if (responseFlags != null) {
+            if (responseFlags.getFailedLocalHealthcheck()) {
+                return "failed_local_healthcheck";
+            } else if (responseFlags.getNoHealthyUpstream()) {
+                return "no_healthy_upstream";
+            } else if (responseFlags.getUpstreamRequestTimeout()) {
+                return "upstream_request_timeout";
+            } else if (responseFlags.getLocalReset()) {
+                return "local_reset";
+            } else if (responseFlags.getUpstreamConnectionFailure()) {
+                return "upstream_connection_failure";
+            } else if (responseFlags.getUpstreamConnectionTermination()) {
+                return "upstream_connection_termination";
+            } else if (responseFlags.getUpstreamOverflow()) {
+                return "upstream_overflow";
+            } else if (responseFlags.getNoRouteFound()) {
+                return "no_route_found";
+            } else if (responseFlags.getDelayInjected()) {
+                return "delay_injected";
+            } else if (responseFlags.getFaultInjected()) {
+                return "fault_injected";
+            } else if (responseFlags.getRateLimited()) {
+                return "rate_limited";
+            } else if (responseFlags.getUnauthorizedDetails() != null) {
+                return "unauthorized_details";
+            } else if (responseFlags.getRateLimitServiceError()) {
+                return "rate_limit_service_error";
+            } else if (responseFlags.getDownstreamConnectionTermination()) {
+                return "downstream_connection_termination";
+            } else if (responseFlags.getUpstreamRetryLimitExceeded()) {
+                return "upstream_retry_limit_exceeded";
+            } else if (responseFlags.getStreamIdleTimeout()) {
+                return "stream_idle_timeout";
+            } else if (responseFlags.getInvalidEnvoyRequestHeaders()) {
+                return "invalid_envoy_request_headers";
+            } else if (responseFlags.getDownstreamProtocolError()) {
+                return "downstream_protocol_error";
+            }

Review comment:
       @lizan Does this kind of conversion make sense?  Is there any chance of 
having multiple error codes? Even if so, doesn't it matter or have priority?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to