#shell查询prometheus数据
shell使用curl调用HTTP API执行PromQL
/api/v1/query
查询某一时刻的数据
#获取Promsql转码, 步骤如下:
1、打开prometheus的Graph页面
2、输入查询语句Promsql
3、浏览器按F12 ->开发工具 ->Network栏目
4、点击"Execute"按钮执行查询
5、点击"开发工具"的"Network"页面"query?query="条目
6、复制"Headers"下的"Request URL", 删除
末尾时间戳“&time=16×××”部分
#shell查询实例如下 :
# 查看k8s pod内存使用率大于80%的Pod
# round(sum by( pod, instance, container) (container_memory_working_set_bytes{image!=""}) / sum by( pod, instance, container) (container_spec_memory_limit_bytes{image!=""}) * 100 != +Inf) > 80
#Prometheus网站
PrometheusUrl="http://prometheus.xxx.com"
#资源使用百分比
Limit=${Limit:=80}
#获取PromQL查询api url
getMemUrl="/api/v1/query?query=round%28sum+by%28+pod%2C+instance%2C+container%29+%28container_memory_working_set_bytes%7Bimage%21%3D%22%22%7D%29+%2F+sum+by%28+pod%2C+instance%2C+container%29+%28container_spec_memory_limit_bytes%7Bimage%21%3D%22%22%7D%29+*+100+%21%3D+%2BInf%29+%3E+${Limit}"
#查询内存使用率大于80%的容器
#查询结果是json格式, 使用jq命令筛选json内容
curl -ks -m 2 "${PrometheusUrl}${getMemUrl}" | jq -r ".data.result[].metric.container"
#执行效果如下:
参考文档
官网文档 Prometheus
https://prometheus.io/docs/prometheus/latest/querying/api/
腾讯云 Prometheus API概述
https://cloud.tencent.com/document/product/1416/56024
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。