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