Prometheus基础监控表达式

本文介绍了如何使用Prometheus进行基础监控,重点关注了JVM和container的指标。内容包括container的内存使用率、特定JVM类型的标签联合、CPU使用率、OOM触发、CPU限流以及5分钟内重启次数的监控。同时,还讨论了JVM的堆内存使用率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

container

container内存使用率

匹配jvm类型容器,并通过联合表达式添加对应labels【env,app】

round(sum(container_memory_working_set_bytes{container="service",image!=""}) by (pod,namespace,cluster) / sum by(cluster , pod, namespace) (kube_pod_container_resource_limits{container="service",resource="memory"}) * 100 * on(namespace, pod) group_left(env, app,version) (jvm_memory_used_bytes{id="Eden Space",env!="",app!=""}*0 +1)) != +Inf > 90

container的CPU使用率

round(sum (rate (container_cpu_usage_seconds_total{container="service"}[5m])) by (cluster,pod,namespace) /sum(kube_pod_container_resource_limits{container="service",resource="cpu"}) by (pod,namespace,cluster) * 100 * on (pod,namespace) group_left(env,app,version) kube_pod_labels{env!=""}) != +Inf >80
<
### Prometheus查询表达式监控容器存活状态 在Prometheus中,时间序列是监控和存储数据的核心概念[^1]。为了监控容器的存活状态,通常会利用来自 cAdvisor 的指标来判断容器的状态。cAdvisor 收集并提供关于容器资源使用情况的信息,包括内存、CPU 和网络统计信息等[^4]。 对于监控容器的存活状态,可以依赖 `container_last_seen` 或者 `up` 这样的指标。特别是当与 Kubernetes 结合时,还可以考虑使用带有适当标签过滤条件的 `kube_pod_container_status_ready` 指标。下面是一个具体的例子: 要检查特定命名空间下所有Pod中的容器是否处于就绪状态,可以使用如下 PromQL 查询语句: ```promql kube_pod_container_status_ready{namespace="your-namespace"} ``` 如果希望更精确地定位某个应用或服务对应的容器,则可以在上述基础上进一步添加匹配的应用名称或其他唯一标识符作为筛选条件。例如针对名为 `web-app` 的部署单元下的容器进行健康状况监测: ```promql kube_pod_container_status_ready{namespace="your-namespace", pod="web-app-*"} ``` 另外一种方法是从节点层面出发,通过 Node Exporter 获取到对应实例上的容器元数据,并结合其他外部信号(比如 Docker API)来进行综合评估;不过这种方法相对复杂一些,在大多数情况下直接基于 K8s 提供的标准 metrics 更加便捷有效。 最后值得注意的是,虽然 node_exporter 可以为我们带来丰富的主机级别度量标准集合,但对于深入到单个容器级别的细粒度监控而言,还是应该优先选用像 cAdvisor 这样专门面向容器环境设计的数据采集工具[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值