任務和例項
在 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
- 例項 1:
自動生成的標籤和時間序列
當 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。