group_interval, group_wait และ repeat_interval แตกต่างกันอย่างไร

Patiphan Suwanich
1 min readMay 22, 2020

--

ซึ่ง 3 ตัวแปรนี้เป็นข้อสงสัยสำหรับมือใหม่ Alertmanager เสมอๆ

ก่อนที่จะพูดถึง 3 ตัวที่ว่าของ Alertmanager ผมขอพูดถึงตัวแปรพื้นฐานสำคัญๆก่อนครับ โดย Prometheus จะมีการนับเวลาที่เป็น global อยู่ 2 ค่าคือ scrape_interval และ evaluation_interval

scrape_interval

คือระยะเวลาการเก็บข้อมูลแต่ละครั้งของ Prometheus

เช่นเมื่อ Prometheus กำลังเก็บข้อมูลจาก Error ฯลฯ

evaluation_interval

คือระยะเวลาระหว่างการประเมินกฎการแจ้งเตือนของ Prometheus
เมื่อถูกประเมินแล้วแต่ละข้อความจะถูกกำหนดสถานะออกมา 3 สถานะ
คือ inactive, pending, firing หลัวจากนั้นก็จะทำการเริ่มหรือหยุดส่งการแจ้งเตือนไปยัง Alertmanager

group_by

มีหน้าที่หลีกเลี่ยงการส่งแจ้งเตือนอย่างต่อเนื่องสำหรับการแจ้งเตือนที่คล้ายกัน (like the same process failing on multiple instances, nodes, and data centres)
เพราะฉนั้นเราควรสร้างหลายๆกลุ่มเพื่อรับการแจ้งเตือนที่น้อยลง

group_by: ['alertname', 'job']

group_wait

ตั้งว่าจะเก็บการแจ้งเตือนจาก Prometheus ก่อนที่จะส่งไปยัง Alertmanager นานแค่ไหน

เช่น ถ้ารอ 5 นาทีจะเก็บแจ้งเตือนได้ 10 ข้อความ แต่ถ้ารอ 10 นาที อาจจะได้มากกว่า 10 ข้อความ

group_by: ['alertname', 'job']
group_wait: 45s # Usually set between ~0s to a few minutes.

ปัญหาอื่นๆตามมาเช่น เราจะได้เก็บการแจ้งเตือนแบบกลุ่มอีกครั้งในครั้งต่อไปที่มีการประเมินกฎและวิธีนี้จะส่งผลให้เกิดความล่าช้าในการรับการแจ้งเตือนครับ

group_interval

ตั้งระยะเวลาที่พร้อมจะส่งการแจ้งเตือนทั้งหมดที่ group_wait เก็บรวบรวมมาส่งออกไปหาผู้รับเมื่อใด

group_by: ['instance', 'job']
group_wait: 45s
group_interval: 10m # Usually ~5 mins or more.

repeat_interval

ใช้ในการกำหนดเวลารอ ก่อนที่จะส่งข้อความแจ้งเตือนที่ได้รับมา ส่งไปยังผู้รับที่เคยได้รับข้อความแจ้งเตือนอีกครั้ง

Extra

send_resolved

กำหนดเพื่อเช็คว่าปัญหาที่ถูกส่งมานั้นถูกแก้ไขสำเร็จแล้วหรือยัง

resolve_timeout

หลังจากระยะเวลาที่กำหนดจะลบข้อความการแจ้งเตือนที่เก็บไว้

Based on article What’s the difference between group_interval, group_wait, and repeat_interval?

--

--

Patiphan Suwanich
Patiphan Suwanich

Written by Patiphan Suwanich

Work at Major Development | Interest in Blockchain | looking for opportunities in my programmer’s life

No responses yet