1.4.3 监听器

优质
小牛编辑
135浏览
2023-12-01

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

  • v1 API参考
  • v2 API参考

统计

监听器

每个监听器都有一个以 listener.<address> 为根的统计树。统计如下:

名称类型描述
downstream_cx_totalCounter连接总数
downstream_cx_destroyCounter销毁的连接总数
downstream_cx_activeGauge活动的连接总数
downstream_cx_length_msHistogram连接时长,单位毫秒
ssl.connection_errorCounter错误的TLS连接总数,不包括证书验证失败的
ssl.handshakeCounterTLS连接握手成功的总数
ssl.session_reusedCounterTLS会话恢复成功的总数
ssl.no_certificateCounter完全成功的TLS连接,没有客户端证书
ssl.fail_no_sni_matchCounter由于缺少SNI匹配而被拒绝的TLS连接总数
ssl.fail_verify_no_certCounter由于缺少客户端证书而失败的TLS连接总数
ssl.fail_verify_errorCounterCA验证失败的TLS连接总数
ssl.fail_verify_sanCounterSAN验证失败的TLS连接总数
ssl.fail_verify_cert_hashCounter证书锁定验证失败的TLS连接总数
ssl.cipher.Counter使用的TLS连接总数

监听管理器

监听器管理器的统计树以listener_manager为根。用下面的统计。统计名称中的字符被替换为_。

名称类型描述
listener_addedCounter监听器被添加的总数(通过静态配置或LDS)
listener_modifiedCounter监听器被修改的总数(通过LDS)
listener_removedCounter监听器被删除的总数(通过LDS)
listener_create_successCounter监听器对象添加到工作组成功的总数。
listener_create_failureCounter监听器对象添加到工作组失败的总数。
total_listeners_warmingGauge当前正在热身的监听器的数量
total_listeners_activeGauge当前活动的监听器的数量
total_listeners_drainingGauge当前正在被引流的监听器数量

运行时

监听器支持以下运行时设置:

ssl.alt_alpn

有多少的百分比请求,使用配置的alt_alpn协议字符串。默认为0。

监听器发现服务(LDS)

监听器发现服务(LDS)是一个可选的API,Envoy将调用它来动态获取监听器。Envoy将协调API响应,并根据需要添加,修改或删除已知的监听器。

监听器更新的语义如下:

  • 每个监听器必须有一个独特的名字。如果没有提供名称,Envoy将创建一个UUID。要动态更新的监听器,管理服务必须提供监听器的唯一名称。
  • 当一个监听器被添加,在参与连接处理之前,会先进入“预热”阶段。例如,如果监听器引用RDS配置,那么在监听器移动到“活动”之前,将会解析并提取该配置。
  • 监听器一旦创建,实际上就会保持不变。因此,更新监听器时,会创建一个全新的监听器(使用相同的侦听套接字)。这个监听者会通过上面所描述的,新增加的监听者都有“预热”过程。
  • 当更新或删除监听器时,旧的监听器将被置于“逐出”状态,就像整个服务重新启动时一样。监听器移除之后,该监听器所拥有的连接,经过一段时间优雅地关闭(如果可能的话)剩余的连接。逐出时间通过--drain-time-s选项设置。

配置

  • v1 LDS API
  • v2 LDS API

统计

LDS的统计树是以listener_manager.lds为根,统计如下:

名称类型描述
config_reloadCounter由于配置更新,导致配置API调用总数
update_attemptCounterLDS配置API调用重试总数
update_successCounterLDS配置API调用成功总数
update_failureCounterLDS配置API调用失败总数(网络或模式错误)
versionGauge上次成功调用的内容哈希值

返回

  • 上一级