Remote Write和Remote Read地址使用说明
更新时间:2024-09-05
操作场景
可观测监控 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】 并复制或点击【更多 Token】 使用已有 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 按钮。