Python微信订餐小程序课程视频
https://blog.csdn.net/m0_56069948/article/details/122285951
Python实战量化交易理财系统
https://blog.csdn.net/m0_56069948/article/details/122285941
Prometheus 包含一个存储在本地磁盘的时间序列数据库,同时也支持与远程存储系统集成,比如grafana cloud
提供的免费云存储API,只需将remote_write
接口信息填写在Prometheus配置文件即可。
本文不涉及远程存储接口内容,主要介绍Prometheus 时序数据的本地存储实现原理。
什么是时序数据?
在学习Prometheus TSDB存储原理之前,我们先来认识一下Prometheus TSDB、InfluxDB这类时序数据库的时序数据指的是什么?
时序数据通常以(key,value)的形式出现,在时间序列采集点上所对应值的集,即每个数据点都是一个由时间戳和值组成的元组。
identifier->(t0,v0),(t1,v1),(t2,v2)...
Prometheus TSDB的数据模型
<metric name>{<label name>=<label value>, ...}
具体到某个实例中
requests\_total{method="POST", handler="/messages"}
在存储时可以通过name label来标记metric name
,再通过标识符@来标识时间,这样构成了一个完整的时序数据样本。
----------------------------------------key-----------------------------------------------value---------
{__name__="requests\_total",method="POST", handler="/messages"} @1649483597.197 52
一个时间序列是一组时间上严格单调递增的数据点序列,它可以通过metric来寻址。抽象成二维平面来看,二维平面的横轴代表单调递增的时间,metrics
遍及整个纵轴。在提取样本数据时只要给定时间窗口和metric就可以得到value
时序数据如何在Prometheus TSDB存储?
上面我们简单了解了时序数据,接下来我们展开Prometheus TSDB存储(V3引擎)