บันทึก Grafana Alert เกี่ยวกับ rule และ alert condition

ช่วงนี้กำลังทำโปรเจคเกี่ยวกับ engineering metrics ทั้งหลาย ก็เลยต้องกลับมาดู Grafana alert พบว่า หลายๆครั้งก็แอบสับสนเกี่ยวกับ Rule และ Conditions นิดหน่อย เลยอยากเขียนโน๊ต และแชร์ให้กับเพื่อนๆผู้อ่านไว้ด้วยครับ

Evaluate every

options ประกอบด้วย 2 ค่า ได้แก่

every = ต้องประเมินเงื่อนไขภายในกี่วินาที/นาที เช่น 10 วินาที / 1 นาที เป็นต้น

For = ระบุระยะเวลาที่เงื่อนไขจะต้องเป็นจริงก่อนที่จะเริ่มการแจ้งเตือน อีกความหมายนึง ก็คือ ระยะเวลารอก่อนที่จะส่งการแจ้งเตือน 0m หมายถึงปิดใช้งาน

Conditions

WHEN = ประกอบด้วยฟังก์ชันต่างๆ เช่น avg() / count() และ อื่นๆ ตัวนี้ตรงตัวไม่น่ามีอะไร

จุดที่น่าสนใจ คือแล้ว OF query() คืออะไรกัน

Query ประกอบด้วย 3 parameters ได้แก่

query(metricName, start, end)

ยกตัวอย่าง

query(A, 1m, now) หมายความว่า query ตัวนี้จะตรวจสอบ A metric ของเรา และจะตรวจสอบช่วงตั้งแต่ 1 นาทีที่แล้วถึงปัจจุบัน

alert condition

  • “OK” หมายความว่าไม่ตรงตามเงื่อนไขและการแจ้งเตือนจะไม่ทำงาน
  • “Pending” หมายความว่ายังไม่ตรงตามเงื่อนไขนานพอที่จะตัดสินว่าการแจ้งเตือนควรทริกเกอร์หรือไม่ โดยทั่วไป สถานะนี้ใช้สำหรับการแจ้งเตือนที่มีเวลากำหนดไว้ใน “for” เพื่อหลีกเลี่ยงการเรียกใช้การแจ้งเตือนเร็วเกินไป
  • “Alerting” หมายความว่าตรงตามเงื่อนไขและมีการเรียกใช้การแจ้งเตือน

--

--

Teerapong Singthong 👨🏻‍💻

Engineering Manager, ex-Solution Engineering Lead at LINE | Tech | Team Building | System Design | Architecture | SWE | Large Scaling System