Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >时序数据库学习二:OpenMetrics规范

时序数据库学习二:OpenMetrics规范

作者头像
仙士可
发布于 2022-06-05 03:16:20
发布于 2022-06-05 03:16:20
2.2K0
举报
文章被收录于专栏:仙士可博客仙士可博客

OpenMetrics规范

OpenMetrics:一种云原生、高度可扩展的指标协议。它定义了大规模上报云原生指标的事实标准,同时支持文本表示协议和Protocol Buffers协议。虽然时间序列可以支持任意字符串或二进制数据,但RFC只针对和包括数字数据。得益于Prometheus的流行,作为Prometheus的监控数据采集方案,OpenMetrics可能很快会成为未来监控的业界标准。

目前绝大部分热门开源服务均有官方或非官方的exporter可供使用。实施者必须以 OpenMetrics 文本格式公开指标,以响应对给定进程或设备的文档化 URL 的简单 HTTP GET 请求。这个端点应该被称为“/metrics”。实施者还可以通过其他方式公开 OpenMetrics 格式的指标,例如通过 HTTP 定期将指标集推送到操作员配置的端点。

备注:事件(Event)与指标相反,单一事件发生在特定时刻;而指标是个时间序列。这个概念在运维域非常重要。

数据模型

OpenMetrics对数据模型有如下的定义:

- 度量值(value)   浮点数或者整数

- 时间戳(timestamp)  必须是以秒为单位的Unix Epoch

- 字符串(string) 必须是由有效的UTF8 字符组成

- 标签(Label) 由字符串组成的键值对.如果是下划线开头的标签名称,则是保留标签,一般不让使用

- 标签集(LabelSet) 它必须由标签组成,并且可以为空,标签名在标签集中是唯一的

- 指标点(MetricPoint) 每个MetricPoint 由一组值组成,具体取决于 MetricFamily 类型.  MetricPoint 不应该有明确的时间戳

- 指标(metric) 由MetricFamily 中的唯一 LabelSet定义. metrics必须包含一个或者多个MetricPoint 的列表.  给定MetricFamily 具有相同名称的度量标准应该在它们的LabelSet 中 具有相同的标签名称集. 

如果为一个Metric公开了多个MetricPoint,则其MetricPoint必须具有单调递增的时间戳

- 指标家族(MetricFamily)  一个MetricFamily 可以有0个或者多个指标

MetricFamily 必须具有名称,HELP,TYPE和UNIT 元数据. MetricFamily 中的每个Metric 都必须有一个唯一的LabelSet

MetricFamily 名称必须在MetricSet中是唯一的

- 后缀: OpenMetric定义了文本格式样例度量名称使用的后缀:

    - 计数器(Counter) :  _total   _created

    - 摘要(Summary) : _count  _sum _created

    - 直方图(Histogram): _count _sum _bucket _created

    - 测量直方图(GaugeHistogram) _gcount _gsum _bucket

    - 信息(Info) _info

- 指标集(MetricSet) 是OpenMetrics 公开的顶级对象, 它由MetricFamilies组成,每个MetricFamily名称必须是唯一的

相同的标签名称和值不应该出现在MetricSet中的每个Metric上

MetricSet中不需要特定的MetricFailies 排序

指标类型

OpenMetrics规范定义了8种指标类型

- Gauge (仪表读数,测量值) : 当前的测量值.  例如当前网速

- Counter (计数器): 计量离散事件. 例如计算从启动到现在的总流量.一般情况下,用户主要在乎的是增加的速度

- StateSet (状态集): 表示一系列相关的布尔值,也称为位集.  可以存储系统一些布尔状态,例如系统是否正常,某个参数开关状态

- Info (信息指标): 用于公开在流程生命周期内不应该更改的文本信息. 例如系统版本,接口类型

- Histogram (直方图): 测量离散时间的分布.  一般是http请求的延迟,io请求大小. 直方图MetricPoint 至少包含一个桶,并且应该包含Sum和Create值,每个桶必须有一个阈值和一个值

- GaugeHistogram (仪表直方图): 测量当前分布. 一般是项目在队列中请求的大小

- Summary (摘要): Summary 测量离散事件的分布. 并且可以在直方图计算过于昂贵或平均事件大小足够时使用. 

包含Count 或Sum值类型为Summary的Metric中的MetricPoint 应该具有Created的Timestamp值.这可以帮助摄取者区分新的指标和之前没有看到的长期运行的指标

- Unknown(未知) : 当无法确定来自3rd方系统的单个指标的类型时,可以使用未知,一般情况不能使用.

本文参考: https://zhuanlan.zhihu.com/p/410255386

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/05/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深入Prometheus设计-指标定义与分类(学习笔记)
<metric name>{<label name>=<label value>, ...},
DevOps云学堂
2019/10/18
2.8K0
第04期:Prometheus 数据采集(三)
爱可生上海研发中心成员,研发工程师,主要负责 DMP 平台监控告警功能的相关工作。
爱可生开源社区
2020/08/05
3K0
第04期:Prometheus 数据采集(三)
从零开始学习Prometheus监控报警系统
2016年,Prometheus被纳入了由谷歌发起的Linux基金会旗下的云原生基金会( Cloud Native Computing Foundation),并成为仅次于Kubernetes的第二大开源项目。自此,它成为了一个独立的开源项目,独立于任何公司进行维护。
万猫学社
2022/04/22
5380
从零开始学习Prometheus监控报警系统
第02期:Prometheus 数据采集(一
上篇文章(第01期:详解 Prometheus 专栏开篇)介绍了 Prometheus 的架构,本文开始将介绍 Prometheus 数据采集。本文首先会介绍采集数据的格式和分类,然后会给出一些使用上的建议。
爱可生开源社区
2020/05/29
1.9K0
时序数据库详解和使用说明_时序数据库 应用场景
什么是时间序列数据(Time Series Data,TSD,以下简称时序)从定义上来说,就是一串按时间维度索引的数据。用描述性的语言来解释什么是时序数据,简单的说,就是这类数据描述了某个被测量的主体在一个时间范围内的每个时间点上的测量值。它普遍存在于IT基础设施、运维监控系统和物联网中。
全栈程序员站长
2022/11/09
5K0
时序数据库详解和使用说明_时序数据库 应用场景
研究监控系统之prometheus
以前用过nagios和zabbix,nagios用起来太过原始,配置文件维护得很累,监控的图表也比较难看;zabbix的主要开发语言是C和PHP,要暴露一些自定义的监控指标较困难。网上一些云原生的项目都是用prometheus+grafana方案的,刚好花时间研究一下这个。
jeremyxu
2019/03/13
1.6K0
研究监控系统之prometheus
时序数据 mysql存储_【时序数据库】时序数据库介绍
时序数据库(Time Series Database)是用于存储和管理时间序列数据的专业化数据库。时序数据库特别适用于物联网设备监控和互联网业务监控场景。
全栈程序员站长
2022/11/10
4.3K0
时序数据 mysql存储_【时序数据库】时序数据库介绍
Opentelemetry Metrics API
注:为了理解的一致性,本文档将使用SDK规定的术语,不做翻译。注意区分Measurements和instrument的区别,前者指的是度量数据,后者是一个工具
charlieroro
2020/10/30
2.9K0
【Prometheus】Prometheus的样本
在 Prometheus 中,"样本"(Sample)是指时间序列数据的一个基本单位,包含了某个特定时刻的一个度量值。一个样本由以下几部分组成:
人不走空
2024/12/18
1481
Prometheus 入门基础知识总结
<metric name>{<label name>=<label value>, ...},
DevOps云学堂
2019/10/17
1.2K0
保姆级 Prometheus PromQL 讲解与实战操作
PromQL(Prometheus Query Language)为 Prometheus tsdb 的查询语言。是结合 grafana 进行数据展示和告警规则的配置的关键部分。
我的小碗汤
2023/03/20
12.5K0
保姆级 Prometheus PromQL 讲解与实战操作
监控指标能给我们解决什么问题
简单来说,度量就是用经过聚合统计后的高维度信息,以最简单直观的形式来总结复杂的过程,为监控、预警提供决策支持。
燃192
2023/04/11
6230
监控指标能给我们解决什么问题
开源时序数据库 InfluxDB
在选择时间序列数据库时,最重要的考虑因素是存储和查询性能、存储空间效率和灵活的可扩展性,而InfluxDB似乎是一个不错的选择。从时间序列数据库相关的趋势数据来看,它已经超越了以前常用的RRDTool和Graphite,以压倒性的速度增长
Tinywan
2024/06/04
5020
开源时序数据库 InfluxDB
时序数据库学习三:数据模型
当前主流TSDB的时序数据模型都是以标签(tag 或者称为label) 为主来唯一确定一个时间序列(一般也附加上指标名称,时间戳等).
仙士可
2022/06/05
2.1K0
时序数据库学习三:数据模型
从零实现一个时序数据库
时序数据库(TSDB: Time Series Database)大多数时候都是为了满足监控场景的需求,这里先介绍两个概念:
麒思妙想
2021/08/12
1.6K0
从零实现一个时序数据库
prometheus 基础概念
不管做什么事情,我们都需要做好充足的准备。盖房子需要打地基,根基不稳地动山摇。我们学习也一样,所以我们想学好一个东西必须根基要打牢。好了废话不多说了,我们来打下prometheus的根基。 ##数据模型 prometheus存储是时序数据(time-series),即按照相同时许(相同的名字和标签),以时间维度存储连续的数据的集合。
张琳兮
2019/11/04
1K1
揭秘可观测利器:腾讯云 APM 深度融合 OpenTelemetry 和 Prometheus,助力高效指标采集与处理
导语:文章主要介绍腾讯云应用性能监控(APM)服务端通过对数据的处理将 OpenTelemetry 指标转换成 Prometheus 指标,输出到腾讯云 Prometheus 监控服务中,做到让用户只需要进行简单的关联后,应用直接通过 OpenTelemetry API 上报指标,并提供多种可自定义的图表展示方式。
腾讯云可观测平台
2025/02/11
2480
揭秘可观测利器:腾讯云 APM 深度融合 OpenTelemetry 和 Prometheus,助力高效指标采集与处理
一文了解Prometheus
Prometheus 是一套开源的监控系统。设计思路来自于Google的borgmon 监控系统(由工作在 SoundCloud的Google 前员工在2012年创建)。
用户1278550
2020/02/20
2.5K0
influxDB初识,一个高效的时序数据库
InfluxDB 数据模型将时间序列数据组织到存储桶和测量中。一个桶可以包含多个测量值。测量包含多个标签和字段。
Jensen_97
2023/07/28
7.6K0
influxDB初识,一个高效的时序数据库
[译]Prometheus监控NodeJS SDK(prom-client)使用说明
github地址:https://github.com/siimon/prom-client
Cloudox
2021/11/23
2.8K0
推荐阅读
相关推荐
深入Prometheus设计-指标定义与分类(学习笔记)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档