首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >各种特使RESPONSE_FLAGS的原因是什么?

各种特使RESPONSE_FLAGS的原因是什么?
EN

Stack Overflow用户
提问于 2020-11-13 15:57:44
回答 1查看 3K关注 0票数 10

我试着调试一组服务,特使坐在中间。访问日志显示了大量503 s,它们的%RESPONSE_FLAGS%各不相同。除了访问日志记录文档,我找不到任何解释标志的实际含义。

NR的意思是“我向下游发送了404,但不是因为上游给我发送了一个,而是因为我没有匹配的路径,所以我、特使生成了404”。我想买一条这样的套餐给另一条。特别是我在挣扎(这些都出现在我们的日志里……)

  • UR vs UC --我认为这些是“我向下游发送了503,因为我连接了上游,但随后出现了一个问题”。什么问题?具体来说,remote resetconnection termination意味着什么?
  • LR connection local reset -这是什么意思?特使向下游派出503人,因为他们决定停止与上游、中途的对话?它为什么要这么做?
  • <no flag> --如果存在像404503这样的错误代码而没有RESPONSE_FLAGS,那么该代码是由上游发送并只是被转发的,这是正确的吗?
EN

回答 1

Stack Overflow用户

发布于 2021-06-07 05:48:02

从下面的源代码中,

  • 如果在流上接收到远程编解码器级别重置,则为UPSTREAM_REMOTE_RESET。
  • 如果由于连接终止而在本地重置流,则为UPSTREAM_CONNECTION_TERMINATION。
  • LR:如果在流上发送了本地编解码器级别重置
代码语言:javascript
运行
复制
/**
 * Stream reset reasons.
 */
enum class StreamResetReason {                                                                                                                                                                                                                                // If a local codec level reset was sent on the stream.
  LocalReset,
  // If a local codec level refused stream reset was sent on the stream (allowing for retry).
  LocalRefusedStreamReset,
  // If a remote codec level reset was received on the stream.
  RemoteReset,
  // If a remote codec level refused stream reset was received on the stream (allowing for retry).
  RemoteRefusedStreamReset,
  // If the stream was locally reset by a connection pool due to an initial connection failure.
  ConnectionFailure,
  // If the stream was locally reset due to connection termination.
  ConnectionTermination,
  // The stream was reset because of a resource overflow.
  Overflow,
  // Either there was an early TCP error for a CONNECT request or the peer reset with CONNECT_ERROR
  ConnectError,
  // Received payload did not conform to HTTP protocol.
  ProtocolError
};

StreamInfo::ResponseFlag
Filter::streamResetReasonToResponseFlag(Http::StreamResetReason reset_reason) {                                                                                                                                                                               switch (reset_reason) {
  case Http::StreamResetReason::ConnectionFailure:                                                                                                                                                                                                              return StreamInfo::ResponseFlag::UpstreamConnectionFailure;
  case Http::StreamResetReason::ConnectionTermination:
    return StreamInfo::ResponseFlag::UpstreamConnectionTermination;
  case Http::StreamResetReason::LocalReset:
  case Http::StreamResetReason::LocalRefusedStreamReset:
    return StreamInfo::ResponseFlag::LocalReset;
  case Http::StreamResetReason::Overflow:
    return StreamInfo::ResponseFlag::UpstreamOverflow;
  case Http::StreamResetReason::RemoteReset:
  case Http::StreamResetReason::RemoteRefusedStreamReset:
  case Http::StreamResetReason::ConnectError:
    return StreamInfo::ResponseFlag::UpstreamRemoteReset;
  case Http::StreamResetReason::ProtocolError:
    return StreamInfo::ResponseFlag::UpstreamProtocolError;
  }

  NOT_REACHED_GCOVR_EXCL_LINE;
}

/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* constexpr static absl::string_view NONE = "-";                                                                                                                                                                                                              constexpr static absl::string_view DOWNSTREAM_CONNECTION_TERMINATION = "DC";                                                                                                                                                                                constexpr static absl::string_view FAILED_LOCAL_HEALTH_CHECK = "LH";                                                                                                                                                                                        constexpr static absl::string_view NO_HEALTHY_UPSTREAM = "UH";                                                                                                                                                                                              constexpr static absl::string_view UPSTREAM_REQUEST_TIMEOUT = "UT";                                                                                                                                                                                         constexpr static absl::string_view LOCAL_RESET = "LR";                                                                                                                                                                                                      constexpr static absl::string_view UPSTREAM_REMOTE_RESET = "UR";                                                                                                                                                                                            constexpr static absl::string_view UPSTREAM_CONNECTION_FAILURE = "UF";                                                                                                                                                                                      constexpr static absl::string_view UPSTREAM_CONNECTION_TERMINATION = "UC";                                                                                                                                                                                  constexpr static absl::string_view UPSTREAM_OVERFLOW = "UO";                                                                                                                                                                                                constexpr static absl::string_view UPSTREAM_RETRY_LIMIT_EXCEEDED = "URX";                                                                                                                                                                                   constexpr static absl::string_view NO_ROUTE_FOUND = "NR";                                                                                                                                                                                                   constexpr static absl::string_view DELAY_INJECTED = "DI";                                                                                                                                                                                                   constexpr static absl::string_view FAULT_INJECTED = "FI";                                                                                                                                                                                                   constexpr static absl::string_view RATE_LIMITED = "RL";                                                                                                                                                                                                     constexpr static absl::string_view UNAUTHORIZED_EXTERNAL_SERVICE = "UAEX";                                                                                                                                                                                  constexpr static absl::string_view RATELIMIT_SERVICE_ERROR = "RLSE";                                                                                                                                                                                        constexpr static absl::string_view STREAM_IDLE_TIMEOUT = "SI";                                                                                                                                                                                              constexpr static absl::string_view INVALID_ENVOY_REQUEST_HEADERS = "IH";                                                                                                                                                                                    constexpr static absl::string_view DOWNSTREAM_PROTOCOL_ERROR = "DPE";                                                                                                                                                                                       constexpr static absl::string_view UPSTREAM_MAX_STREAM_DURATION_REACHED = "UMSDR";                                                                                                                                                                          constexpr static absl::string_view RESPONSE_FROM_CACHE_FILTER = "RFCF";                                                                                                                                                                                     constexpr static absl::string_view NO_FILTER_CONFIG_FOUND = "NFCF";                                                                                                                                                                                         constexpr static absl::string_view DURATION_TIMEOUT = "DT";                                                                                                                                                                                                 constexpr static absl::string_view UPSTREAM_PROTOCOL_ERROR = "UPE";                                                                                                                                                                                         constexpr static absl::string_view NO_CLUSTER_FOUND = "NC";                                                                                                                                                                                                                                                                                                                                                                                                                                                             static constexpr std::array ALL_RESPONSE_STRING_FLAGS{                                                                                                                                                                                                          FlagStringAndEnum{FAILED_LOCAL_HEALTH_CHECK, ResponseFlag::FailedLocalHealthCheck},                                                                                                                                                                         FlagStringAndEnum{NO_HEALTHY_UPSTREAM, ResponseFlag::NoHealthyUpstream},                                                                                                                                                                                    FlagStringAndEnum{UPSTREAM_REQUEST_TIMEOUT, ResponseFlag::UpstreamRequestTimeout},                                                                                                                                                                          FlagStringAndEnum{LOCAL_RESET, ResponseFlag::LocalReset},                                                                                                                                                                                                   FlagStringAndEnum{UPSTREAM_REMOTE_RESET, ResponseFlag::UpstreamRemoteReset},                                                                                                                                                                                FlagStringAndEnum{UPSTREAM_CONNECTION_FAILURE, ResponseFlag::UpstreamConnectionFailure},                                                                                                                                                                    FlagStringAndEnum{UPSTREAM_CONNECTION_TERMINATION,                                                                                                                                                                                                                            ResponseFlag::UpstreamConnectionTermination},                                                                                                                                                                                             FlagStringAndEnum{UPSTREAM_OVERFLOW, ResponseFlag::UpstreamOverflow},                                                                                                                                                                                       FlagStringAndEnum{NO_ROUTE_FOUND, ResponseFlag::NoRouteFound},                                                                                                                                                                                              FlagStringAndEnum{DELAY_INJECTED, ResponseFlag::DelayInjected},                                                                                                                                                                                             FlagStringAndEnum{FAULT_INJECTED, ResponseFlag::FaultInjected},                                                                                                                                                                                             FlagStringAndEnum{RATE_LIMITED, ResponseFlag::RateLimited},                                                                                                                                                                                                 FlagStringAndEnum{UNAUTHORIZED_EXTERNAL_SERVICE, ResponseFlag::UnauthorizedExternalService},                                                                                                                                                                FlagStringAndEnum{RATELIMIT_SERVICE_ERROR, ResponseFlag::RateLimitServiceError},                                                                                                                                                                            FlagStringAndEnum{DOWNSTREAM_CONNECTION_TERMINATION,                                                                                                                                                                                                                          ResponseFlag::DownstreamConnectionTermination},                                                                                                                                                                                           FlagStringAndEnum{UPSTREAM_RETRY_LIMIT_EXCEEDED, ResponseFlag::UpstreamRetryLimitExceeded},                                                                                                                                                                 FlagStringAndEnum{STREAM_IDLE_TIMEOUT, ResponseFlag::StreamIdleTimeout},                                                                                                                                                                                    FlagStringAndEnum{INVALID_ENVOY_REQUEST_HEADERS, ResponseFlag::InvalidEnvoyRequestHeaders},                                                                                                                                                                 FlagStringAndEnum{DOWNSTREAM_PROTOCOL_ERROR, ResponseFlag::DownstreamProtocolError},                                                                                                                                                                        FlagStringAndEnum{UPSTREAM_MAX_STREAM_DURATION_REACHED,                                                                                                                                                                                                                       ResponseFlag::UpstreamMaxStreamDurationReached},                                                                                                                                                                                          FlagStringAndEnum{RESPONSE_FROM_CACHE_FILTER, ResponseFlag::ResponseFromCacheFilter},                                                                                                                                                                       FlagStringAndEnum{NO_FILTER_CONFIG_FOUND, ResponseFlag::NoFilterConfigFound},                                                                                                                                                                               FlagStringAndEnum{DURATION_TIMEOUT, ResponseFlag::DurationTimeout},                                                                                                                                                                                         FlagStringAndEnum{UPSTREAM_PROTOCOL_ERROR, ResponseFlag::UpstreamProtocolError},                                                                                                                                                                            FlagStringAndEnum{NO_CLUSTER_FOUND, ResponseFlag::NoClusterFound},                                                                                                                                                                                      };
*/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64824023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档