iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0
DevOps

時間序列資料庫探討 - Prometheus系列 第 30

Prometheus - PromQL 資料清理和相關產品

  • 分享至 

  • xImage
  •  

上篇提問

  • Prometheus 的效能瓶頸,相關產品如何解決?
  • Prometheus 的特色與其他時間序列資料庫的異同?

如何處理誤產生的時間序列資料?

上篇提到 Prometheus client 可能由於人為疏失產生錯誤的標籤,從而造成時間序列數爆增,如 endpoint=/query_order/?order_id=314。這時切勿直接刪除誤標的時間序列,更不要進 /data 刪除整個時間區間的資料。
細心的清理工作,可以透過以下方式進行:

  1. 用 API /label 列出錯誤的時間序列
  2. 視錯誤情形使用
    • label_replace 函數,將錯誤的標籤替換為正確的標籤,如 label_replace(http_requests_total, "endpoint", "$1", "endpoint", "/query_order/?order_id=(\d+)")
    • promtool tsdb create-blocks-from rules 指令,以規則檔案修正時間序列。
  3. 最後才是 /admin/tsdb/delete_series/admin/tsdb/clean_tombstones 清理檔案

其他時間資料庫

Thanos

Thanos 主要增進查詢效能的方式是分治,PromQL 引擎會將長時間範圍的查詢切給不同線程處理。達成幾乎線性的加速。
另外 Thanos 還可以對較舊的資料做降採樣(有損資料壓縮),以降低儲存空間和查詢時的 IO。但需注意降採樣是有損的。比方說有一個計數器代表成交的訂單數量,如果樣本頻率從 15 秒變成 1 天,那未來就只能讀取每天(某固定時間點到隔天同一時間點)的訂單數量,無從得知白天或晚上生意比較好。

OpenTSDB

OpenTSDB 則是採用 Hadoop 或 HBase。Hadoop 和 HBase 自帶分散式儲存和運算的功能。分治的維度不限於時間區段,寫入的效能上限因此較高。

MongoDB


上一篇
Prometheus - PromQL 效能和時間序列資料庫的特色
系列文
時間序列資料庫探討 - Prometheus30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言