Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
背景介绍
目前Opentelemtry
的Metrics
标准以及go
实现已经稳定,可以对接到框架中,以便框架组件对外暴露组件指标。
指标梳理
字段说明:注意事项
- 指标、属性命名使用
OpenTelemetry
规范。 - 在
OpenTelemetry
里面的Attribute
,在Prometheus
里面叫做Label
。 - 由于
OpenTelemetry Metrics
里面的数据类型较多且复杂,框架参考Prometheus
的数据类型做了封装,简化使用。底层依旧使用OpenTelemery
规范。 - 指标值底层存储统一使用的是
float64
数据格式,因此在指标设计时指标值请尽量避免使用小数,以免出现精度问题。
字段说明
字段名称 | 字段说明 |
---|---|
指标名称 |
该名称将直接上报给存储端。默认使用 | |
指标类型 | 参考
|
指标单位 | 用于定义该指标的单位,例如 |
指标类型
我们只用3
种类型:Counter
、Gauge
、Histogram
。Prometheus
或Opentelemetry
中的其他数据类型在没有痛点的前提下我们暂不做考虑。
Counter
: (常用)只增不减的数值指标。例如请求数、错误数等。Gauge
:(常用)可增可减的数值指标。例如:CPU
、Memory
等。
Histogram
: 直方图,用于按照buckets
对统计数据在采集时做分类采集。例如:按照请求耗时对请求数量进行分段。https://prometheus.io/docs/practices/histograms/
Help信息 | 该信息和指标名称将直接上报给存储端,并在上层使用时做指标描述展示。 |
中文描述 |
用于内部理解和维护该指标。 |
公共属性
(可选)指标实现时按照该逻辑实现。
所有的指标都会自动注入这些公共的Label
,方便在多节点部署的进程或者分布式服务中做区分。
Label名称 | Label描述 | Label示例 |
---|---|---|
| 服务所在的主机节点名称。 | 本机 |
| 进程在当前系统上的的绝对路径。 |
|
文档列表
Children Display | ||||
---|---|---|---|---|
|
HTTP Server🔥
监控HTTP Server
的相关指标。
指标名称
指标单位
指标类型
Help信息
指标中文描述
采集逻辑
GRPC Server🔥
监控Grpc Server
的相关指标。
指标名称
指标单位
指标类型
Help信息
指标中文描述
采集逻辑
数据库ORM🔥
监控数据库服务的相关指标。
指标名称
指标单位
指标类型
Help信息
指标中文描述
采集逻辑
数据库Redis
监控Redis
服务的相关指标。
指标名称
指标单位
指标类型
Help信息
指标中文描述
采集逻辑
配置管理
监控gcfg
以及Adapter
实现的相关指标。
指标名称
指标单位
指标类型
Help信息
指标中文描述
采集逻辑
缓存控制
监控gcache
以及Adapter
实现的相关指标。
指标名称
指标单位
指标类型
Help信息
指标中文描述
采集逻辑
命令管理
监控gcmd
命令执行的指标。
指标名称
指标单位
指标类型
Help信息
指标中文描述
采集逻辑
日志管理
监控glog
日志组件的指标。
指标名称
指标单位
指标类型
Help信息
指标中文描述
采集逻辑
定时任务
分为两块。
gtimer
指标名称
指标单位
指标类型
Help信息
指标中文描述
采集逻辑
gcron
指标名称
指标单位
指标类型
Help信息
指标中文描述
采集逻辑
协程池
监控grpool
协程池指标。
指标名称
指标单位
指标类型
Help信息
指标中文描述
采集逻辑
Golang
Golang
的基础指标,这里氛围两块:
- 依赖标准库runtime,获取基础的运行时指标。
- 需要依赖比较重的第三方组件,例如
prometheus SDK
,可以考虑是否通过社区组件实现。
指标名称
指标单位
指标类型
Help信息
指标中文描述
参考链接
- https://opentelemetry.io/docs/specs/otel/metrics/data-model/
- https://github.com/open-telemetry/opentelemetry-go/tree/main/metric
- https://github.com/hertz-contrib/obs-opentelemetry/blob/main/README_CN.md
- https://www.cloudwego.io/zh/docs/hertz/tutorials/observability/open-telemetry/
Panel | ||||
---|---|---|---|---|
| ||||
|