配置Remote Read地址实现自建Prometheus读取AOM的Prometheus数据
Prometheus监控提供了Remote read接口,该接口支持将一系列Prometheus协议的数据源组织为单一数据源查询。本节介绍如何使用自建Prometheus,通过Remote read接口读取AOM Prometheus实例的数据。
约束与限制
配置Remote read的Prometheus需谨慎配置“global:external_labels**:”,external_labels会被附加在Remote read的查询条件中,不正确的label可能导致查询不到需要的数据。
您可以将配置项配置为“filter_external_labels: false”(Prometheus:v2.34版本以上),以避免将external_labels加入查询条件。
前提条件
服务已接入可观测Prometheus 监控。具体操作请参见:管理Prometheus实例。
配置Remote Read地址
推荐配置自建Prometheus的prometheus.yml。具体操作如下:
- 登录AOM 2.0控制台。
- 在左侧导航栏选择“Prometheus监控 > 实例列表”,在实例列表中单击目标Prometheus实例的实例名称,进入Prometheus实例详情页面。
- 在左侧导航栏选择“设置”,在“服务地址”区域的的“内网”或“公网”页签中,单击右侧
复制Remote Read Prometheus配置代码。
remote_read: - url: 'https://aom.{region_name}.{Site domain name suffix}/v1/{project_id}/{prometheus_instance_id}/api/v1/read' tls_config: insecure_skip_verify: true bearer_token: '8H**LP' read_recent: true
- 将复制的Remote Read Prometheus配置代码添加到对应用户自建Prometheus的prometheus.yml文件中。
- 重启用户自建的Prometheus服务。
即可在用户侧的自建Prometheus中查看AOM的Prometheus数据。
Remote Read完整配置项说明
[]中的配置项为可选项,本文展示 Prometheus:v2.40 版本配置,低版本可能缺少部分配置项,详见prometheus官方文档。
# remote read 目标 prometheus 实例的 api 地址 url: <string> # 标识一个唯一的 remote read 配置名称 [ name: <string> ] # 查询 promql 中必须包含以下 label 过滤条件才会进行 remote read 查询 required_matchers: [ <labelname>: <labelvalue> ... ] # remote read 查询超时时间 [ remote_timeout: <duration> | default = 1m ] # 自定义 remote read 请求中附带的 headers,无法覆盖 prometheus 原本添加的 headers headers: [ <string>: <string> ... ] # prometheus remote read时,是否直接从本地存储读取指标 [ read_recent: <boolean> | default = false ] # 为每个 remote read 请求添加 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 ] # 是否在 remote read 时附加 external_labels [ filter_external_labels: <boolean> | default = true ]