本文将阐述应用性能监控 APM 固有指标的协议标准,用户可以通过如下两种方式获取应用性能监控 APM 的固有指标:
通过云 API 查询指标,请参见 DescribeGeneralMetricData 接口文档。
将指标同步到腾讯云 Prometheus 监控服务,请参见 Prometheus 数据集成以及 Dashboard 关联展示。
指标数据结构
指标名称
每种指标都有唯一云 API 指标名称和唯一的 Prometheus 指标名称,分别用于云 API 查询以及同步至 Prometheus 这两种获取 APM 固有指标的方式。
指标视图
APM 的固有指标包含5个类别,通过5个指标视图进行标识。在云 API 查询场景,需要在
ViewName
字段中指定视图名称。视图名称 | 描述 |
service_metric | 基础性能指标:统计应用的通用性能表现,例如请求数量、响应时间等。 |
runtime_metric | 运行时指标:统计运行时指标,例如 GC 次数、CPU 利用率等。 |
sql_metric | 数据库调用指标:统计应用访问数据库的性能表现,例如 SQL 执行次数、响应时间等。 |
error_metric | 错误调用指标:统计链路中的错误调用情况,例如错误类型、错误码。 |
mq_metric | MQ 调用指标:统计应用访问消息队列的性能表现,例如消息生产的次数、响应时间等。 |
指标维度
每种指标都支持多个维度:在云 API 查询场景,维度用于数据过滤;在 Prometheus 集成场景,维度信息将以 Prometheus 标签(Label)的形式输出到 Prometheus 指标中。
通用维度
云 API 维度名称 | Prometheus 标签名称 | 描述 |
tapm.app.id | tapm_app_id | 云 AppID |
tapm.instance.key | apm_instance | APM 实例 ID |
service.name | apm_service_name | 应用名 |
service.instance | service_instance | 应用实例 |
agent.version | agent_version | 探针版本号 |
service.version | service_version | 应用版本 |
除了通用维度之外,每个视图还支持一系列的特有维度。例如 service_metric 视图下的指标支持
span.kind
,代表 Span 类型。详情请参见下文。service_metric 视图(基础性能指标)
指标
云 API 指标名称 | Prometheus 指标名称 | 类型 | 描述 | 单位 | 桶分布 |
request_count | service_request_count | Gauge | 请求数量 | - | - |
error_request_count | service_error_request_count | Gauge | 错误请求数量 | - | - |
duration_avg | service_duration_avg | Gauge | 平均耗时 | ms | - |
duration_max | service_duration_max | Gauge | 最大耗时 | ms | - |
duration_min | service_duration_min | Gauge | 最小耗时 | ms | - |
duration_total | service_duration_total | Gauge | 累计耗时 | ms | - |
slow_request_count | service_slow_request_count | Gauge | 慢调用数量(>2000ms) | - | - |
tolerate_request_count | service_tolerate_request_count | Gauge | 容忍调用数量(500 - 2000ms) | - | - |
range_count_duration | 不支持 | Histogram | 耗时分布 | - | 0,1,5,10,50,100,200,300,400,500,600,700,800,900,1000,1500,2000,3000,4000,5000,7000,10000,15000 |
特有维度
云 API 维度名称 | Prometheus 标签名称 | 描述 |
span.kind | span_kind | Span 类型 |
service.component | service_component | 组件类型 |
peer.service | peer_service | 对端应用名 |
peer.operation | peer_operation | 对端接口名 |
peer.filled | peer_filled | APM 处理后的对端应用名 |
operation | operation | 接口名 |
peer.instance | peer_instance | 对端实例 |
status.message | status_message | 请求状态信息 |
status.code | status_code | 请求状态码 |
status_code_xx | status_code_xx | APM 处理后的状态码 |
error.object | error_object | 错误类型 |
namespace | namespace | 命名空间 |
service.view | service_view | 组件视图(枚举值:"sql"、"mq",如果没有则为空) |
k8s.deployment.name | k8s_deployment_name | Kubernetes 负载名 |
k8s.pod.name | k8s_pod_name | Kubernetes Pod 名 |
k8s.namespace.name | k8s_namespace_name | Kubernetes 命名空间 |
k8s.cluster.id | k8s_cluster_id | TKE 集群 ID |
k8s.region | k8s_region | TKE 集群地域 |
k8s.pod.ip | k8s_pod_ip | Kubernetes Pod IP |
k8s.node.ip | k8s_node_ip | Kubernetes 节点 IP |
cvm.region | cvm_region | CVM 地域 |
cvm.instance.id | cvm_instance_id | CVM 实例 ID |
custom_key_1 | custom_key_1 | 自定义维度1 |
custom_key_2 | custom_key_2 | 自定义维度2 |
custom_key_3 | custom_key_3 | 自定义维度3 |
runtime_metric 视图(运行时性能指标)
说明:
腾讯云增强版 OpenTelemetry Java 探针支持 runtime_metric 视图。
该协议标准适用于腾讯云增强版 OpenTelemetry Java 探针2.3-20250228及其之后的版本。如果您使用2.3-20250228之前的探针版本,建议 升级探针版本。
部分运行时性能指标在告警平台和云监控 Dashboard 中,被标识为下线中,代表该类指标不被推荐使用(例如不支持 ZGC 或者 Java 缓冲区),且不被收录到该协议标准中。在已有的告警策略或者 Dashboard 定义中,下线中的指标将继续生效,但建议尽快 升级探针版本,并通过该协议标准收录的指标进行替换。
指标
云 API 指标名称 | Prometheus 指标名称 | 类型 | 描述 | 单位 |
cpu_usage_percent | runtime_cpu_usage_percent | Gauge | CPU 利用率 | % |
jvm_heap_usage_percent | runtime_jvm_heap_usage_percent | Gauge | 内存利用率 | % |
jvm_gc_count | runtime_jvm_gc_count | Gauge | GC 次数 | 个 |
jvm_gc_time | runtime_jvm_gc_time | Gauge | GC 耗时 | ms |
jvm_memory_commit | runtime_jvm_memory_commit | Gauge | JVM 内存已提交大小 | MB |
jvm_memory_max | runtime_jvm_memory_max | Gauge | JVM 内存最大大小 | MB |
jvm_memory_used | runtime_jvm_memory_used | Gauge | JVM 内存使用大小 | MB |
thread_new_count | runtime_thread_new_count | Gauge | 新建线程数 | 个 |
thread_runnable_count | runtime_thread_runnable_count | Gauge | 可运行线程数 | 个 |
thread_blocked_count | runtime_thread_blocked_count | Gauge | 阻塞线程数 | 个 |
thread_waiting_count | runtime_thread_waiting_count | Gauge | 等待线程数 | 个 |
thread_time_waiting_count | runtime_thread_time_waiting_count | Gauge | 定时等待线程数 | 个 |
thread_terminated_count | runtime_thread_terminated_count | Gauge | 终止线程数 | 个 |
thread_daemon_count | runtime_thread_daemon_count | Gauge | 守护线程数 | 个 |
thread_live_count | runtime_thread_live_count | Gauge | 活跃线程数 | 个 |
thread_peak_count | runtime_thread_peak_count | Gauge | 峰值活跃线程数 | 个 |
connection_pool_active_size | runtime_connection_pool_active_size | Gauge | 活跃连接数 | 个 |
connection_pool_current_size | runtime_connection_pool_current_size | Gauge | 当前连接数 | 个 |
connection_pool_idle_size | runtime_connection_pool_idle_size | Gauge | 空闲连接数 | 个 |
connection_pool_max_size | runtime_connection_pool_max_size | Gauge | 最大连接数 | 个 |
connection_pool_wait_size | runtime_connection_pool_wait_size | Gauge | 等待连接数 | 个 |
connection_pool_usage_rate | runtime_connection_pool_usage_rate | Gauge | 连接池使用率 | % |
thread_pool_active_count | runtime_thread_pool_active_count | Gauge | 活跃线程数 | 个 |
thread_pool_core_pool_size | runtime_thread_pool_core_pool_size | Gauge | 核心线程数 | 个 |
thread_pool_max_pool_size | runtime_thread_pool_max_pool_size | Gauge | 最大线程数 | 个 |
thread_pool_size | runtime_thread_pool_size | Gauge | 线程池大小 | 个 |
thread_pool_task_count | runtime_thread_pool_task_count | Gauge | 线程池任务数 | 个 |
thread_pool_usage_rate | runtime_thread_pool_usage_rate | Gauge | 线程池使用率 | % |
特有维度
云 API 维度名称 | Prometheus 标签名称 | 描述 |
pool.tag | pool.tag | 线程池/连接池种类 |
pool.type | pool.type | 线程池/连接池组件类型 |
pool.name | pool.name | 线程池/连接池名称 |
gc.type | gc.type | GC 类型 |
collector.name | collector.name | 回收器名称 |
memory.category | memory.category | 内存种类 |
memory.area | memory.area | 内存区域 |
k8s.deployment.name | k8s_deployment_name | Kubernetes 负载名 |
k8s.pod.name | k8s_pod_name | Kubernetes Pod 名 |
k8s.namespace.name | k8s_namespace_name | Kubernetes 命名空间 |
k8s.cluster.id | k8s_cluster_id | TKE 集群 ID |
k8s.region | k8s_region | TKE 集群地域 |
k8s.pod.ip | k8s_pod_ip | Kubernetes Pod IP |
k8s.node.ip | k8s_node_ip | Kubernetes 节点 IP |
cvm.region | cvm_region | CVM 地域 |
cvm.instance.id | cvm_instance_id | CVM 实例 ID |
custom_key_1 | custom_key_1 | 自定义维度1 |
custom_key_2 | custom_key_2 | 自定义维度2 |
custom_key_3 | custom_key_3 | 自定义维度3 |
sql_metric 视图(数据库调用指标)
指标
云 API 指标名称 | Prometheus 指标名称 | 类型 | 描述 | 单位 |
duration_avg | sql_duration_avg | Gauge | 平均耗时 | - |
duration_total | sql_duration_total | Gauge | 累计耗时 | - |
last_error_occur_time | sql_last_error_occur_time | Gauge | 最后错误发生时间 | ms |
error_request_count | sql_error_request_count | Gauge | 错误请求数量 | ms |
request_count | sql_request_count | Gauge | 请求数量 | ms |
slow_sql_count | sql_slow_sql_count | Gauge | 慢 SQL 数量(>2000ms) | - |
特有维度
云 API 维度名称 | Prometheus 标签名称 | 描述 |
service.component | service_component | 组件类型 |
span.kind | span_kind | Span 类型 |
db.statement | db_statement | 执行语句 |
db.instance | db_instance | 数据库的实例地址 |
db.ip | db_ip | IP 地址 |
db.operation | db_operation | 操作类型 |
error.object | error_object | 错误类型 |
db.system | db_system | 数据库类型 |
attack.subtype | attack_subtype | 注入类型 |
attack.symbol | attack_symbol | 注入标记:0无注入,1疑似注入 |
attack.level | attack_level | 注入等级:Critical、Important、Moderate、Low、info |
custom_key_1 | custom_key_1 | 自定义维度1 |
custom_key_2 | custom_key_2 | 自定义维度2 |
custom_key_3 | custom_key_3 | 自定义维度3 |
error_metric 视图(错误调用指标)
指标
云 API 指标名称 | Prometheus 指标名称 | 类型 | 描述 | 单位 |
error_request_count | error_error_request_count | Gauge | 错误请求数 | - |
last_error_occur_time | error_last_error_occur_time | Gauge | 最后错误发生时间 | ms |
特有维度
云 API 维度名称 | Prometheus 标签名称 | 描述 |
service.component | service_component | 组件类型 |
span.kind | span_kind | Span 类型 |
operation | operation | 接口名 |
error.object | error_object | 错误类型 |
peer.service | peer_service | 对端应用名 |
custom_key_1 | custom_key_1 | 自定义维度1 |
custom_key_2 | custom_key_2 | 自定义维度2 |
custom_key_3 | custom_key_3 | 自定义维度3 |
mq_metric 视图(MQ 调用指标)
指标
云 API 指标名称 | Prometheus 指标名称 | 类型 | 描述 | 单位 | 桶分布 |
duration_avg | mq_duration_avg | Gauge | 平均耗时 | ms | - |
duration_total | mq_duration_total | Gauge | 累计耗时 | ms | - |
error_request_count | mq_error_request_count | Gauge | 错误数量 | - | - |
request_count | mq_request_count | Gauge | 请求数 | - | - |
range_count_duration | 不支持 | Histogram | 耗时分布 | - | 0,1,5,10,50,100,200,300,400,500,600,700,800,900,1000,1500,2000,3000 |
特有维度
云 API 维度名称 | Prometheus 标签名称 | 描述 |
component | component | 组件类型 |
span.kind | span_kind | Span 类型 |
peer.service | peer_service | 对端应用名 |
mq.topic | mq_topic | 消息队列 Topic 名称 |
mq.broker | mq_broker | 消息队列的 Broker 地址 |
operation | operation | 接口名 |
status.code | status_code | 请求状态 |
status_code_xx | status_code_xx | APM 处理后的状态码 |
error.object | error_object | 错误类型 |