OBI 导出的指标
了解 OBI 可以导出的 HTTP/gRPC 指标。
下表描述了以 OpenTelemetry 和 Prometheus 格式导出的指标。
| 系列 | 名称 (OTel) | 名称 (Prometheus) | 类型 | 单位 | 描述 |
|---|---|---|---|---|---|
| 应用程序 | http.client.request.duration | http_client_request_duration_seconds | Histogram | 秒 | 客户端发起的 HTTP 服务调用持续时间 |
| 应用程序 | http.client.request.body.size | http_client_request_body_size_bytes | Histogram | 字节 | 客户端发送的 HTTP 请求体大小 |
| 应用程序 | http.client.response.body.size | http_client_response_body_size_bytes | Histogram | 字节 | 客户端发送的 HTTP 响应体大小 |
| 应用程序 | http.server.request.duration | http_server_request_duration_seconds | Histogram | 秒 | 服务端接收的 HTTP 服务调用持续时间 |
| 应用程序 | http.server.request.body.size | http_server_request_body_size_bytes | Histogram | 字节 | 服务端接收的 HTTP 请求体大小 |
| 应用程序 | http.server.response.body.size | http_server_response_body_size_bytes | Histogram | 字节 | 服务端接收的 HTTP 响应体大小 |
| 应用程序 | rpc.client.duration | rpc_client_duration_seconds | Histogram | 秒 | 客户端发起的 gRPC 服务调用持续时间 |
| 应用程序 | rpc.server.duration | rpc_server_duration_seconds | Histogram | 秒 | 服务端接收的 RPC 服务调用持续时间 |
| 应用程序 | sql.client.duration | sql_client_duration_seconds | Histogram | 秒 | SQL 客户端操作的持续时间(实验性) |
| 应用程序 | redis.client.duration | redis_client_duration_seconds | Histogram | 秒 | Redis 客户端操作的持续时间(实验性) |
| 应用程序 | messaging.publish.duration | messaging_publish_duration | Histogram | 秒 | 消息(Kafka)发布操作的持续时间(实验性) |
| 应用程序 | messaging.process.duration | messaging_process_duration | Histogram | 秒 | 消息(Kafka)处理操作的持续时间(实验性) |
| 网络 | obi.network.flow.bytes | obi_network_flow_bytes | Counter | 字节 | 从源网络端点流向目标网络端点的字节数 |
| 网络 | obi.network.inter.zone.bytes | obi_network_inter_zone_bytes | Counter | 字节 | 在您的集群中流经不同可用区之间的字节数(实验性,目前仅在 Kubernetes 中可用) |
OBI 还可以导出 Span 指标 和 Service graph 指标,您可以通过 features 配置选项启用它们。
OBI 指标的属性
为简洁起见,此列表中的指标和属性使用 OTel dot.notation。使用 Prometheus 导出器时,指标使用 underscore_notation。
要配置显示哪些属性或隐藏哪些属性,请查看 配置文档 中的 attributes->select 部分。
| 指标 | 名称 | 默认值 |
|---|---|---|
| 应用程序(全部) | http.request.method | 显示 |
| 应用程序(全部) | http.response.status_code | 显示 |
| 应用程序(全部) | http.route | 如果存在 routes 配置部分,则显示 |
| 应用程序(全部) | k8s.daemonset.name | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | k8s.deployment.name | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | k8s.namespace.name | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | k8s.node.name | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | k8s.owner.name | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | k8s.pod.name | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | k8s.container.name | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | k8s.pod.start_time | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | k8s.pod.uid | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | k8s.replicaset.name | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | k8s.statefulset.name | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | k8s.cluster.name | 如果启用了 Kubernetes 元数据,则显示 |
| 应用程序(全部) | service.name | 显示 |
| 应用程序(全部) | service.namespace | 显示 |
| 应用程序(全部) | target.instance | 显示 |
| 应用程序(全部) | url.path | 隐藏 |
| 应用程序(客户端) | server.address | 隐藏 |
| 应用程序(客户端) | server.port | 隐藏 |
应用程序 rpc.* | rpc.grpc.status_code | 显示 |
应用程序 rpc.* | rpc.method | 显示 |
应用程序 rpc.* | rpc.system | 显示 |
| 应用程序(服务端) | client.address | 隐藏 |
obi.network.flow.bytes | obi.ip | 隐藏 |
db.client.operation.duration | db.operation.name | 显示 |
db.client.operation.duration | db.collection.name | 隐藏 |
messaging.publish.duration | messaging.system | 显示 |
messaging.publish.duration | messaging.destination.name | 显示 |
messaging.process.duration | messaging.system | 显示 |
messaging.process.duration | messaging.destination.name | 显示 |
obi.network.flow.bytes | client.port | 隐藏 |
obi.network.flow.bytes | direction | 隐藏 |
obi.network.flow.bytes | dst.address | 隐藏 |
obi.network.flow.bytes | dst.cidr | 如果存在 cidrs 配置部分,则显示 |
obi.network.flow.bytes | dst.name | 隐藏 |
obi.network.flow.bytes | dst.port | 隐藏 |
obi.network.flow.bytes | dst.zone(仅限 Kubernetes) | 隐藏 |
obi.network.flow.bytes | iface | 隐藏 |
obi.network.flow.bytes | k8s.cluster.name | 如果启用了 Kubernetes,则显示 |
obi.network.flow.bytes | k8s.dst.name | 隐藏 |
obi.network.flow.bytes | k8s.dst.namespace | 如果启用了 Kubernetes,则显示 |
obi.network.flow.bytes | k8s.dst.node.ip | 隐藏 |
obi.network.flow.bytes | k8s.dst.node.name | 隐藏 |
obi.network.flow.bytes | k8s.dst.owner.type | 隐藏 |
obi.network.flow.bytes | k8s.dst.type | 隐藏 |
obi.network.flow.bytes | k8s.dst.owner.name | 如果启用了 Kubernetes,则显示 |
obi.network.flow.bytes | k8s.src.name | 隐藏 |
obi.network.flow.bytes | k8s.src.namespace | 如果启用了 Kubernetes,则显示 |
obi.network.flow.bytes | k8s.src.node.ip | 隐藏 |
obi.network.flow.bytes | k8s.src.owner.name | 如果启用了 Kubernetes,则显示 |
obi.network.flow.bytes | k8s.src.owner.type | 隐藏 |
obi.network.flow.bytes | k8s.src.type | 隐藏 |
obi.network.flow.bytes | server.port | 隐藏 |
obi.network.flow.bytes | src.address | 隐藏 |
obi.network.flow.bytes | src.cidr | 如果存在 cidrs 配置部分,则显示 |
obi.network.flow.bytes | src.name | 隐藏 |
obi.network.flow.bytes | src.port | 隐藏 |
obi.network.flow.bytes | src.zone(仅限 Kubernetes) | 隐藏 |
obi.network.flow.bytes | transport | 隐藏 |
| 跟踪(SQL、Redis) | db.query.text | 隐藏 |
`obi.network.inter.zone.bytes` 指标支持与 `obi.network.flow.bytes` 相同的属性集,但默认情况下所有这些属性都已隐藏,除了 `k8s.cluster.name`、`src.zone` 和 `dst.zone`。
内部指标
OBI 可以 配置为报告内部指标(Prometheus 格式)。
| 名称 | 类型 | 描述 |
|---|---|---|
obi_ebpf_tracer_flushes | Histogram | 从 eBPF 跟踪器刷新到下一个管道阶段的跟踪组的长度 |
obi_metric_exports_total | Counter | 提交到远程 OTel 收集器的指标批次的长度 |
obi_metric_export_errors_total | CounterVec | 每次 OTel 指标导出失败的错误计数,按错误类型区分 |
obi_trace_exports_total | Counter | 提交到远程 OTel 收集器的跟踪批次的长度 |
obi_trace_export_errors_total | CounterVec | 每次 OTel 跟踪导出失败的错误计数,按错误类型区分 |
obi_prometheus_http_requests_total | CounterVec | 请求 Prometheus Scrape 端点的数量,按 HTTP 端口和路径进行分面 |
obi_instrumented_processes | GaugeVec | OBI 仪器化的进程,按进程名称区分 |
obi_internal_build_info | GaugeVec | OBI 二进制文件的版本信息,包括构建时间和提交哈希 |