Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

背景介绍

目前OpentelemtryMetrics标准以及go实现已经稳定,可以对接到框架中,以便框架组件对外暴露组件指标。

注意事项

  • 指标、属性命名使用OpenTelemetry规范。
  • OpenTelemetry里面的属性,在里面的Attribute,在Prometheus里面叫做Label
  • 由于OpenTelemetry Metrics里面的数据类型较多且复杂,框架参考Prometheus的数据类型做了封装,简化使用。底层依旧使用OpenTelemery规范。
  • 指标值底层存储使用的是float64数据格式,因此在指标设计时指标值请尽量避免使用小数,以免出现精度问题。

字段说明

字段名称

字段说明

指标名称

该名称将直接上报给存储端。默认使用.符号分隔单词。

指标类型

我们只用

简化复杂度,参考Prometheus,我们只用3种类型:CounterGaugeHistogram

PrometheusOpentelemetry中的其他数据类型在没有痛点的前提下我们暂不做考虑。

  • Counter: (常用)只增不减的数值指标。例如请求数、错误数等。

  • Gauge:(常用)可增可减的数值指标。例如:CPUMemory等。

  • Histogram: 直方图,用于按照buckets对统计数据在采集时做分类采集。

指标单位

用于定义该指标的单位,例如MBBytes%QPS等等。

Help信息

该信息和指标名称将直接上报给存储端,并在上层使用时做指标描述展示。

中文描述

用于内部理解和维护该指标。

公共属性

所有的指标都会自动注入这些公共的Label,方便在多节点部署的进程或者分布式服务中做区分。

Label名称

Label描述

Label示例

os.host.name

服务所在的主机节点名称。

本机hostname命令值

process.path

进程在当前系统上的的绝对路径。

/app/main

文档列表

Children Display
depth2
excerptTypesimple

参考链接




Panel
titleContent Menu

Table of Contents
maxLevel10