在服务网格ASM开启采集Prometheus监控指标后,Envoy会输出默认的监控指标。ASM支持使用自定义Metric的功能针对性输出监控指标,支持自定义网格级别、命名空间级别、工作负载级别的监控指标。本文介绍如何在服务网格ASM中自定义监控指标。
前提条件
已添加集群到ASM实例。具体操作,请参见添加集群到ASM实例。
背景信息
Istio会默认生成监控指标,每个监控指标包含标签。以下介绍Istio会生成的指标:
-
对于HTTP、HTTP/2和GRPC流量,Istio会生成以下指标:
Request Count (istio_requests_total): This is a COUNTER incremented for every request handled by an Istio proxy. Request Duration (istio_request_duration_milliseconds): This is a DISTRIBUTION which measures the duration of requests. Request Size (istio_request_bytes): This is a DISTRIBUTION which measures HTTP request body sizes. Response Size (istio_response_bytes): This is a DISTRIBUTION which measures HTTP response body sizes. gRPC Request Message Count (istio_request_messages_total): This is a COUNTER incremented for every gRPC message sent from a client. gRPC Response Message Count (istio_response_messages_total): This is a COUNTER incremented for every gRPC message sent from a server. -
对于TCP流量,Istio生成以下指标:
Tcp Bytes Sent (istio_tcp_sent_bytes_total): This is a COUNTER which measures the size of total bytes sent during response in case of a TCP connection. Tcp Bytes Received (istio_tcp_received_bytes_total): This is a COUNTER which measures the size of total bytes received during request in case of a TCP connection. Tcp Connections Opened (istio_tcp_connections_opened_total): This is a COUNTER incremented for every opened connection. Tcp Connections Closed (istio_tcp_connections_closed_total): This is a COUNTER incremented for every closed connection.
每个指标都会包含标签,以下为每个Istio指标默认包含的标签:
DefaultStatTags=["reporter","source_namespace","source_workload","source_workload_namespace","source_principal","source_app","source_version","source_app","source_version","source_cluster",destination_namespace","destination_principal","destination_app","destination_version","destination_service","destination_service_name","destination_service_namespace","destination_port","destination_cluster","request_protocol","request_operation","response_flags","grpc_response_status","connection_security_policy","source_canonical_service","destination_canonical_service","source_canonical_revision","destination_canonical_revision"]
标签说明
|
标签 |
说明 |
|
reporter |
请求的上报者,不同的上报者标签值不同:
|
|
source_workload |
源工作负载的名称。如果没有采集到标签值,则标签值为 |
|
source_workload_namespace |
源工作负载的名称空间。如果没有采集到标签值,则标签值为 |
|
source_principal |
流量源的对等主体。只有创建了对等身份验证时,才可以采集到该标签的值。 |
|
source_app |
根据源工作负载的应用程序标签标识源应用程序。如果没有采集到标签值,则标签值为 |
|
source_version |
源工作负载的版本。如果没有采集到标签值,则标签值为 |
|
source_cluster |
源工作负载的集群。 |
|
destination_namespace |
目标工作负载的名称空间。如果没有采集到标签值,则标签值为 |
|
destination_workload |
目标工作负载的名称。如果没有采集到标签值,则标签值为 |
|
destination_workload_namespace |
目标工作负载的名称空间。如果没有采集到标签值,则标签值为 |
|
destination_principal |
通信目的地的对等主体。只有创建了对等身份验证时,才可以采集到该标签的值。 |
|
destination_app |
根据目标工作负载的应用程序标签标识目标应用程序。如果没有采集到标签值,则标签值为 |
|
destination_version |
目标工作负载的版本。如果没有采集到标签值,则标签值为 |
|
destination_service |
负责传入请求的目标服务主机。 |
|
destination_service_name |
目标服务名称。 |
|
destination_service_namespace |
目标服务的名称空间。 |
|
destination_port |
目标端口。 |
|
destination_cluster |
目标工作负载的集群。 |
|
request_protocol |
请求的协议。 |
|
request_operation |
请求的操作。 |
|
response_flags |
有关来自代理的响应或连接的其它详细信息。 |
|
grpc_response_status |
GRPC返回状态。 |
|
connection_security_policy |
请求的服务身份验证策略。 |
操作步骤
ASM实例版本为1.15.3.65以下
-
可选:开启Prometheus监控。
说明如果您已开启Prometheus监控,无需执行此步骤。
登录ASM控制台,在左侧导航栏,选择。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择。
-
在基本信息页面,单击右上角的功能设置。
-
在功能设置更新面板,选中开启采集 Prometheus 监控指标,按需选择开启方式,然后单击确定。
-
自定义指标。
-
在网格管理页面左侧导航栏,选择,然后单击创建。
-
在创建页面,进行相关配置,然后单击创建。
配置项
说明
匹配标签
配置名称为标签的名称,值为应用的名称。ASM将会根据配置的值匹配应用,自定义指标仅对该应用生效。
inboundSidecar
单击inboundSidecar,然后单击新增指标,配置入口流量的自定义标签。
-
指标名称:配置为空,表示对所有指标生效。
-
指标维度:单击新增指标维度,配置标签和表达式。
-
删除指标纬度的标签:配置需要删除指标维度的标签。
outboundSidecar
单击outboundSidecar,然后单击新增指标,配置出口流量的自定义标签。
-
指标名称:配置为空,表示对所有指标生效。
-
指标维度:单击新增指标维度,配置标签和表达式。
-
删除指标纬度的标签:配置需要删除指标维度的标签。
gateway
单击gateway,然后单击新增指标,配置网关的自定义标签。
-
指标名称:配置为空,表示对所有指标生效。
-
指标维度:单击新增指标维度,配置标签和表达式。
-
删除指标纬度的标签:配置需要删除指标维度的标签。
说明如果您只配置了inboundSidecar,没有配置outboundSidecar和gateway,表示仅入口流量采用自定义标签,出口流量和网关仍然使用默认的方式生成指标。
-
-
ASM实例版本为1.15.3.65及以上,1.17.2.35以下
ASM对原有的自定义Metrics页面进行了升级,更名为监控指标,提供更便捷的UI界面,提高您的配置效率。使用此功能需要您的ASM实例版本为v1.15.3.65-g97cc18dd-aliyun及以上。关于升级实例的具体操作,请参见升级ASM实例。
登录ASM控制台,在左侧导航栏,选择。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择。
-
在监控指标页面,单击指标设置页签,按需配置全局或自定义指标。
-
配置全局指标
ASM默认提供了一些全局指标,默认为开启状态。您可以按需选择是否启用相关指标,或对指标的维度进行修改。关于指标的说明,请参见指标说明。
操作
说明
开启或关闭全局指标
-
开启全局指标:单击全局页签,在目标指标右侧,选中CLIENT侧指标或SERVER侧指标列下的启用,然后单击保存。
-
关闭全局指标:单击全局页签,在目标指标右侧,取消选中CLIENT侧指标或SERVER侧指标列下的启用,然后单击保存。
修改指标维度
-
单击全局页签,在目标指标右侧,单击CLIENT侧指标或SERVER侧指标列下的编辑维度。
-
在自定义CLIENT 维度配置对话框,按需选中目标维度,单击确认,然后单击保存。

-
-
配置自定义指标
单击自定义页签,单击创建,进行相关配置,然后在页面下方,单击创建。关于指标的说明,请参见指标说明。
配置项
说明
命名空间
选择自定义监控指标生效的命名空间。
名称
输入自定义标签的名称。
工作负载选择
单击新增匹配标签,配置标签的名称和工作负载的名称。ASM将会根据配置项匹配应用,自定义指标仅对该应用生效。
指标设置
ASM默认提供了一些全局指标,默认为开启状态。您可以选择是否启用相关指标,或对指标的维度进行修改。
-
开启或关闭全局指标:
-
开启全局指标:在目标指标右侧,选中CLIENT侧指标或SERVER侧指标列下的启用。
-
关闭全局指标:在目标指标右侧,取消选中CLIENT侧指标或SERVER侧指标列下的启用。
-
-
修改维度:
-
在目标指标右侧,单击CLIENT侧指标或SERVER侧指标列下的编辑维度。
-
在自定义CLIENT 维度配置对话框,按需选中目标维度,然后单击确认。
-

-
-
-
通过选择器可以选择一个命名空间内的单个工作负载的指标配置。该选择器支持基于标签选择工作负载。
-
同一命名空间下,以下配置无效:
-
使用选择器,为同一个工作负载创建多个自定义指标(Telemetry CR)。
-
创建多个自定义指标,但未指定选择器。
-
更多信息,请参见Workload Selection。
ASM实例版本为1.17.2.35及以上
具体操作,请参见可观测配置。
指标说明
ASM监控指标的说明如下。更多信息,请参见MetricSelector.IstioMetric。
ASM网关仅支持导出CLIENT侧指标,Sidecar可以导出CLIENT侧和SERVER侧指标。
|
指标 |
说明 |
在Prometheus下对应的指标 |
|
ALL_METRICS |
表示所有Istio默认指标。 |
- |
|
REQUEST_COUNT |
为HTTP、HTTP/2和GRPC流量生成的应用程序请求计数器。 |
istio_requests_total |
|
REQUEST_DURATION |
为HTTP、HTTP/2和GRPC流量生成的请求持续时间直方图。 |
istio_request_duration_milliseconds |
|
REQUEST_SIZE |
为HTTP、HTTP/2和GRPC流量生成的请求Body大小的直方图。 |
istio_request_bytes |
|
RESPONSE_SIZE |
为HTTP、HTTP/2和GRPC流量生成的响应Body大小的直方图。 |
istio_response_bytes |
|
TCP_OPENED_CONNECTIONS |
在工作负载的生命周期内打开的TCP连接计数器。 |
istio_tcp_connections_opened_total |
|
TCP_CLOSED_CONNECTIONS |
在工作负载的生命周期内关闭的TCP连接计数器。 |
istio_tcp_connections_closed_total |
|
TCP_SENT_BYTES |
在通过TCP连接进行响应期间发送的字节计数器。 |
istio_tcp_sent_bytes_total |
|
TCP_RECEIVED_BYTES |
通过TCP连接请求期间接收的字节数。 |
istio_tcp_received_bytes_total |
|
GRPC_REQUEST_MESSAGES |
从客户端发送的每条gRPC消息,计数器都会递增。 |
istio_request_messages_total |
|
GRPC_RESPONSE_MESSAGES |
从服务器发送的每条gRPC消息,计数器都会递增。 |
istio_response_messages_total |