Prometheus数据模型
概述:
Prometheus的存储层在历史上有着惊人的性能表现,一个单台服务器每秒可以摄取多达100万个采样,数百万个时间序列,同时仅占用令人惊韩的少量磁盘空间,这种强大的特效依赖于强大的时序数据库
1、什么时TSDB?
TSDB(Time Series Database)时序数据库,我们可以简单的理解为一个优化后用来处理时间序列数据的软件,并且数据中的数组是由时间进行索引的。
2、时间序列数据库的特点
1、大部分时间都是写入操作
2、写入操作几乎时顺序添加的,大多数示函到达后都以时间排序。
3、写操作很少写入很久之前的数据,也很少更新数据。大多数情况在数据被采集到数秒或者数分钟后就会被写入数据库
4、删除操作一般为区块删除,选定开始的历史时间并指定后续的区块。很少单独删除某个时间或者分开的随机时间的数据。
5、基本数据大,一般超过内存大小。一般选取的只是某一小部分且规律,缓存几乎不起任何作用。
6、读操作是十分典型的升序或者降序的顺序读
7、高并发的读操作十分常见
3、数据模型
1、Prometheus从根本上存储的所有数据都是时间序列
具有时间戳的数据流只属于单个度量指标和该度量指标下的多个标签维度
2、样本
Prometheus会将所有采集到的样本数据以时间序列(time-series)的方式保存在内存数据库中,并且定时保存到硬盘上。time-series是按照时间戳和值的序列顺序存放的,我们称之为向量(vector)。每条time-series通过指标名称(metrics name)和一组标签集(labelset)命名。
3、Metric(指标)
从界面上看,每一个时间序列数据由metric度量指标名称和它的标签labels键值对集合唯一确定。这个metric度量指标名称指定监控目标系统的测量特征