prometheus operator告警规则(一):你的cpu够用吗?

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: ack-prometheus-operator就像一把瑞士军刀,包含非常丰富的功能,安装后会自动部署prometheus、grafana、alertmanager等组件,并会下发很多的监控相关的规则,包括metric采集规则、告警规则和grafana dashboard。

ack-prometheus-operator就像一把瑞士军刀,包含非常丰富的功能,安装后会自动部署prometheus、grafana、alertmanager等组件,并会下发很多的监控相关的规则,包括metric采集规则、告警规则和grafana dashboard。但是很朋友看到这些指标和规则后,只能感受到他的强大,却不知道如何发挥它强大的功能,我们这一系列文章就是描述如何快速上手使用ack-prometheus-operator,让这把瑞士军刀发挥出强大的作用

背景知识

开始之前

  • 你需要有一个ACK集群,以及配置好可以管理这个集群的kubectl,集群上还要有ingress controller和helm tiller,如果你还没有集群,可以使用ACK快速部署kubernetes集群
  • 安装ack-prometheus-operator,参考这里

CPUThrottlingHigh

很多Kubernetes的用户都会苦恼如何配置cpu的limit,并且不知如何确认自己当前的配置是否合理,这里就来演示如何利用ack-prometheus-operator自带的告警规则发现cpu limit的不合理配置

ack-prometheus-operator部署后默认带有个叫CPUThrottlingHigh的rule,expr如下:

100
  * sum by(container_name, pod_name, namespace) (increase(container_cpu_cfs_throttled_periods_total{container_name!=""}[5m]))
  / sum by(container_name, pod_name, namespace) (increase(container_cpu_cfs_periods_total[5m]))
  > 25

这个表达式的作用是查出最近5分钟,超过25%的CPU执行周期受到限制的container,这里用到了来自kubelet的两个重要指标:

  1. container_cpu_cfs_periods_total:container生命周期中度过的cpu周期总数
  2. container_cpu_cfs_throttled_periods_total:container生命周期中度过的受限的cpu周期总数

下面我们就用一个例子来验证这个告警规则的可靠性:

apiVersion: v1
kind: Pod
metadata:
  name: cpu-demo
spec:
  containers:
  - name: cpu-demo
    image: vish/stress
    resources:
      limits:
        cpu: "2"
      requests:
        cpu: "2"
    args:
    - -cpus
    - "3"

这个pod,我们给他的cpu limit配置成2,然后容器的进程配置申请3个cpu核心的用量,这个pod下发下去,不久就可以在Prometheus的alert页面看到CPUThrottlingHigh这个告警规则变成activeprometheus_alert_1

小结

Prometheus为kubernetes提供了丰富的可观测指标,有了这些指标,我们队集群的掌握就告别了盲人摸象的阶段,并且可以利用我们观测到的指标来持续的优化我们的应用配置

目录
相关文章
|
3月前
|
Prometheus Cloud Native 机器人
Prometheus告警简介
Prometheus告警简介
|
6月前
|
Prometheus Kubernetes 监控
prometheus operator监控k8s集群之外的haproxy组件
prometheus operator监控k8s集群之外的haproxy组件
|
2月前
|
Prometheus 监控 Kubernetes
Prometheus Operator 与 kube-prometheus 之二 - 如何监控 1.23+ kubeadm 集群
Prometheus Operator 与 kube-prometheus 之二 - 如何监控 1.23+ kubeadm 集群
|
2月前
|
Prometheus 监控 Cloud Native
使用 Prometheus 配置 SLO 监控和告警
使用 Prometheus 配置 SLO 监控和告警
|
2月前
|
Prometheus Kubernetes 监控
Prometheus Operator 与 kube-prometheus 之一 - 简介
Prometheus Operator 与 kube-prometheus 之一 - 简介
|
4月前
|
资源调度 大数据 容器
[已解决]大数据集群CPU告警问题解决
[已解决]大数据集群CPU告警问题解决
36 0
|
4月前
|
监控
Hologres中,CPU水位告警是通过配置预警规则来实现的
Hologres中,CPU水位告警是通过配置预警规则来实现的
39 1
|
5月前
|
Prometheus 监控 Cloud Native
Prometheus Operator配置原理
Prometheus Operator配置原理
44 0
|
5月前
|
Prometheus Kubernetes Cloud Native
Prometheus Operator创建告警规则文件
Prometheus Operator创建告警规则文件
38 0
|
5月前
|
Prometheus 监控 Kubernetes
Prometheus Operator(下)
Prometheus Operator(下)
37 0