如何在Prometheus单页面中查看所有Target的指标?
解决Prometheus单页面查看所有指标的方案
方法一:用Prometheus自带Graph页面快速查看
直接访问Prometheus的Graph页面(默认地址是http://<你的EC2公网/内网IP>:9090/graph),在查询输入框里用通配符查询语句拉取所有指标:
- 拉取所有时间序列指标:
{__name__!=""} - 按job过滤所有指标:
{job=~".+"} - 按实例过滤:
{instance=~".+"}
输入后切换到「Table」视图,就能在单页面里看到所有指标的名称、标签和对应数值。如果想统计所有不同的指标名称,用count by (__name__) ({__name__!=""})即可。
方法二:自定义Prometheus控制台模板
如果需要更定制化的页面,可以用Prometheus自带的控制台模板功能:
- 修改Prometheus配置文件(比如
prometheus.yml),添加模板路径配置:console_templates: /etc/prometheus/consoles console_libraries: /etc/prometheus/console_libraries - 在
/etc/prometheus/consoles目录下创建自定义模板文件,比如all_metrics.html,内容示例:{{template "head" .}} <h1>所有监控指标汇总</h1> <style> table {border-collapse: collapse; width: 80%; margin: 20px auto;} th, td {border: 1px solid #ddd; padding: 8px; text-align: left;} th {background-color: #f2f2f2;} </style> <table> <tr><th>指标名称</th><th>实例地址</th><th>当前数值</th></tr> {{range query "{__name__!=\"\"}" | sortByLabel "__name__"}} <tr> <td>{{.Labels.__name__}}</td> <td>{{.Labels.instance}}</td> <td>{{.Value}}</td> </tr> {{end}} </table> {{template "foot" .}} - 重启Prometheus服务,然后访问
http://<你的EC2_IP>:9090/consoles/all_metrics.html,就能看到定制好的单页指标汇总。
方法三:用Grafana构建可视化仪表盘(推荐)
Grafana是更专业的监控可视化工具,能实现更灵活的单页展示:
- 在EC2或其他机器部署Grafana,启动后访问默认地址
http://<Grafana_IP>:3000,用默认账号(admin/admin)登录。 - 添加Prometheus数据源:进入「Configuration」→「Data sources」→「Add data source」,选择Prometheus,填写地址
http://<Prometheus所在EC2_IP>:9090,保存测试。 - 创建新仪表盘:点击「Create」→「Dashboard」→「Add panel」,选择「Table」类型,在查询框输入
{__name__!=""}。 - 在面板设置里调整显示字段(比如把
__name__、instance、Value设为显示列),还能按指标名分组、添加筛选器,最终保存仪表盘即可在单页面查看所有指标。
内容的提问来源于stack exchange,提问作者Meriç Özkayagan
相关产品推荐
相关产品推荐

