从存储在Zookeeper中的node节点配置中获取target配置信息。
1、nerve_sd_config
官网地址:
Configuration | Prometheus
重新标记期间,下面的meta标签在目标上是可用的(可在prometheus上配置为指标lables):
__meta_nerve_path
: 在Zookeeper集群中的端节点全路径__meta_nerve_endpoint_host
: 端点的IP__meta_nerve_endpoint_port
: 端点的端口__meta_nerve_endpoint_name
: 端点的名称
prometheus 配置详情
scrape_configs:
- job_name: "node-exporter" //自定义job名称
scrape_interval: 5s
metrics_path: '/metrics' //采集的指标地址
nerve_sd_configs:
- servers: ['127.0.0.1:2181'] //zookeeper地址
paths: ['/prometheus/node'] //node path,自动发现
zookeeper节点配置,在node path下创建node节点,每个node节点只能配置一个target,多个则创建多个node节点即可
node内容
{
"host": "target的ip地址",
"port": 端口,
"name": "自己定义的名称(唯一标识)"
}
使用上述的meta标签可获取到node中配置的对应属性值,可在promethues标签替换配置中把属性值添加到指标的lables中。
2、serverset_sd_config
官网地址:
Configuration | Prometheus
重新标记期间,下面的meta标签在目标上是可用的(同上):
__meta_serverset_path
:Zookeeper中serverset成员节点的完整路径__meta_serverset_endpoint_host
:默认端点的主机__meta_serverset_endpoint_port
:默认端点的端口__meta_serverset_endpoint_host_<endpoint>
:给定端点的主机__meta_serverset_endpoint_port_<endpoint>
:给定端点的端口__meta_serverset_shard
: the shard number of the member__meta_serverset_status
: the status of the member
prometheus 配置详情
scrape_configs:
- job_name: "node-exporter" //自定义job名称
scrape_interval: 5s
metrics_path: '/metrics' //采集的指标地址
serverset_sd_configs:
- servers: ['127.0.0.1:2181'] //zookeeper地址
paths: ['/prometheus/node'] //node path,自动发现
zookeeper节点配置同上
node内容
{
"serviceEndpoint": {
"host": "target的ip地址",
"port": target的端口
},
"additionalEndpoints": {
"其他serviceEndpoint的key": {
"host": "其他target的ip地址",
"port": 其他target的端口
}
},
"status": "",
"shard": ""
}
// additionalEndpoints实际上就是serviceEndpoint的map集合
meta标签作用同上。
参考博客:
springboot集成zookeeper实现prometheus自动发现_prometheus zookeeper自动-优快云博客