操作场景
Prometheus 提供了 Remote read 接口,该接口支持将一系列 Prometheus 协议的数据源组织为单一数据源查询。本文介绍如何使用自建 Prometheus 通过 Remote read 读取云托管 Prometheus 实例的数据。
Remote Read 配置
推荐配置 prometheus.yml
如下:
remote_read:
- url: 'http://prom_ip:prom_port/api/v1/read'
read_recent: true
basic_auth:
username: app_id
password: token
推荐使用 Basic Auth 方式访问云托管 Prometheus 实例,username 为账号 AppID ,password 为 Prometheus 控制台 > 基本信息 > 服务地址中获取的 Token。 注意事项
配置 Remote read 的 Prometheus 需谨慎配置 global:external_labels
:
external_labels 会被附加在 Remote read 的查询条件中,不正确的 label 可能导致查询不到需要的数据。
filter_external_labels: false
配置项可以避免将 external_labels 加入查询条件(v2.34 版本以上支持)。
避免出现相同的 series:
对于完全相同的两个 series,Prometheus 会在查询合并时在每个时间点在随机一个 series 取值组成新的 series 作为查询结果,这会导致查询结果不准确。
在 Prometheus 的设计理念中不存在多副本冗余存储的情况,所以不会对这种场景提供支持。
Remote read 完整配置项
url: <string>
[ name: <string> ]
required_matchers:
[ <labelname>: <labelvalue> ... ]
[ remote_timeout: <duration> | default = 1m ]
headers:
[ <string>: <string> ... ]
[ read_recent: <boolean> | default = false ]
basic_auth:
[ username: <string> ]
[ password: <secret> ]
[ password_file: <string> ]
authorization:
[ type: <string> | default: Bearer ]
[ credentials: <secret> ]
[ credentials_file: <filename> ]
oauth2:
[ <oauth2> ]
tls_config:
[ <tls_config> ]
[ proxy_url: <string> ]
[ follow_redirects: <boolean> | default = true ]
[ enable_http2: <bool> | default: true ]
[ filter_external_labels: <boolean> | default = true ]
本页内容是否解决了您的问题?