DNS 解析
許多 Envoy 組件會解析 DNS:不同的叢集類型(strict dns、logical dns);動態轉發代理系統(由叢集和篩選器組成);udp dns 篩選器 等。Envoy 使用 c-ares 作為第三方 DNS 解析函式庫。在 Apple 作業系統上,Envoy 額外透過 envoy.restart_features.use_apple_api_for_dns_lookups
執行階段功能,提供使用 Apple 特定 API 的解析。
Envoy 透過擴充功能提供 DNS 解析,並包含 3 個內建的擴充功能
c-ares: CaresDnsResolverConfig
Apple (僅限 iOS/macOS):AppleDnsResolverConfig
getaddrinfo: GetAddrInfoDnsResolverConfig
如需內建 DNS 型別設定的範例,請參閱 HTTP 篩選器設定文件。
基於 c-ares 的 DNS 解析器會發出以下統計數據,這些統計數據的根目錄在 dns.cares
統計樹中
名稱
類型
描述
resolve_total
計數
DNS 查詢的次數
pending_resolutions
測量
擱置中 DNS 查詢的次數
not_found
計數器
傳回 NXDOMAIN 或 NODATA 回應的 DNS 查詢次數
timeout
計數器
導致逾時的 DNS 查詢次數
get_addr_failure
計數器
DNS 查詢期間發生的一般失敗次數
基於 Apple 的 DNS 解析器會發出以下統計數據,這些統計數據的根目錄在 dns.apple
統計樹中
名稱
類型
描述
connection_failure
計數器
嘗試連線到 DNS 伺服器失敗的次數
get_addr_failure
計數器
呼叫 GetAddrInfo API 時發生的一般失敗次數
network_failure
計數器
因網路連線能力而失敗的次數
processing_failure
計數器
處理來自 DNS 伺服器資料時失敗的次數
socket_failure
計數器
嘗試取得連線到 DNS 伺服器之通訊端檔案描述符失敗的次數
timeout
計數器
導致逾時的查詢次數