背景介绍
目前Opentelemtry
的Metrics
标准以及go
实现已经稳定,可以对接到框架中,以便框架组件对外暴露组件指标。
注意事项
- 指标、属性命名使用
OpenTelemetry
规范。 - 在
OpenTelemetry
里面的Attribute
,在Prometheus
里面叫做Label
。 - 由于
OpenTelemetry Metrics
里面的数据类型较多且复杂,框架参考Prometheus
的数据类型做了封装,简化使用。底层依旧使用OpenTelemery
规范。 - 指标值底层存储统一使用的是
float64
数据格式,因此在指标设计时指标值请尽量避免使用小数,以免出现精度问题。
字段说明
字段名称 | 字段说明 |
---|
指标名称 | 该名称将直接上报给存储端。默认使用. 符号分隔单词,如果是通过prometheus 协议暴露,那么. 符号将会被自动替换为_ 下划线符号。 |
指标类型 | 参考OpenTelemetry 规范,包含6 种指标类型: Counter UpDownCounter Histogram ObservableCounter ObservableUpDownCounter ObservableGauge
|
指标单位 | 用于定义该指标的单位,例如MB 、Bytes 、% 、个 、QPS 等等。 |
Help信息 | 该信息和指标名称将直接上报给存储端,并在上层使用时做指标描述展示。 |
中文描述 | 用于内部理解和维护该指标。 |
公共属性
所有的指标都会自动注入这些公共的Label
,方便在多节点部署的进程或者分布式服务中做区分。
Label名称 | Label描述 | Label示例 |
---|
os.host.name
| 服务所在的主机节点名称。 | 本机hostname 命令值 |
process.path
| 进程在当前系统上的的绝对路径。 | /app/main
|
文档列表
参考链接