Proxy的监控指标
在流量通过Conduit代理的时候,会产生一系列用于表达流量特征的监控指标。下列的指标是Prometheus格式的,可以由Prometheus在Proxy监控端口(缺省为4191
)的/metrics
路径进行抓取。
下面每个指标的描述,会首先说明这个指标在 Prometheus 中的类型。
request_total
Counter,Proxy收到请求的数量。请求流启动的时候,这个数量会增加。
request_duration_ms
Histogram,用于描述请求的时长。从收到请求头开始计时,请求流完成后结束计时。
response_total
Counter,Proxy收到的响应的数量。当响应流结束时,这一数量会增加。
response_duration_ms
Histogram,描述响应的时长,从收到响应头开始计时,到响应流完成后结束计时。
response_latency_ms
Histogram,描述响应的总体延迟。这一时间段从收到请求头开始,到响应流完成结束。
标签
每个指标都会有如下的标签:
authority
::authority
(HTTP/2)或者Host
(HTTP/1.1)请求头。direction
:如果流量来自Pod之外,就是inbound
;如果流量从Pod内发起,就是outbound
。
响应标签
下列标签只会出现在response_*
指标中:
classification
:如果响应成功,则取值success
;如果服务器出错,则取值failure
。如果存在gRPC状态码,则使用gRPC状态码决定取值,否则就使用HTTP状态码进行决定。grpc_status_code
:来自grpc-status
,仅对gRPC响应有效。status_code
:响应的HTTP状态码。
出站标签
下列标签仅对direction=outbound
有效:
dst_deployment
:请求发送的目标Deployment。dst_k8s_job
:请求发向的Job。dst_replica_set
:请求发送的目标RS。dst_daemon_set
:请求发送的目标Daemonset。dst_replication_controller
:请求发送的目标RC。dst_namespace
:请求的目标所在命名空间。dst_service
:请求发送的目标服务。
Prometheus 收集器标签
Prometheus 收集器会在指标上加入如下标签:
instance
: Pod的ip:port。job
:Prometheus Job的名称,通常是conduit-proxy
。
收集时加入的 Kubernetes 标签
Kubernetes命名空间、Pod名称以及所有标签都会映射为Prometheus标签。
namespace
:Pod 所属的 Kubernetes 命名空间。pod
:Kubernetes Pod 名称。
收集时加入的Conduit标签
在使用
conduit inject
进行注入时,会将conduit.io/
为前缀的标签加入应用。确切的说,conduit.io/proxy-*
前缀的Kubernetes标签对应下面的Prometheus标签,这些标签是否存在要视乎Pod所属的控制器:daemon_set
:Pod所属的Daemonset。deployment
:Pod所属的Deployment。k8s_job
:Pod所属的Job。replica_set
:Pod所属的RS。replication_controller
:Pod所属的RC。
示例
这里是一个Pod的代码片段:
会生成的Promethus标签:
Last updated