任務和例項

在 Prometheus 的術語中,您可以抓取的端點被稱為例項,通常對應一個單一的程序。而具有相同目的(例如,為了可擴充套件性或可靠性而複製的程序)的例項集合被稱為任務

例如,一個具有四個複製例項的 API 伺服器任務:

  • 任務:api-server
    • 例項 1:1.2.3.4:5670
    • 例項 2:1.2.3.4:5671
    • 例項 3:5.6.7.8:5670
    • 例項 4:5.6.7.8:5671

自動生成的標籤和時間序列

當 Prometheus 抓取目標時,它會自動向抓取的時間序列新增一些標籤,用於標識被抓取的目標:

  • job:目標所屬的已配置任務名稱。
  • instance:被抓取目標的 URL 中的 <host>:<port> 部分。

如果被抓取的資料中已經存在這些標籤中的任何一個,則其行為取決於 honor_labels 配置選項。有關更多資訊,請參閱 抓取配置文件

對於每次例項抓取,Prometheus 會在以下時間序列中儲存一個樣本

  • up{job="<job-name>", instance="<instance-id>"}:如果例項健康(即正常可達)則為 1,如果抓取失敗則為 0
  • scrape_duration_seconds{job="<job-name>", instance="<instance-id>"}:抓取持續時間。
  • scrape_samples_post_metric_relabeling{job="<job-name>", instance="<instance-id>"}:應用指標重置標籤後剩餘的樣本數。
  • scrape_samples_scraped{job="<job-name>", instance="<instance-id>"}:目標暴露的樣本數量。
  • scrape_series_added{job="<job-name>", instance="<instance-id>"}:本次抓取中新增時間序列的近似數量。v2.10 新增

up 時間序列對例項可用性監控非常有用。

透過 extra-scrape-metrics 特性標誌,可以使用以下幾個額外的指標:

  • scrape_timeout_seconds{job="<job-name>", instance="<instance-id>"}:為目標配置的 scrape_timeout
  • scrape_sample_limit{job="<job-name>", instance="<instance-id>"}:為目標配置的 sample_limit。如果沒有配置限制,則返回 0。
  • scrape_body_size_bytes{job="<job-name>", instance="<instance-id>"}:最近一次抓取響應(如果成功)的未壓縮大小。由於超出 body_size_limit 而導致抓取失敗時報告 -1,其他抓取失敗則報告 0。

本頁內容