Prometheus GCP服务发现配置触发无效主机名报错问题
问题根因
Prometheus 中__address__标签仅允许存放主机地址:端口格式的内容,不支持携带URL路径。你将指标路径直接拼接在__address__的重定义值中,不符合格式要求,因此触发了无效主机名报错。
解决方案
如果该GCP抓取任务下所有实例的指标路径统一为/my/metrics,直接在Job层级配置metrics_path参数即可,修改后的完整配置如下:
- job_name: 'gcp' metrics_path: /my/metrics gce_sd_configs: - project: my-project zone: us-west1-b relabel_configs: - source_labels: - '__meta_gce_public_ip' regex: '(.*)' target_label: __address__ replacement: '${1}:1234' - source_labels: - '__meta_gce_instance_id' target_label: 'instance' - source_labels: - '__meta_gce_instance_status' regex: 'TERMINATED' action: drop
如果不同实例的指标路径需要动态生成,可通过重命名标签修改__metrics_path__实现,示例如下:
relabel_configs: # 原有其他重命名规则不变,新增以下规则配置指标路径 - target_label: __metrics_path__ replacement: /my/metrics
验证方式
配置更新重启Prometheus后,访问Prometheus UI的Status > Targets页面,找到gcp对应的抓取任务,确认目标地址格式为公网IP:1234,指标路径为/my/metrics,无创建目标报错即可。
补充说明:Prometheus对所有服务发现的
__address__格式要求一致,你之前AWS配置能正常运行,大概率是之前的配置中已经单独配置了metrics_path参数,未将路径拼接在__address__中。
内容的提问来源于stack exchange,提问作者ZeroRez
相关产品推荐
相关产品推荐

