(四)Prometheus数据存储

一、存储接口

Prometheus提供了两种存储方式,分别为本地存储和与远端存储。为了兼容本地存储和远程存储,Prometheus提供了fanout接口。

二、本地存储

2.1 核心概念

Prometheus的本地存储为Promethazine TSDB。TSDB的设计有两个核心:block和WAL,而block有包含chunk、index、meta.json、tombstones。

  • chunks:用于保存压缩后的时序数据。每个chunk的大小为512MB。
  • index:是为了对监控数据进行快速检索和查询而设计的,主要用来记录chunk中时序的偏移位置。
  • tombstone:用于数据进行软删除。
  • meta.json:记录block的元数据信息,主要记录一个数据块记录样本的 起始时间(mintime)、截止时间(maxtime)、样本数、时序数和数据源等信息。

WAL(Writer-ahead logging,预写日志)是关系型数据库中利用日志来实现食物性和持久性的一种技术,既在进行某个操作之前先将这个事情记录下来,以便之后对数据进行回滚、重试等操作并保证数据可靠性。

三、远端存储

面对更多历史数据的持久化,Prometheus单纯依靠本地存储远不足以应对,围殴此引入远端存储。为了适应不同远端存储,Prometheus并没有选择对接各种存储,二十定义一套读写存储接口,并引入Adapter适配器。
目前已经实现Adapter的远程存储主要包括:InfluxDB、OpenTSDB 、CreateDB、TiKV、Cortex、M3DB。

posted @ 2022-05-26 10:31  比特边界  阅读(712)  评论(0编辑  收藏  举报