云原生监控系统Prometheus——Jobs 和 Instances
Jobs 和 Instances
在 Prometheus 中,任何被采集的目标,即每一个暴露监控样本数据的 HTTP 服务都称为一个实例(Instance),通常对应于单个进程。而具有相同采集目的的实例集合(比如为可伸缩性或可靠性而复制的流程)称为作业(Job)。
例如:以下四个复制实例的 API 服务器作业。
job: api-server
instance 1: 1.2.3.4:5671
instance 2: 1.2.3.4:5672
instance 3: 1.2.3.4:5673
instance 4: 1.2.3.4:5674
instance 5: 1.2.3.4:5675
也可以从 NodeExporter 暴露的服务器中采集监控数据的内容:
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
在上面的 Job 中,采用静态配置方式定义被监控目标,在当前主机上运行的 NodeExporter 监控的程序被称为一个实例(Instance),而具有相同目的这些实例,或者是同一个监控进程的多副本进程则通过每一个作业(Job)进程管理。除了静态配置每个 Job 采集实例地址外,Prometheus 还可以从自动发现的实例上采集监控数据。
- Job:配置目标所属的 job 名称。
- instance:被采样目标 URL 中的 <host>:<port> 部分。