ARMS OpenTelemetry Collector支持将OpenTelemetry Trace数据自动预聚合为APM Metrics指标。为了适应生产环境大规模应用场景,ARMS OpenTelemetry Collector在OpenTelemetry Metrics规范的基础上进行了调整与扩展。

基于时间窗口轮转的预聚合统计

ARMS OpenTelemetry Collector预聚合的APM Metrics指标支持时间窗口轮转,每个时间窗口(通常是1分钟)的指标值都是独立的,不受之前窗口统计的影响。这样可以保证在指标发散情况下,内存不会轻易溢出;并且在发生数据延迟、丢失等异常场景下,每个时间窗口内的指标数据都是准确的,更加适合生产环境的大规模应用。

例如:A接口每分钟的调用量是100次,累加计数统计和基于时间窗口轮转的统计结果对比如下所示。

方式\时间1分钟2分钟3分钟4分钟5分钟6分钟7分钟8分钟
累加计数100200300400500600700800
时间窗口轮转100100100100100100100100
基于时间窗口轮转的预聚合统计

指标说明

ARMS OpenTelemetry Collector目前支持HTTP、RPC、DB、Messaging等多种指标类型,每种类型都包含通用标签和专属类型标签。

指标查询示例如下图所示。

指标查询示例

通用标签

通用标签是指所有指标类型都有且必须包含的字段。

通用标签说明示例
source数据来源
  • satellite
  • ebpf
regionId区域名称cn-hangzhou
clusterId集群名称cf055ad09b7714beea8f9e7271e61xxxx
ip主机IP(K8s环境下是Pod IP)127.0.0.1
serviceName应用名称arms-console-hz
spanName接口名称/hello
statusCode调用状态
  • 0表示UNSET。
  • 1表示OK。
  • 2表示ERROR。
componentType组件类型mysql、redis、grpc、kafka等。

指标类型及专属标签

HTTP

指标名称单位描述
http_server_duration_ms_count次数HTTP服务端调用次数
http_server_duration_ms_sum毫秒HTTP服务端调用总耗时
http_client_duration_ms_count次数HTTP客户端调用次数
http_client_duration_ms_sum毫秒HTTP客户端调用总耗时
专属标签类型推荐描述示例
httpMethodString可选方法名称GET、POST、HEAD
httpStatusCodeString可选响应码1xx、2xx、3xx、4xx、5xx

RPC

指标名称单位描述
rpc_server_duration_ms_count次数RPC服务端调用次数
rpc_server_duration_ms_sum毫秒RPC服务端调用总耗时
rpc_client_duration_ms_count次数RPC客户端调用次数
rpc_client_duration_ms_sum毫秒RPC客户端调用总耗时
专属标签类型推荐描述示例
rpcServiceString可选含包名的接口全称myservice.EchoService
rpcMethodString可选仅含方法名exampleMethod

Database

指标名称单位描述
db_client_duration_ms_count次数DB客户端调用次数
db_client_duration_ms_sum毫秒DB客户端调用总耗时
专属标签类型推荐描述示例
dbStatementString必选SQL语句
  • SELECT * FROM
  • wuser_table
dbNameString可选数据库名称
  • customers
  • main
dbTableNameString可选表名称user_info
dbOperationString 可选动作类型
  • SELECT
  • HMSET

Messaging

指标名称单位描述
msg_producer_duration_ms_count次数消息生产者调用次数
msg_producer_duration_ms_sum毫秒消息生产者调用总耗时
msg_consumer_duration_ms_count次数消息消费者调用次数
msg_consumer_duration_ms_sum毫秒消息消费者调用总耗时
专属标签类型推荐描述示例
msgTopicString必选Span名称
  • MyQueue
  • MyTopic
msgProtocolString可选协议
  • AMQP
  • MQTT
msgProtocolVersionString 可选协议版本0.9.1

Other

不属于上述类型的指标统一归类到Other类型。

指标名称单位描述
other_type_duration_ms_count次数其他类型调用次数
other_type_duration_ms_sum毫秒其他类型调用总耗时

自定义标签

ARMS OpenTelemetry Collector支持在聚合指标中添加自定义标签。

  1. 在Trace数据的Attributes中添加KV键值对,例如<userType: xxx>
  2. ARMS控制台应用监控 > 全局配置 > OT Collector配置页签,选择对应地域和集群,在自定义标签区域添加自定义标签Key,例如userType,相应的Value将会自动从Trace Attributes中提取。自定义标签

指标查询

ARMS OpenTelemetry Collector会将聚合后的指标数据自动上报并存储在ARMS Prometheus托管集群,您可以通过Grafana或HTTP API等方式进行查询或展示。

通过Grafana查看APM Metrics

登录共享版Grafana控制台,在Explore页面选择自动创建的ARMS OpenTelemetry Collector数据源,查看指标数据。

  • ARMS OpenTelemetry Collector数据源名称:ot-collector-{regionId}_{userId},例如ot-collector-cn-beijing_1131971649496xxx
  • ARMS OpenTelemetry Collector数据源类型:Prometheus。
您也可以在Grafana的Dashboards > Manage页面中搜索查看默认创建的OpenTelemetry APM Dashboard。Satellite大盘

通过HTTP API获取APM Metrics

通过HTTP API在自建的Grafana接入ARMS OpenTelemetry Collector上报的APM Metrics,具体使用方式,请参见HTTP API地址使用说明