본문 바로가기

Observability/Prometheus

[Prometheus](AWS)Add Custom rules to Prometheus stack with cloudwatch-exporter

Rules에 등록할 Prometheus 쿼리 작성

Cloudwatch-exporter에 추가한 metrics 값을 참고하여 쿼리를 작성한다.
2022.07.11 - [Monitoring/Prometheus] - [Prometheus](AWS)Cloudwatch-exporter에 원하는 metrics 추가하기

EC2 CPU Utilization Over 5 % - 알람 확인을 위해 설정

round(aws_ec2_cpuutilization_average offset 10m, 0.01) > 5

EKS Node CPU Over 80 %

round(containerinsights_node_cpu_utilization_average offset 10m,0.01) > 80

ELB Down

aws_elb_un_healthy_host_count_average offset 10m >= 1

Rules 등록

kube-prometheus-stack helm chart의 values.yaml에 위에 작성한 쿼리를 등록한다.

  • expr: prometheus 쿼리 작성
  • annotations을 작성하여 이후 알람(slack or something)에서 원하는 메시지를 받을 수 있다.
Install prometheus stack 참고
2022.05.29 - [Monitoring/Prometheus] - [Prometheus]Install prometheus for kubernetes monitoring with helm chart

 

additionalPrometheusRulesMap:
  rule-name:
    groups:
    - name: "AWS-Cloudwatch-Exporter.rules"
      rules:
        - alert: EC2 CPU Utilization Over 5 %
          labels:
            severity: warning #critical
          for: 1m
          expr: round(aws_ec2_cpuutilization_average offset 15m, 0.01) > 3
          annotations:
            title: "Project: {{ $labels.project }} - EC2 CPU Utilization Over 5 %"
            message: "instance: {{ $labels.instance }}\\ninstance_id: {{ $labels.instance_id}}\\nVALUE = {{ $value }}\\n"

이후 kube-prometheus-stack helm 을 재시작하면 등록된 rule을 확인할 수 있다.

결과 확인

Prometheus

Slack