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协议暴露,那么.符号将会被自动替换为_下划线符号。

指标类型

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

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

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

  • 参考OpenTelemetry规范,包含6种指标类型:

    • Counter
    • UpDownCounter
    • Histogram
    • ObservableCounter
    • ObservableUpDownCounter
    • ObservableGauge
    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