指标观测
指标是服务可观测性的基础。Envoy 内置丰富的运行时指标,覆盖流量、性能、健康等多个维度,便于监控与故障定位。
Envoy 指标类型
- Counter(计数器):单调递增,记录事件发生次数,如请求数、错误数。
- Gauge(仪表盘):可增可减,反映当前状态,如连接数、内存占用。
- Histogram(直方图):统计分布,用于延迟、包大小等分布型数据。
关键内置指标
- 集群(cluster):
upstream_rq_total
:上游请求总数upstream_rq_2xx/4xx/5xx
:各类响应码计数upstream_cx_active
:活跃连接数
- 监听器(listener):
downstream_cx_active
:下游活跃连接数downstream_rq_total
:下游请求总数
- 路由(route):
vhost.vcluster.rq_total
:虚拟主机/路由请求数
- HCM(HTTP Connection Manager):
downstream_rq_time
:请求处理延迟直方图
- 过滤器(filter):
- 各过滤器自带如认证、限流、压缩等相关指标
Prometheus 集成与采集
Envoy 支持原生 Prometheus 格式指标暴露,便于与主流监控系统集成。
配置示例
admin:
access_log_path: /dev/null
address:
socket_address:
address: 0.0.0.0
port_value: 9901
Prometheus 采集配置:
scrape_configs:
- job_name: 'envoy'
static_configs:
- targets: ['envoy-host:9901']
metrics_path: /stats/prometheus
典型指标解读
upstream_rq_5xx
:上游 5xx 错误,异常波动需重点关注。downstream_cx_active
:连接数异常增高可能有流量攻击或泄漏。downstream_rq_time
:请求延迟分布,辅助性能分析。
工程实践建议
- 重点关注错误率、延迟、连接数等核心指标。
- 配置合理的告警阈值,结合业务流量特性。
- 定期梳理和优化指标采集,避免无效数据。
- 结合 tracing、logging 形成完整观测闭环。
指标体系是运维与故障响应的基石,建议结合实际场景持续优化观测方案。