Envoy 上游集群DNS解析
DNS解析
许多 Envoy 组件解析 DNS:不同的集群类型( 严格 dns、 逻辑 dns);动态转发代理系统(由集群和过滤器组成);udp dns 过滤器等。Envoy 使用c-ares作为第三方 DNS 解析库。envoy.restart_features.use_apple_api_for_dns_lookups
在 Apple 操作系统上,Envoy 还通过运行时功能使用 Apple 特定的 API 提供解决方案 。
DNS解析内置扩展
-
c-ares: CaresDnsResolverConfig
-
Apple(仅限 iOS/macOS):AppleDnsResolverConfig
-
getaddrinfo:GetAddrInfoDnsResolverConfig
DNS解析统计信息
基于c-ares的统计信息
Name |
Type |
Description |
---|---|---|
resolve_total |
Count |
DNS 查询数 |
pending_resolutions |
Gauge |
待处理的 DNS 查询数 |
not_found |
Counter |
返回 NXDOMAIN 或 NODATA 响应的 DNS 查询数 |
timeout |
Counter |
导致超时的 DNS 查询数 |
get_addr_failure |
Counter |
DNS 查询期间的一般故障数 |
基于Apple 的统计信息
Name |
Type |
Description |
---|---|---|
connection_failure |
Counter |
尝试连接 DNS 服务器失败的次数 |
get_addr_failure |
Counter |
调用 GetAddrInfo API 时的一般失败次数 |
network_failure |
Counter |
由于网络连接而导致的故障数 |
processing_failure |
Counter |
处理来自 DNS 服务器的数据时的失败次数 |
socket_failure |
Counter |
尝试获取到 DNS 服务器的套接字的文件描述符的失败次数 |
timeout |
Counter |
导致超时的查询数 |
参考文档
https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/dns_resolution
https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/dynamic_forward_proxy_filter#config-http-filters-dynamic-forward-proxy