Remote Write和Remote Read地址使用说明
更新时间:2025-05-06
操作场景
Prometheus监控CProm 提供了 Remote Write
和 Remote Read
两个标准接口,Remote Write 和 Remote Read 分别将 Prometheus 的实时数据写入外部存储、从外部存储读取历史数据,实现存储与计算的解耦,支持长期数据保留和高可用架构。
本文以开源 Prometheus 将监控数据写入百度云 Prometheus 监控服务为例,介绍如何使用 Remote Write 和 Remote Read 地址。
注意事项
- Remote Write 和 Remote Read 接口暂不支持 HTTP/2。
- 需要有开源的 Prometheus 并正常运行。
- 对应 Prometheus 监控实例必须处于运行中的状态。
步骤一:获取Remote Write和Remote Read地址
- 已创建百度 Prometheus 监控实例
- 登录百度智能云控制台,选择“产品服务>容器> Prometheus 监控服务”。
- 单击对应监控实例跳转对应的实例信息页。
- 在监控实例页面复制 Remote Write 和 Remote Read 公网地址。
- 单击【生成 Token】 并复制或点击【更多 Token】 使用已有 Token。
步骤二:配置开源Prometheus
- 安装 Prometheus,安装方法请参见 Prometheus 下载地址。
- 打开 Prometheus.yaml 配置文件,并在文件末尾增加以下内容,将 remote_write 链接替换为上文中获取的地址,然后保存文件。
YAML
1global:
2 scrape_interval: 15s
3 evaluation_interval: 15s
4scrape_configs:
5 - job_name: 'prometheus'
6 static_configs:
7 - targets: ['localhost:9090']
8remote_write:
9 // 替换为您的Remote Write地址。
10 - url: "https://xxxxxxxxxxxxxxxxxxx.baidubce.com/insert"
11 headers:
12 instanceId: xxx // 替换为对应监控实例的ID。
13 authorization: xxxxx // 对应监控实例生成的Token,该Token去掉前缀Bearer。
14remote_read:
15 // 替换为您的Remote Read地址。
16 - url: "http://ts-xxxxxxxxxxxx.baidubce.com:/prom_read"
17 read_recent: true
18 headers:
19 instanceId: xxx // 替换为对应监控实例的ID。
20 authorization: xxxxx // 对应监控实例生成的Token,该Token去掉前缀Bearer。
注意:
- 配置 Remote Read 的 Prometheus 需谨慎配置 global:external_labels:external_labels 会被附加在 Remote Read 的查询条件中,不正确的 label 可能导致查询不到需要的数据。
- 避免出现相同的 series:对于完全相同的两个 series,Prometheus 会在查询合并时在每个时间点在随机一个 series 取值组成新的 series 作为查询结果,这会导致查询结果不准确。
步骤三:Remote Write 完整配置项
说明: []中的配置项为可选项(本文展示 Prometheus:v2.40 版本配置,低版本可能缺少部分配置项,Remote Read 的完整配置项详见 Prometheus 官方文档。
Plain Text
1# remote write 目标 prometheus 实例的 api 地址
2url: <string>
3
4# 标识一个唯一的 remote write 配置名称
5[ name: <string> ]
6
7# remote 查询超时时间
8[ remote_timeout: <duration> | default = 30s ]
9
10# 自定义 remote write 请求中附带的 headers,无法覆盖 prometheus 原本添加的 headers
11headers:
12 [ <string>: <string> ... ]
13
14# 为每个 remote 请求添加 Authorization header,password password_file 二选一
15basic_auth:
16 [ username: <string> ]
17 [ password: <secret> ]
18 [ password_file: <string> ]
19
20# 自定义 Authorization header 配置
21authorization:
22 # 认证类型
23 [ type: <string> | default: Bearer ]
24 # 认证密钥,credentials credentials_file 二选一
25 [ credentials: <secret> ]
26 # 密钥从文件中获取
27 [ credentials_file: <filename> ]
28
29# OAuth2.0认证,不能与 basic_auth authorization 同时使用oauth2:
30 [ <oauth2> ]
31
32# TLS 配置
33tls_config:
34 [ <tls_config> ]
35
36# 代理 URL
37[ proxy_url: <string> ]
38
39# 查询请求是否接受3XX 跳转
40[ follow_redirects: <boolean> | default = true ]
41
42# 是否启用 HTTP2
43[ enable_http2: <bool> | default: true ]
44
45metadata_config:
46 # 是否将度量元数据发送到远程存储
47 [ send: <boolean> | default = true ]
48 # 将度量元数据发送到远程存储的频率
49 [ send_interval: <duration> | default = 1m ]
50 # 每次发送的最大样本数
51 [ max_samples_per_send: <int> | default = 500]
步骤四:查看写入的开源Prometheus的监控数据
运行开源 Prometheus 监控后,您可以在你对应监控实例中内置的 Grafana 大盘上查看监控数据。
- 登录 Prometheus 控制台。
- 在左侧导航栏单击 Grafanan 服务,进入对应的监控实例的 Grafana 服务,单击左侧导航栏 Explore。
- 在页面上方区域选择对应配置的 Data Source,单击 Metrics,在下拉指标列表中选择配置 Prometheus 采集的指标,单击右上方 Run query 按钮。