天翼云Prometheus监控服务提供了HTTP API地址,您可以在自建的Grafana中接入Prometheus监控数据,或在二次开发过程中通过Prometheus API获取监控数据。
前提条件
已创建Prometheus 实例。
客户端网络已经与暴露接口打通。
操作指南
步骤一:获取用户的AccessKey和AccessKey Secret
如果您已创建Prometheus实例,且您需要使用AccessKey和AccessKey Secret进行远程读写,则需要先为获取用户的AccessKey ID和AccessKey Secret。
通过实名认证的账号登录天翼云。
进入天翼云账号中心。
点击【安全设置】进入安全设置中心
在用户AccessKey模块,可创建AKSK,或直接查看已生成的AKSK。
步骤二:获取HTTP API地址
登录应用性能监控控制台,左侧菜单选择Prometheus监控,进入实例列表页面。
单击目标实例名称。
在设置页签上,复制HTTP API地址。
可以单击生成token,获取Prometheus实例的鉴权Token。
注意
生成Token后,可在Grafana中添加数据源时配置Token,否则必须配置用户的AccessKey和AccessKey Secret。
步骤三:接入自建Grafana(token接入)
1. 配置Grafana数据源。
以管理员账号登录本地Grafana系统。
点击页面左上角的
图标。
在左侧导航栏中选择Configuration > Data Sources。说明:仅管理员可以看到此菜单。
在Data Sources页签上单击+ Add new data source。
在Add data source页面上单击Prometheus。
在Settings页签的Name字段中输入自定义的名称,在Prometheus server URL字段中粘贴上文【步骤一:获取HTTP API地址】中获得的HTTP API地址。
单击+ Add header,在Custom HTTP Headers区域单击+Add header,设置Header为Authorization,设置Value为【步骤二:获取HTTP API地址】中获取的鉴权Token。
单击页签底部的Save & Test。
2. 验证结果。
登录本地Grafana系统。
点击页面左上角的
图标,然后在左侧导航栏中单击Dashboards,
点击Dashboards页面右侧的New,然后在下拉菜单中单击New dashboard。
点击+ Add visualization,
在Select data source页面选择您创建的数据源。
在Edit Panel页面的Query页签下的A区域的Metrics字段和Label filters字段中输入指标名称和值,单击Run queries进行查询。
如果能显示出相应指标的图表,则说明操作成功。否则请检查填写的接口地址或Token是否正确,以及数据源是否有Prometheus的监控数据。
步骤四:接入自建Grafana(AccessKey接入)
1. 配置Grafana数据源。
以管理员账号登录本地Grafana系统。
点击页面左上角的
图标。
在左侧导航栏中选择Configuration > Data Sources。说明:仅管理员可以看到此菜单。
在Data Sources页签上单击+ Add new data source。
在Add data source页面上单击Prometheus。
在Settings页签的Name字段中输入自定义的名称,在Prometheus server URL字段中粘贴上文【步骤一:获取HTTP API地址】中获得的HTTP API地址。
选中Auth中的Basic auth,User和Password输入在【步骤一】中获取的AccessKey和AccessKey Secret。
单击页签底部的Save & Test。
2. 验证结果。
参考【步骤三】中的验证。
步骤五:获取Prometheus监控数据(token接入示例)
调用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.24420603***"
]
},
{
"metric": {
"__name__": "arms_prometheus_target_interval_length_seconds_sum",
"instance": "localhost:9335",
"interval": "30s",
"job": "_arms-prom/kubelet/1"
},
"value": [
1635302655,
"879810.747346***"
]
},
{
"metric": {
"__name__": "arms_prometheus_target_interval_length_seconds_sum",
"instance": "localhost:9335",
"interval": "20s",
"job": "_arms-prom/kubelet/1"
},
"value": [
1635302655,
"73320.13578499***"
]
}
]
}
}