Prometheus Jobs and Instances
2018-05-17 本文已影响200人
xufeibuaa
翻译 原文链接
在Prometheus的术语里,一个能够被抓取监控数据的endpoint叫做Instance,通常可以认为是一个进程。有着同样目的的Instance集合叫做Job,比如:为了可伸缩性和可用性而复制的进程。
举例,一个api-server Job有着四个复制的Instance(可以理解为要监控一个服务,而这个服务为了高可用,扩容为了4个实例):
- 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从target抓取数据的时候,它自动为这些时间序列附加了如下标签,来标识这些数据:
- job: 配置的属于这个target的job name
- instance: target的URL中
<host>:<port>
部分
如果上面的标签已经在收集的数据中存在了,Prometheus会根据配置文件中honor_labels
配置来决定如何处理这些要被附加的标签。See the scrape configuration documentation for more information.
针对每一个Instance,Prometheus会自动产生、存储如下时间序列:
-
up{job="<job-name>", instance="<instance-id>"}
:如果这个instance健康(能够连通),则值置为1,否则置为0。 -
scrape_duration_seconds{job="<job-name>", instance="<instance-id>"}
:抓取Instance数据耗费的时间,单位秒。 -
scrape_samples_post_metric_relabeling{job="<job-name>", instance="<instance-id>"}
:该Instance的metrics重新打标签之后,剩余的采样条数。 -
scrape_samples_scraped{job="<job-name>", instance="<instance-id>"}
:target暴露的采样条数(即metrics条数)。
up
时间序列可用于标识某个Instance是否可被监控,可用于Instance的健康检查。