Grafana 系列-統一展示-2-Prometheus 資料來源

東風微鳴發表於2023-05-07

系列文章

Grafana Prometheus 資料來源

Grafana 提供了對 Prometheus 的內建支援。本文會介紹 Grafana Prometheus(也包括 Prometheus 的相容實現,如 Thanos, Mimir 等) 資料來源的部分選項、變數 (Variable)、查詢 (Query) 和其他針對 Prometheus 資料來源的功能。

配置 Prometheus 資料來源

這裡選擇幾項重要的部分進行說明:

  • URL: Prometheus Server 的 URL, 示例為:http://prometheus.example.org:9090 (不需要 path 等資訊)
  • Manage alerts via Alerting UI: 啟用後可以整合 AlertManager, Grafana 可以顯示、管理 AlertManager。啟用後,可以選擇對應的 Prometheus AlertManager 資料來源
    • Alertmanager data source: 下拉框,選擇對應的 Prometheus AlertManager 資料來源
  • Type: Prometheus Server 的型別;包括 Prometheus, Cortex, Thanos, Mimir。當選擇時,版本欄位會嘗試使用 Prometheus buildinfo API 自動填充。一些普羅米修斯型別,如 Cortex,不支援這個 API,必須手動填入。
  • Disable metrics lookup: 勾選該選項將禁用查詢欄位自動完成中的度量選擇器和度量/標籤支援。如果你在較大的 Prometheus 例項中遇到效能問題,這將有所幫助。
  • Custom query parameters: 在 Prometheus 查詢 URL 中新增自定義引數。例如,timeoutpartial_responsededup、或max_source_resolution。多個引數應該用&連線起來。
    • 如:max_source_resolution=5m&timeout=10

配置 Exemplars

?Note:

在 Prometheus v2.26 及以上版本與 Grafana v7.4 及以上版本中可用。
前文 所述,Exemplars 用途是用於在 Metric -> Traces 無縫跳轉。

Grafana 7.4 及更高版本可以在 "Explore" 和 "Dashboards" 中顯示 Exemplars 資料與指標。Exemplars 資料將來自特定事件的 higher-cardinality metadata 與傳統的時間序列資料聯絡起來。

Exemplars 細節截圖

  • Internal link: 如果你有一個內部連結,啟用這個選項。啟用後,這將顯示資料來源選擇器。為你的示例資料選擇後端 tracing 資料儲存。如 Grafana 內部的 Tempo 資料來源或 Jaeger 資料來源。
  • Data source: (只有當你啟用 "Internal link"時才可見) 為你的示範資料選擇後端追蹤資料儲存。
  • URL: (只有當你禁用 "Internal link"時才可見) 定義了外部連結的完整 URL。你可以透過使用${__value.raw} 從該欄位中插值。
  • Label name: 為 exemplars 的 traceID 屬性新增一個名稱。

Prometheus YAML 配置示例

典型示例如下:(基於 Grafana 9)

apiVersion: 1

datasources:
  - name: Prometheus
    type: prometheus
    # Access mode - proxy (server in the UI) or direct (browser in the UI).
    access: proxy
    url: http://localhost:9090
    jsonData:
      httpMethod: POST
      manageAlerts: true
      prometheusType: Prometheus
      prometheusVersion: 2.37.0
      cacheLevel: 'High'
      exemplarTraceIdDestinations:
        # Field with internal link pointing to data source in Grafana.
        # datasourceUid value can be anything, but it should be unique across all defined data source uids.
        - datasourceUid: my_jaeger_uid
          name: traceID

        # Field with external link.
        - name: traceID
          url: 'http://localhost:3000/explore?orgId=1&left=%5B%22now-1h%22,%22now%22,%22Jaeger%22,%7B%22query%22:%22$${__value.raw}%22%7D%5D'

EOF

三人行, 必有我師; 知識共享, 天下為公. 本文由東風微鳴技術部落格 EWhisper.cn 編寫.

相關文章