Prometheus核心概念:一图了解Counter和Gauge两种数据指标类型的区别
目录
1 背景
2 何为Counter类型?
2.1 Counter定义
3 何为Gauge类型?
3.1 Gauge定义
4 Counter和Gauge的对比
1 背景
Prometheus整体架构分为Server端和Exporter端,而Exporter通常是基于官方的SDK开发(例如Go SDK)。
这里要明确一个概念:数据指标类型只是Client端的一个概念,用于维护Metric的生产,以方便在业务上有所区分。
而Server端是不区分数据类型的,因为所有的数据都是一种格式,也即时间序列 Metric<Label01,Label02> value, timestamp.
2 何为Counter类型?
Counter是一个累计类型的数据指标,它代表单调递增的计数器。
其值只能在重新启动时增加或重置为 0。
例如,您可以使用计数器来表示已响应的HTTP请求数,这个数一定是不断增长的。
2.1 Counter定义
参见Prometheus Go SDK
type Counter interface {MetricCollector// 加1Inc()// 增加一个非负的float64类型的值Add(float64)
}
可见Counter接口原始定义里,只对外暴露了Inc()和Add()这两个增加接口,目的很明确,只希望这个值只增不减。
但是有一点格外需要注意:
若Exporter重启了,则Counter类型的Metric的值,必然是重新从0开始。
3 何为Gauge类型?
Gauge是可以任意上下波动数值的指标类型。
也即Gauge的值可增可减,可升可降。
例如:机器的CPU使用率,可大可小。
3.1 Gauge定义
参见Prometheus Go SDK
type Gauge interface {MetricCollector// 指定为任意值Set(float64)// 加1Inc()// 减1Dec()// 加任意值,该值可正可负。<注意这里和Counter类型的定义是不同的>Add(float64)// 减任意值,该值可正可负Sub(float64)// 将值设置成当前时间戳,单位sSetToCurrentTime()
}
可见Gauge接口原始定义,非常灵活,可加可减,并无过多限制。
4 Counter和Gauge的对比
Counter类型HTTP请求量的变化情况,其中T4时刻服务刚重启完,此时指标值恢复从0开始。
Gauge类型指标CPU使用率的变化情况,通过使用Gauge的Set()方法,可将机器的CPU使用率放到指标里。
【推荐阅读】
- Prometheus核心概念:一图了解瞬时向量Instant vector和区间向量Range vector的区别
Prometheus源码分析:基于Go Client自定义的Exporter,是如何在Local存储Metrics的?
Prometheus核心概念:一图了解Counter和Gauge两种数据指标类型的区别相关推荐
- Prometheus核心概念:你是如何在项目中使用Summary类型的Metric的?
目录 1 背景 2 微服务项目中如何监测请求耗时呢? 3 使用Prometheus的Summary类型来统计HTTP请求耗时 3.1 实践:如何使用Summary类型Metric? 3.2 源码分析: ...
- Python中最常用的 14 种数据可视化类型的概念与代码
写在前面 收集数据后,需要对其进行解释和分析,以深入了解数据所蕴含的深意.而这个含义可以是关于模式.趋势或变量之间的关系. 数据解释是通过明确定义的方法审查数据的过程,数据解释有助于为数据赋予意义并得 ...
- html5的狭义概念,“资源”这一概念,可以有狭义和广义两种理解。狭义的资源是指...
[原文] "资源"这一概念,可以有狭义和广义两种理解.狭义的资源是指人类生产活动所需要的.在自然界存在的物质(材料)和动力的天然来源.广义的资源,则是指人类用来帮助从事一定活动.以 ...
- Prometheus — 核心概念
目录 文章目录 目录 时间序列 范围向量 多维度数据模型 PromQL 聚合运算 样本 instance 和 job Metric(指标)类型 时间序列 Prometheus 是一个时间序列存储系统, ...
- java 获取gif帧数_Java图片处理之获取gif图一帧图片的两种方法
前言 本文主要给大家介绍了关于Java获取gif图一帧图片的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.Java原生代码实现gif获取一帧图片 先看测试代码: pu ...
- swiper 定义放多少张图片,小程序swiper轮播图,自定义样式,两种方法:原生方法和bindchange方法;将点点改为数字(当前第几张 /总共几张);点击点点跳转当前图片...
一.点点部分 1.1.通过原生方法 (1)wxml文件 (2)wxss /* 轮播图部分 */ .swiperBar { width: 690rpx; height: 337rpx; margin: ...
- 有向无环图(DAG)拓扑排序的两种方法
如下图的DAG: 第一种: (1)从AOV网中选择一个没有前驱的顶点并且输出它: (2)从AOV网中删除该顶点,并且上去所有该顶点为尾的弧: (3)重复上述两步,直到全部顶点都被输出,或者AOV网中不 ...
- 【C 语言】C 语言 函数 详解 ( 函数本质 | 顺序点 | 可变参数 | 函数调用 | 函数活动记录 | 函数设计 ) [ C语言核心概念 ]
相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...
- 转: Spark 的核心概念 RDD
转自: https://juejin.im/post/6844903826953076750 1.RDD 概述 1.1 什么是 RDD ? RDD(Resilient Distributed Dat ...
最新文章
- Maven学习小结(七 生命周期[转])
- nginx无法加载css
- c++ 取两个链表的交集_使用C ++程序查找两个链表的交集
- 漫步最优化二十三——一维优化
- python3语法糖_python的语法糖
- 平面海报设计素材|几何风格极简流行风,继续
- 神策分析 Android SDK 网络模块解析 | 数据采集
- 《Context and Attribute Grounded Dense Captioning》笔记
- 解决echarts的title和legend重合问题(转)
- 数据中心机房监控大厅效果图
- NLP学习基础入门(上)
- StringBuffer字符串
- 编写Java程序,使用 Socket类模拟用户加入 QQ 群时,QQ 小冰发送欢迎消息的场景(用户充当客户端,QQ 小冰充当服务端)
- 法国计算机专业学校排名,法国计算机专业大学排名(2020年泰晤士)_快飞留学
- 2021年登高架设考试题及登高架设考试内容
- 算法--01背包问题(动态规划算法)	21-01-30
- 51nod 1422 沙拉酱前缀
- 一个按键精灵后台发送消息的脚本
- ubuntu 安装binutils 链接存下
- 有啊百度知道双色球红蓝走势图