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

指标类型

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

  • Counter
  • UpDownCounter
  • Histogram
  • ObservableCounter
  • ObservableUpDownCounter
  • ObservableGauge

指标单位

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

指标类型

我们只用3种类型:CounterGaugeHistogramPrometheusOpentelemetry中的其他数据类型在没有痛点的前提下我们暂不做考虑。

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

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

  • Histogram: 直方图,用于按照buckets对统计数据在采集时做分类采集。例如:按照请求耗时对请求数量进行分段。https://prometheus.io/docs/practices/histograms/

    Help信息

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

    指标中文描述

    中文描述

    (可选)用于内部理解和维护该指标。

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

    采集逻辑

    公共属性

    (可选)指标实现时按照该逻辑实现。

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

    Label名称

    Label描述

    Label示例

    os.host.name

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

    本机hostname命令值

    process.path

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

    /app/main

    文档列表

    Children Display
    depth2
    excerptTypesimple

    HTTP Server🔥

    监控HTTP Server的相关指标。

    指标名称

    指标单位

    指标类型

    Help信息

    指标中文描述

    采集逻辑

    GRPC Server🔥

    监控Grpc Server的相关指标。

    数据库ORM🔥

    监控数据库服务的相关指标。

    数据库Redis

    监控Redis服务的相关指标。

    配置管理

    监控gcfg以及Adapter实现的相关指标。

    缓存控制

    监控gcache以及Adapter实现的相关指标。

    命令管理

    监控gcmd命令执行的指标。

    日志管理

    监控glog日志组件的指标。

    定时任务

    分为两块。

    gtimer

    gcron

    协程池

    监控grpool协程池指标。

    Golang

    Golang的基础指标,需要依赖比较重的第三方组件,例如prometheus SDK,所以这块通过社区组件实现。

    参考链接




    Panel
    titleContent Menu

    Table of Contents
    maxLevel110