监听器

Envoy配置顶层包含一个监听器列表。每个单独的监听器配置具有以下格式:

统计

监听器

每个监听器都有一个以 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. Counter 使用的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选项设置。

配置

统计

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 上次成功调用的内容哈希值

返回