标签:shell container +% 29 查询 prometheus query
#shell查询prometheus数据
shell使用curl调用HTTP API执行PromQL
/api/v1/query
查询某一时刻的数据查询条件PromSQL复杂时, 传入接口/api/v1/query需要URL转码
使用prometheus的web界面Graph执行查询, 浏览器开发工具可获取请求URL
#获取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
标签:shell,container,+%,29,查询,prometheus,query 来源: https://www.cnblogs.com/elvi/p/16488899.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。