## 監聽器
Envoy配置頂層包含一個[監聽器](../Introduction/Architectureoverview/Listeners.md)列表。每個單獨的監聽器配置具有以下格式:
* [v1 API參考](../v1APIreference.md)
* [v2 API參考](../v2APIreference.md)
### 統計
#### 監聽器
每個監聽器都有一個以 `listener.<address>` 為根的統計樹。統計如下:
| 名稱 | 類型 | 描述 |
| ------------------------ | ------------------------ | ------------------------ |
| downstream_cx_total | Counter | 連接總數 |
| downstream_cx_destroy | Counter | 銷毀的連接總數 |
| downstream_cx_active | Gauge | 活動的連接總數 |
| downstream_cx_length_ms | Histogram | 連接時長,單位毫秒 |
| ssl.connection_error | Counter | 錯誤的TLS連接總數,不包括證書驗證失敗的 |
| ssl.handshake | Counter | TLS連接握手成功的總數 |
| ssl.session_reused | Counter | TLS會話恢復成功的總數 |
| ssl.no_certificate | Counter | 完全成功的TLS連接,沒有客戶端證書 |
| ssl.fail_no_sni_match | Counter | 由于缺少SNI匹配而被拒絕的TLS連接總數 |
| ssl.fail_verify_no_cert | Counter | 由于缺少客戶端證書而失敗的TLS連接總數 |
| ssl.fail_verify_error | Counter | CA驗證失敗的TLS連接總數 |
| ssl.fail_verify_san | Counter | SAN驗證失敗的TLS連接總數 |
| ssl.fail_verify_cert_hash | Counter | 證書鎖定驗證失敗的TLS連接總數 |
| ssl.cipher.<cipher> | Counter | 使用<cipher>的TLS連接總數 |
#### 監聽管理器
監聽器管理器的統計樹以`listener_manager`為根。用下面的統計。統計名稱中的字符被替換為_。
| 名稱 | 類型 | 描述 |
| ----------------------- | ----------------------- | ----------------------- |
| listener_added | Counter | 監聽器被添加的總數(通過靜態配置或LDS) |
| listener_modified | Counter | 監聽器被修改的總數(通過LDS) |
| listener_removed | Counter | 監聽器被刪除的總數(通過LDS) |
| listener_create_success | Counter | 監聽器對象添加到工作組成功的總數。 |
| listener_create_failure | Counter | 監聽器對象添加到工作組失敗的總數。 |
| total_listeners_warming | Gauge | 當前正在熱身的監聽器的數量 |
| total_listeners_active | Gauge | 當前活動的監聽器的數量 |
| total_listeners_draining | Gauge | 當前正在被引流的監聽器數量 |
### 運行時
監聽器支持以下運行時設置:
**ssl.alt_alpn**
有多少的百分比請求,使用配置的alt_alpn協議字符串。默認為0。
### 監聽器發現服務(LDS)
監聽器發現服務(LDS)是一個可選的API,Envoy將調用它來動態獲取監聽器。Envoy將協調API響應,并根據需要添加,修改或刪除已知的監聽器。
監聽器更新的語義如下:
- 每個監聽器必須有一個獨特的名字。如果沒有提供名稱,Envoy將創建一個UUID。要動態更新的監聽器,管理服務必須提供監聽器的唯一名稱。
- 當一個監聽器被添加,在參與連接處理之前,會先進入“預熱”階段。例如,如果監聽器引用RDS配置,那么在監聽器移動到“活動”之前,將會解析并提取該配置。
- 監聽器一旦創建,實際上就會保持不變。因此,更新監聽器時,會創建一個全新的監聽器(使用相同的偵聽套接字)。這個監聽者會通過上面所描述的,新增加的監聽者都有“預熱”過程。
- 當更新或刪除監聽器時,舊的監聽器將被置于“逐出”狀態,就像整個服務重新啟動時一樣。監聽器移除之后,該監聽器所擁有的連接,經過一段時間優雅地關閉(如果可能的話)剩余的連接。逐出時間通過`--drain-time-s`選項設置。
#### 配置
- [v1 LDS API](../v1APIreference/Listeners.md)
- [v2 LDS API](Overviewv2API.md)
#### 統計
LDS的統計樹是以`listener_manager.lds`為根,統計如下:
| 名稱 | 類型 | 描述 |
| ----------------------- | ----------------------- | ----------------------- |
| config_reload | Counter | 由于配置更新,導致配置API調用總數 |
| update_attempt | Counter | LDS配置API調用重試總數 |
| update_success | Counter | LDS配置API調用成功總數 |
| update_failure | Counter | LDS配置API調用失敗總數(網絡或模式錯誤) |
| version | Gauge | 上次成功調用的內容哈希值 |
## 返回
- [上一級](../Configurationreference.md)
- [首頁目錄](../README.md)
- 首頁
- 簡介
- Envoy是什么
- 架構介紹
- 術語
- 線程模型
- 監聽器
- L3/L4網絡過濾器
- HTTP連接管理
- HTTP過濾器
- HTTP路由
- gRPC
- WebSocket支持
- 集群管理
- 服務發現
- 健康檢查
- 連接池
- 負載均衡
- 異常檢測
- 熔斷
- 全局限速
- TLS
- 統計
- 運行時配置
- 跟蹤
- TCP代理
- 訪問日志
- MongoDB
- DynamoDB
- Redis
- 熱重啟
- 動態配置
- 初始化
- 逐出
- 腳本
- 部署
- 業界對比
- 獲得幫助
- 歷史版本
- 編譯安裝
- 編譯
- 參考配置
- 演示沙箱
- 前端代理
- Zipkin跟蹤
- Jaeger跟蹤
- gRPC橋接
- 構建Envoy Docker鏡像
- 工具
- 配置參考
- V1 API 概述
- V2 API 概述
- 監聽器
- 網絡過濾器
- TLS客戶端身份認證
- Echo
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP連接管理器
- 路由匹配
- 流量轉移/分流
- HTTP頭部操作
- HTTP頭部清理
- 統計
- 運行時設置
- 路由發現服務
- HTTP過濾器
- 緩存
- CORS過濾器
- 故障注入
- DynamoDB
- gRPC HTTP/1.1 橋接
- gRPC-JSON 轉碼過濾器
- gRPC-Web 過濾器
- 健康檢查
- 速率限制
- 路由
- Lua
- 集群管理
- 統計
- 運行時設置
- 集群發現服務
- 健康檢查
- 熔斷
- 訪問日志
- 限速服務
- 運行時配置
- 路由表檢查工具
- 運維管理
- 命令行選項
- 熱重啟
- 管理接口
- 統計概述
- 運行時配置
- 文件系統
- 自定義擴展示例
- V1 API參考
- 監聽器
- 網絡過濾器
- TLS客戶端身份認證
- Echo
- HTTP連接管理
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP路由配置
- 虛擬主機
- 路由
- 虛擬集群
- 速率限制配置
- 路由發現服務
- HTTP過濾器
- 緩存
- CORS過濾器
- DynamoDB
- 故障注入
- gRPC HTTP/1.1 橋接
- gRPC-JSON 轉碼過濾器
- gRPC-Web 過濾器
- 健康檢查
- Lua
- 速率限制
- 路由
- 集群管理
- 集群
- 健康檢查
- 熔斷
- TLS上下文
- 異常值檢測
- HASH環負載均衡配置
- 異常檢測
- 集群發現服務
- 服務發現服務
- 訪問日志
- 管理接口
- 限速服務
- 運行時配置
- 跟蹤
- V2 API參考
- 啟動引導
- 監聽&監聽發現
- 集群&集群發現
- 服務發現
- 健康檢查
- HTTP路由管理&發現
- TLS配置
- 通用的類型
- 網絡地址
- 協議選項
- 發現API
- 限速組件
- 過濾器
- 網絡過濾器
- TLS客戶端身份認證
- HTTP連接管理
- Mongo代理
- 速率限制
- Redis代理
- TCP代理
- HTTP過濾器
- 緩存
- 故障注入
- 健康檢查
- Lua
- 速率限制
- 路由
- gRPC-JSON轉碼器
- 常見訪問日志類型
- 常見故障注入類型
- FAQ
- Envoy有多快?
- 我在哪里獲得二進制文件?
- 我如何設置SNI?
- 如何設置區域感知路由?
- 我如何設置Zipkin跟蹤?