日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

prometheus TSDB和外部存储系统

發布時間:2023/12/13 综合教程 40 生活家
生活随笔 收集整理的這篇文章主要介紹了 prometheus TSDB和外部存储系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、TSDB

prometheus可以以自定義格式在磁盤上的本地時序數據庫TSDB存儲時間序列數據。

./data
├── 01BKGV7JBM69T2G1BGBGM6KB12
│└── meta.json
├── 01BKGTZQ1SYQJTR4PB43C8PD98
│├── chunks
││└── 000001
│├── tombstones
│├── index
│└── meta.json
├── 01BKGTZQ1HHWHV8FBJXW1Y3W0K
│└── meta.json
├── 01BKGV7JC0RY8A6MACW02A2PJD
│├── chunks
││└── 000001
│├── tombstones
│├── index
│└── meta.json
├── chunks_head
│└── 000001
└── wal
├── 000000002
└── checkpoint.00000001
└── 00000000

存儲相關啟動參數:
--storage.tsdb.path:這決定了Prometheus寫入數據庫的位置。 默認為/data。
--storage.tsdb.retention.time:這決定了何時刪除舊數據。 默認為15d,不包括head block和最新生成的block
--storage.tsdb.retention.size:存儲塊可以使用的最大字節數,最早的數據將被刪除。 默認為0或禁用。
--storage.tsdb.wal-compression:啟用預寫日志(WAL)的壓縮,略微消耗CPU負載以大幅減少WAL大小。

文件塊block
采集的樣本按每兩個小時的時間段保存到一個目錄,該目錄就是一個block
當其保存了3小時數據時會被重新分為2個block(2h+1h)
每個block的名稱按照ULID原理生成,共128位(16字節),前48位是時間戳,后80位是隨機數,經過base32算法轉換成26字節可排序字符串
包含

chunks:保存壓縮后的時序數據,每個chunk大小為512MB

index:用于將度量名稱和標簽索引到塊文件中的時間序列

TOC表:index的入口,記錄index文件中其它表的位置。寫入其它表的數據前要先將8字節的當前偏移量作為該表的地址記錄。
總大小=8*6張表+4字節CRC校驗和
符號表:每個標簽只在磁盤存儲一份,使用標簽時直接使用其在符號表中的索引
時序列表:記錄該block中每個時序的標簽以及這些時序在該block中關聯的chunk塊
標簽索引表:將具有相同標簽名稱(key)的標簽組合到一起,從而形成標簽索引,然后根據標簽索引查找這些索引
postings表:posting的索引表。每個posting代表一個標簽和時序的關聯關系

meta.json

記錄block的元數據信息,用于對block進行維護(如刪除過期block、合并歷史block)
主要包括數據塊記錄樣本的起始時間、截至時間、樣本數、時序數、數據源

tombstones

用于對數據進行軟刪除
TSDB在刪除block數據塊時會將整個目錄刪除
但如果只刪除一部分數據塊的工作則通過tombstones進行刪除

尋找時序的邏輯:
(1)首先根據時間段找到所有block,并加載每個block的index文件
(2)直接讀取index文件最后52字節的TOC表,找到其它表
(3)先訪問符號表,確定指標標簽的名稱和值在索引表中的索引ID
(4)通過標簽索引表,找到標簽在postings表中的位置,從而找到具體的posting,
(5)找到標簽對應的時序后,根據時序表查找它在block中的具體位置

預寫日志WAL
第一個block(head block)存儲在內存中并且允許修改
通過預寫日志(WAL)防止崩潰,可以在崩潰后重新啟動Prometheus服務器時恢復。

預寫日志文件以128MB段存儲在wal目錄中。文件段以數字命名。
寫入單位是32KB的頁,一次性寫入的頁不會被跨段存儲

二、外部存儲

為支持支持外部存儲系統,引入了Adapter適配器,將prometheus讀寫請求轉化為第三方存儲遠端接口
目前支持的外部存儲系統包括:
https://prometheus.io/docs/operating/integrations/
通過HTTP POST請求+protobuf編碼方式調用Adapter的讀寫接口

總結

以上是生活随笔為你收集整理的prometheus TSDB和外部存储系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。