Istio 标准指标
以下是 Istio 导出的标准服务级别指标。
遥测组件作为一个
Proxy 扩展被实现。
COUNTER 是一个严格递增的整数。
DISTRIBUTION 将数值的范围映射到频率。COUNTER 和 DISTRIBUTION 在
Envoy 文档中对应于指标计数器和直方图。
指标
对于 HTTP、HTTP/2 和 gRPC 通信,Istio 生成以下指标:
请求数 (
istio_requests_total):这是一个COUNTER类型的指标, 用于记录 Istio 代理处理的总请求数。请求时长 (
istio_request_duration_milliseconds):这是一个DISTRIBUTION类型的指标,用于测量请求的持续时间。请求体大小 (
istio_request_bytes):这是一个DISTRIBUTION类型的指标, 用来测量 HTTP 请求主体大小。响应体大小 (
istio_response_bytes):这是一个DISTRIBUTION类型的指标, 用来测量 HTTP 响应主体大小。gRPC 请求消息数 (
istio_request_messages_total):这是一个COUNTER类型的指标,用于记录从客户端发送的 gRPC 消息总数。gRPC 响应消息数 (
istio_response_messages_total):这是一个COUNTER类型的指标,用于记录从服务端发送的 gRPC 消息总数。
对于 TCP 流量,Istio 生成以下指标:
TCP 发送字节数 (
istio_tcp_sent_bytes_total):这是一个COUNTER类型的指标,用于测量在 TCP 连接情况下响应期间发送的总字节数。TCP 接收字节数 (
istio_tcp_received_bytes_total):这是一个COUNTER类型的指标,用于测量在 TCP 连接情况下请求期间接收到的总字节数。TCP 已打开连接数 (
istio_tcp_connections_opened_total):这是一个COUNTER类型的指标,用于记录 TCP 已打开的连接总数。TCP 已关闭连接数 (
istio_tcp_connections_closed_total):这是一个COUNTER类型的指标,用于记录 TCP 已关闭的连接总数。
Istio 发出的指标可以通过 Telemetry 资源的 metricsOverrides 字段
进行覆盖;详情请参阅 Telemetry API。
标签
标签被添加到指标中,用于标识唯一的序列或提供辅助信息。
在 Prometheus 抓取数据时显示的标签名称以及在配置中引用该标签时使用的名称,如下所示(括号内)。
Reporter(
reporter):标识请求指标的上报端。如果指标由服务端 Istio 代理上报,则设置为destination,如果指标由客户端 Istio 代理或网关上报,则设置为source。Source Workload(
source_workload):标识源工作负载的名称,如果缺少源信息,则标识为unknown。另请参阅工作负载标签
service.istio.io/workload-name和代理环境变量ISTIO_META_WORKLOAD_NAME。Source Workload Namespace(
source_workload_namespace):标识源工作负载的命名空间,如果缺少源信息,则标识为unknown。Source Principal(
source_princpial):标识流量源的对等主体。当使用对等身份验证时设置。Source App(
source_app):根据源工作负载的app标签标识源应用程序,如果源信息丢失,则标识为unknown。Source Version(
source_version):标识源工作负载的版本,如果源信息丢失,则标识为unknown。Destination Workload(
destination_workload):标识目标工作负载的名称,如果目标信息丢失,则标识为unknown。另请参阅工作负载标签
service.istio.io/workload-name和代理环境变量ISTIO_META_WORKLOAD_NAME。Destination Workload Namespace(
DESTINATION_WORKLOAD_NAMESPACE):标识目标工作负载的命名空间, 如果目标信息丢失,则标识为unknown。Destination Principal(
destination_principal):标识流量目标的对等主体。使用对等身份验证时设置。Destination App(
destination_app):它根据目标工作负载的app标签标识目标应用程序, 如果目标信息丢失,则标识为unknown。Destination Version(
destination_version):标识目标工作负载的版本,如果目标信息丢失,则标识为unknown。Destination Service(
destination_service):标识负责传入请求的目标服务主机。例如details.default.svc.cluster.local。Destination Service Name(
destination_service_name):标识目标服务名称。例如:details。Destination Service Namespace(
destination_service_namespace):标识目标服务的命名空间。Request Protocol(
request_protocol):标识请求的协议。设置为请求或连接协议。Response Code(
response_code):标识请求的响应代码。此标签仅出现在 HTTP 指标上。Connection Security Policy(
connection_security_policy):标识请求的服务认证策略。当 Istio 使用安全策略来保证通信安全时,如果指标由服务端 Istio 代理上报,则将其设置为mutual_tls。如果指标由客户端 Istio 代理上报,由于无法正确填充安全策略,因此将其设置为unknown。Response Flags(
response_flags):有关来自代理的响应或连接的其他详细信息。如果是 Envoy,请参阅 Envoy 访问日志中的%RESPONSE_FLAGS%获取更多信息。Canonical Service:工作负载属于一个 Canonical 服务,而 Canonical 服务却可以属于多个服务。 Canonical 服务具有名称和修订版本,因此会产生以下标签:
source_canonical_service source_canonical_revision destination_canonical_service destination_canonical_revision另请参阅标签
service.istio.io/canonical-name和service.istio.io/canonical-revision。Destination Cluster(
destination_cluster):目标工作负载的集群名称。这是由集群安装时的global.multiCluster.clusterName设置的。Source Cluster(
source_cluster):源工作负载的集群名称。这是由集群安装时的global.multiCluster.clusterName设置的。gRPC Response Status(
grpc_response_status):这标识了 gRPC 的响应状态。这个标签仅出现在 gRPC 指标上。
可以使用 Telemetry 资源的 metricsOverrides.tagOverride 字段来禁用指标维度;
详情请参阅 Telemetry API。
此外,还可以使用指标分类过滤器添加或修改标签。