阿里云Prometheus监控提供了HTTP API地址,您可以通过该地址将阿里云Prometheus实例的监控数据接入自建的Grafana,也可以获取阿里云Prometheus监控数据进行二次开发。本文介绍如何通过HTTP API地址接入自建的Grafana和获取阿里云Prometheus监控数据。

获取HTTP API地址

  1. 登录ARMS控制台
  2. 在左侧导航栏选择Prometheus监控 > Prometheus实例列表
  3. Prometheus监控页面顶部选择Prometheus实例所在的地域,并在目标集群右侧的操作列单击设置
  4. 在右侧页面单击设置页签。
  5. 设置页签上,根据需求复制公网或内网的HTTP API地址。
    说明 如果是云服务类型的Prometheus实例,请根据接入云服务的产品类型选择对应的HTTP API地址。
    pg_pm_settings_tab_agent_settings
  6. 可选:如果您需要提高Grafana数据读取的安全性,可以单击生成token,获取Prometheus实例的鉴权Token。
    注意 生成Token后,在Grafana中添加数据源时必须配置Token,否则无法读取Prometheus监控数据。
    复制Token

接入自建Grafana

  1. 配置Grafana数据源。
    1. 以管理员账号登录本地Grafana系统。
    2. 在左侧导航栏中选择Configuration > Data Sources
      说明 仅管理员可以看到此菜单。
    3. Data Sources页签上单击Add data source
    4. Add data source页面上单击Prometheus
    5. Settings页签的Name字段输入自定义的名称,在URL字段粘贴获取HTTP API地址中获得的HTTP API地址。
    6. 可选:Custom HTTP Headers区域单击+Add header,设置HeaderAuthorization,设置Value获取HTTP API地址中获取的鉴权Token。
      tab_settings
    7. 单击页签底部的Save & Test
  2. 验证结果。
    1. 登录本地Grafana系统。
    2. 在左侧导航栏中选择+ > Create
    3. New dashboard页面单击Add an empty panel
    4. Edit Panel页面的Query页签的下拉框中选择步骤1中添加的数据源,在A区域的Metrics字段输入指标名称并按回车。
      如果能显示出相应指标的图表,则说明操作成功。否则请检查填写的接口地址或Token是否正确,以及数据源是否有Prometheus监控数据。pg_explore_with_metrics

获取阿里云Prometheus监控数据

调用阿里云Prometheus监控数据的请求示例如下。更多使用HTTP API获取Prometheus监控数据的操作,请参见Prometheus HTTP API

GET {HTTP API}/api/v1/query

Accept: application/json
Content-Type: application/json
Authorization: {Token}

{
  "query":"arms_prometheus_target_interval_length_seconds_sum",
  "time":"1635302655",
  "timeout":"1000"

}
说明 {HTTP API}{Token}请替换为获取HTTP API地址中获取的HTTP API和鉴权Token。

返回示例:

{
    "status": "success",
    "data": {
        "resultType": "vector",
        "result": [
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "15s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "146655.24420603667"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "30s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "879810.747346541"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "20s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "73320.13578499513"
                ]
            }
        ]
    }