
# 配置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实例](https://support.huaweicloud.com/usermanual-aom2/mon_01_0072.html)。
 #### 配置Remote Read地址
推荐配置自建Prometheus的prometheus.yml。具体操作如下：
1. 登录[AOM 2.0控制台](https://console.huaweicloud.com/aom2#/aom2/betaTest)。
2. 在导航栏选择"Prometheus监控 \> 实例列表"，在实例列表中单击目标Prometheus实例的实例名称，进入Prometheus实例详情页面。
3. 在左侧导航栏选择"设置"，在"服务地址"区域的"内网"或"公网"页签中，单击右侧![](https://support.huaweicloud.com/usermanual-aom2/zh-cn_image_0000002178008785.png)复制Remote Read Prometheus配置代码。（配置代码中的bearer_token取值为Access Code的值，请用户自行加密保存。）
   
   ```
   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
   ```
   
   
4. 将复制的Remote Read Prometheus配置代码添加到对应用户自建Prometheus的prometheus.yml文件中。
5. 重启用户自建的Prometheus服务。 
   即可在用户侧的自建Prometheus中查看AOM的Prometheus数据。
   
   
 
#### Remote Read完整配置项说明
\[\]中的配置项为可选项，本文展示Prometheus:v2.40版本配置，低版本可能缺少部分配置项，详见[prometheus官方文档](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_read)。
```
# 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 ]
```
