## Jobs和Instances(任務和實例)
---
就Prometheus而言,pull拉取采樣點的端點服務稱之為**instance**。多個這樣pull拉取采樣點的instance, 則構成了一個**job**
例如, 一個被稱作**api-server**的任務有四個相同的實例。
- job: `api-server`
- instance 1:`1.2.3.4:5670`
- instance 2:`1.2.3.4:5671`
- instance 3:`5.6.7.8:5670`
- instance 4:`5.6.7.8:5671`
### 自動化生成的標簽和時間序列
當Prometheus拉取一個目標, 會自動地把兩個標簽添加到度量名稱的標簽列表中,分別是:
- **job**: 目標所屬的配置任務名稱**api-server**。
- **instance**: 采樣點所在服務: `host:port`
如果以上兩個標簽二者之一存在于采樣點中,這個取決于`honor_labels`配置選項。詳見[文檔](https://prometheus.io/docs/operating/configuration/#%3Cscrape_config%3E)
對于每個采樣點所在服務instance,Prometheus都會存儲以下的度量指標采樣點:
- `up{job="[job-name]", instance="instance-id"}`: up值=1,表示采樣點所在服務健康; 否則,網絡不通, 或者服務掛掉了
- `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_samples_post_metric_relabeling` 和 `scrape_samples_scraped`的值好像是一樣的。還是這兩個值沒有理解
`up`度量指標對服務健康的監控是非常有用的。