Versions Compared
compared with
Key
- This line was added.
- This line was removed.
- Formatting was changed.
OpenTelemetry Metrics
是一个关于如何收集、聚合和发送指标到 OpenTelemetry APM
工具(如 Uptrace
或 Prometheus
)的标准。
Instruments
Instrument
是一种特定类型的指标(例如,counter, gauge, histogram
),用于收集关于应用程序行为的特定方面的数据。
您通过创建具有以下功能的 instrument
来捕获测量结果:
- 指标名称,例如
http.server.duration
。 - 指标类型,例如
Histogram
。 - 指标单位,例如
milliseconds
或bytes
。 - 指标描述,可选。
Timeseries
(时间序列)
一个 instrument
可以生成多个时间序列。时间序列是一个具有唯一属性集的指标,例如,对于相同的指标名称,每个主机都有一个单独的时间序列。
Synchronous
(同步)
Synchronous instruments
与它们正在测量的操作一起被调用。例如,为了测量请求的数量,只要有新的请求,就可以调用 counter.Add(ctx, 1)
。同步测量可以具有关联的 trace context
。
Instrument | Properties | Aggregation | Example |
---|---|---|---|
Counter | 可递增 | sum -> delta | 请求数,请求大小 |
UpDownCounter | 可增减 | last value -> sum | 连接数 |
Histogram | 可分组的 | histogram | 请求持续时间、请求大小 |
Asynchronous
(异步)
Asynchronous instruments
定期调用回调函数来收集测量值。例如,可以使用观察器定期测量内存或 CPU
的使用情况。Asynchronous
测量不能具有关联的 trace context
。
Instrument Name | Properties | Aggregation | Example |
---|---|---|---|
CounterObserver | 可递增 | sum -> delta | CPU time |
UpDownCounterObserver | 可加的可增减 | last value -> sum | Memory usage (bytes) |
GaugeObserver | 可分组的 | last value -> none/avg | Memory utilization (%) |
使用示例
参考链接
- https://opentelemetry.io/docs/specs/otel/metrics/data-model/
- https://github.com/open-telemetry/opentelemetry-go/tree/main/metric
Panel | ||||
---|---|---|---|---|
| ||||
|