InfluxDB|How to Scrape metrics from Prometheus

瀏覽人次: 864
2022-06-08 更新

influxdb

Prometheus 與 InfluxDB 是兩個極其相似的產品,一樣都是源自於 Golang
開發而成的 TSDB,可以支援 1000 個節點以下的 metrics (大約),也都有許多
Dashboard Template 可以使用,而最大的差異為 Prometheus 並沒有原生支援
cluster。如果節點數超過 1000
個,或資料的保存以及系統持續性,是重要考量的前提下,Prometheus
因為是單節點的,可能就需要採用 Federation 的方式來達成 Scale,此時 InfluxDB
原生的 Cluster 可能就會是一個更好,又便利的選擇。

如果 Prometheus 已是既有的服務,並穩定在正式區運行,InfluxDB 也可以支援
Scrape Prometheus 的資料,並存放至 InfluxDB 的 Bucket 中,方法有三:

PS: 如果是使用 InfluxDB OSS 版本,採用 Telegraf 的方式較佳,其他方式都會有錯誤。

Use Telegraf

## Collect Prometheus formatted metrics 
[[inputs.prometheus]]
urls = ["http://example.com/metrics"]
metric_version = 2
## Write Prometheus formatted metrics to InfluxDB
[[outputs.influxdb_v2]]
urls = ["http://localhost:8086"]
token = "$INFLUX_TOKEN"
organization = "example-org"
bucket = "example-bucket"

Use prometheus.scrape()

import "experimental/prometheus"
prometheus.scrape(url: "http://my.prometheus.com/metrics")
|> to(bucket: "my-prometheus-bucket")

透過 Flux 語法的好處是,可以在 InfluxDB 的 Task 中,再額外加入 aggregation
邏輯,將 Prometheus
的資料多做一次整理,縮小資料量,是三個方法最有彈性的做法。

Use an InfluxDB scraper

進入到 Data (Load Data) > Scrapers 的頁面中,並帶入以下資訊

influxdb scraper

聯絡我們快速上手

快速跳轉目錄

✦ 集先鋒 Bimap – 企業建置高速穩定的海量日誌分析平台✦

集中不同的結構化資料和非結構化日誌,並進行關聯性的大數據整合,客製化儀表版、自訂事件告警、機器學習等等,以滿足各種大數據的應用場景和解決方案。