Remote Write和Remote Read地址使用说明
更新时间:2023-12-04
操作场景
可观测监控Prometheus提供了Remote Write和Remote Read两个标准接口,通过该接口支持远程将一系列 Prometheus 协议的数据远程存储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并复制。
步骤二:配置Prometheus
- 安装Prometheus,安装方法请参见prometheus下载地址。
- 打开Prometheus.yaml配置文件,并在文件末尾增加以下内容,将remote_write链接替换为上文中获取的地址,然后保存文件。
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
remote_write:
// 替换为您的Remote Write地址。
- url: "https://xxxxxxxxxxxxxxxxxxx.baidubce.com/insert"
headers:
instanceId: xxx // 替换为对应监控实例的ID。
authorization: xxxxx // 对应监控实例生成的Token,该Token去掉前缀Bearer。
remote_read:
// 替换为您的Remote Read地址。
- url: "http://ts-xxxxxxxxxxxx.baidubce.com:/prom_read"
read_recent: true
headers:
instanceId: xxx // 替换为对应监控实例的ID。
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官方文档。
# remote write 目标 prometheus 实例的 api 地址
url: <string>
# 标识一个唯一的 remote write 配置名称
[ name: <string> ]
# remote 查询超时时间
[ remote_timeout: <duration> | default = 30s ]
# 自定义 remote write 请求中附带的 headers,无法覆盖 prometheus 原本添加的 headers
headers:
[ <string>: <string> ... ]
# 为每个 remote 请求添加 Authorization header,password password_file 二选一
basic_auth:
[ username: <string> ]
[ password: <secret> ]
[ password_file: <string> ]
# 自定义 Authorization header 配置
authorization:
# 认证类型
[ type: <string> | default: Bearer ]
# 认证密钥,credentials credentials_file 二选一
[ credentials: <secret> ]
# 密钥从文件中获取
[ credentials_file: <filename> ]
# OAuth2.0认证,不能与 basic_auth authorization 同时使用oauth2:
[ <oauth2> ]
# TLS 配置
tls_config:
[ <tls_config> ]
# 代理 URL
[ proxy_url: <string> ]
# 查询请求是否接受3XX 跳转
[ follow_redirects: <boolean> | default = true ]
# 是否启用 HTTP2
[ enable_http2: <bool> | default: true ]
metadata_config:
# 是否将度量元数据发送到远程存储
[ send: <boolean> | default = true ]
# 将度量元数据发送到远程存储的频率
[ send_interval: <duration> | default = 1m ]
# 每次发送的最大样本数
[ max_samples_per_send: <int> | default = 500]
步骤四:查看写入的开源Prometheus的监控数据
运行开源Prometheus监控后,您可以在你对应监控实例中内置的Grafana大盘上查看监控数据。
- 登录Prometheus控制台。
- 在左侧导航栏单击Grafanan服务,进入对应的监控实例的Grafana服务,单击左侧导航栏Explore。
- 在页面上方区域选择对应配置的Data Source,单击Metrics,在下拉指标列表中选择配置Prometheus采集的指标,单击右上方Run query按钮。