Prometheus 的 job 标签是什么?
job 标签来自 scrape_config 的 job_name,标识一组同类抓取目标(如所有 node exporter),与 instance 标签一起构成 Prometheus 最基本的两个维度。本文讲清 job 的作用、命名规范与常见用法。
job 标签的值就是 scrape_config 里的 job_name——它把同一类抓取目标归为一组(比如 job="node" 代表全部服务器节点),是 Prometheus 查询中最常用的分组维度。
job 与 instance 的分工
scrape_configs:
- job_name: 'node' # → job="node"
static_configs:
- targets: ['10.0.0.1:9100', '10.0.0.2:9100'] # → instance="10.0.0.1:9100" ...
job:这是什么类型的采集(节点、MySQL、应用 API);instance:具体是哪一个目标。
典型查询:up{job="node"} 看所有节点存活、topk(5, ... by (job)) 对比各类服务的负载。
命名规范建议
- 小写、下划线分词:
mysql_prod、api_gateway; - 一类组件一个 job,别一个 job 混杂不同端口/用途的目标;
- 环境差异用额外标签(
env="prod")而非塞进 job 名——但实践上mysql-prod这种命名也很常见,团队统一即可。
注意
- job 标签可以被 relabel 改写;
- 目标自身指标若带 job 标签,默认被采集侧的 job 覆盖(
honor_labels: true可反转)。
观测云对照
观测云中对应的维度是"数据来源/采集器"标签与全局自定义标签,指标体系按来源自动分类,等价于 job 的分组语义。
常见问题(FAQ)
Q:job 能省掉吗? 不能,job_name 是 scrape_config 的必填项。
Q:一个 job 能抓不同端口吗? 可以,targets 里各自写端口;但语义混杂时建议拆 job。