监控利器之Prometheus问题处理

新公司报到,首要接触到的依然是监控,看来是要和监控杠上了…

现象

grafana面板上出现“Only queries that return single…”异常
在这里插入图片描述

原因分析

由于我要监控阿里云的RDS数据库,于是在Prometheus server上部署了mysql_exporter,同时启动了多个监控实例的进程,所以为了便于在grafana上展示效果,进行对不同的环境不同数据库实例进行关联,所以修改了grafana上的mysql面板,而且又同时修正了数据库实例的label标签值,这就导致了在Prometheus server中存在相同实例不同的数据,进而导致通过语法无法确定唯一的数据出现报错。

分析结论

singlestat只能显示一个结果,而查询语句查到了两个结果。

处理方法

step1:修改prometheus服务的启动参数

在prometheus的启动脚本中传入–web.enable-admin-api参数

systemctl deamon-reload   #加载到内核
systemctl restart prometheus  #重启服务

参考链接:https://www.shellhacks.com/prometheus-delete-time-series-metrics/

说人话就是:通过我们需要清空某个metric或者释放磁盘空间,那么可以通过配置–web.enable-admin-api参数来达到目的。在这里插入图片描述

step2:命令行删除metric的数据

删除所有匹配的序列数据

curl -X POST -g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]={foo="bar"}'

删除job或instance的数据

curl -X POST -g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]={job="node_exporter"}'
curl -X POST -g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]={instance="192.168.0.1:9100"}'

删除所有(这个可以用于不重启清空所有的操作,但推荐使用通过保留数据的时间周期参数来控制)

curl -X POST -g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]={__name__=~".+"}'

我是清理的job的操作:

curl -X POST -g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]={job="mysql_service"}'

在这里插入图片描述
重新刷新grafana即可。

都到这儿了,更多文章,详见个人微信公众号ALL In Linux,来扫一扫吧!
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值