Prometheus Remote Storage: Store Metrics ใน Long-term Storage (S3, ClickHouse)

Prometheus Remote Storage: Store Metrics ใน Long-term Storage (S3, ClickHouse)

ข้อจำกัดใหญ่ของ Prometheus คือ TSDB ฝั่ง local เก็บข้อมูลได้แค่ระยะสั้น — ค่า default retention อยู่ที่ 15 วัน และถ้าดันขึ้นถึง 6 เดือนหรือ 1 ปี ดิสก์ของ server จะเต็มอย่างรวดเร็ว นอกจากนี้การ query ข้อมูลข้าม Prometheus หลายตัวก็ทำไม่ได้โดยตรง เมื่อองค์กรต้องการเก็บ metrics ไว้ย้อนหลังหลายปีเพื่อ c

Prometheus High Availability: Multi-instance Setup และ Federation

Prometheus High Availability: Multi-instance Setup และ Federation

Prometheus รุ่นมาตรฐานถูกออกแบบให้ทำงานเป็น single node — เรียบง่าย เสถียร และดูแลง่าย แต่เมื่อระบบเริ่มใหญ่ขึ้น ทีมงานต้องการความพร้อมใช้งานระดับสูงเผื่อเซิร์ฟเวอร์ล่ม หรือมี monitoring หลาย data center ที่ต้องรวมข้อมูลขึ้นสู่ศูนย์กลาง ระบบนี้จึงมีแนวทาง High Availability (HA) และ Federation ให้เลื

Prometheus Recording Rules: Pre-compute Metrics เพื่อ Performance

Prometheus Recording Rules: Pre-compute Metrics เพื่อ Performance

เมื่อ Prometheus ต้องประมวลผลคำสั่งที่ซับซ้อนหรือรวมข้อมูลจากเมตริกจำนวนมากซ้ำ ๆ ใน Dashboard และ Alert การเรียก PromQL แบบสดทุกครั้งจะเปลือง CPU และทำให้ Grafana ค่อย ๆ ช้าลงอย่างเห็นได้ชัด บทความนี้จะอธิบาย Recording Rules — กลไกการ pre-compute เมตริกเพื่อให้ query ที่มีต้นทุนสูงถูกคำนวณล่วงหน้าแล

PromQL Advanced: Aggregations, Subqueries, Join Operations

PromQL Advanced: Aggregations, Subqueries, Join Operations

เมื่อเข้าใจ PromQL ระดับพื้นฐานแล้ว ขั้นต่อไปคือการใช้ความสามารถที่ลึกขึ้น เช่น subquery, vector matching (join ข้าม metric), group operator และเทคนิคจัดการ high-cardinality ที่จะเปลี่ยนการเขียน query ธรรมดาให้ตอบโจทย์งานจริงที่ซับซ้อนได้ บทความนี้จะลงรายละเอียดเรื่องเหล่านี้พร้อมตัวอย่างที่ใช้งานได

PromQL (Prometheus Query Language): เขียน Queries หา Metrics ที่ต้องการ

PromQL (Prometheus Query Language): เขียน Queries หา Metrics ที่ต้องการ

PromQL (Prometheus Query Language) เป็นหัวใจของการใช้ Prometheus อย่างมีประสิทธิภาพ — ความสามารถในการเขียน query ที่ตรงจุดและมีประสิทธิภาพจะเปลี่ยนกองข้อมูล metric จำนวนมหาศาลให้กลายเป็น insight ที่ใช้ตัดสินใจได้ บทความนี้จะพาทำความเข้าใจ PromQL ตั้งแต่พื้นฐานของ data model, ประเภทข้อมูลที่รองรับ, s

Custom Prometheus Exporters: เขียน Exporter สำหรับ Custom Application

Custom Prometheus Exporters: เขียน Exporter สำหรับ Custom Application

การเขียน Custom Prometheus Exporter เป็นเรื่องจำเป็นเมื่อระบบที่ต้อง monitor ไม่มี exporter สำเร็จรูป หรือเมื่อต้องการเก็บ business metric เฉพาะทาง เช่น จำนวน order ต่อวินาที, latency ของ internal API, หรือสถานะของ job queue — บทความนี้จะลงลึกถึงวิธีเขียน custom exporter ระดับ production ที่เสถียร ป

Node Exporter: Monitor Linux System Metrics (CPU, Memory, Disk)

Node Exporter: Monitor Linux System Metrics (CPU, Memory, Disk)

Node Exporter เป็น exporter สำคัญของ Prometheus ที่ใช้เก็บ metric ระดับระบบปฏิบัติการ Linux/Unix เช่น CPU, Memory, Disk, Network, File system และ systemd service — เป็น exporter ตัวแรกที่ทุกคนต้องติดตั้งเมื่อเริ่มวาง monitoring stack เพราะครอบคลุม baseline metric ของ server ทั้งหมด บทความนี้จะอธิบาย

Prometheus Exporters: เก็บ Metrics จาก Applications และ Services

Prometheus Exporters: เก็บ Metrics จาก Applications และ Services

Prometheus Exporter คือตัวกลางที่แปลง metrics จากแอปพลิเคชันหรือระบบที่ไม่ได้รองรับ Prometheus โดยตรงให้กลายเป็นรูปแบบ text-based ที่ Prometheus อ่านได้ ระบบ exporter เป็นจุดสำคัญของ ecosystem เพราะทำให้ Prometheus สามารถ monitor อะไรก็ได้ ตั้งแต่ MySQL, Redis, Nginx ไปจนถึง router และ IoT device บท

Grafana Alerting: ออกแบบ Alert Rules สำหรับระบบ Monitoring

Grafana Alerting: ออกแบบ Alert Rules สำหรับระบบ Monitoring

Grafana Alerting เป็นระบบ alert ที่ unified ตั้งแต่ Grafana 8 ซึ่งรวมการสร้าง alert rule, notification และ escalation ไว้ในที่เดียว แทนที่ระบบ dashboard alert เดิมที่จำกัดอยู่แค่ panel-level ระบบใหม่ทำงานแบบ rule-based ที่สามารถใช้ query จาก data source หลายตัวมารวมกันเพื่อตัดสินใจว่าจะส่ง alert หรื

Grafana Data Source: เชื่อมต่อ Prometheus และ Data Sources อื่น

Grafana Data Source: เชื่อมต่อ Prometheus และ Data Sources อื่น

Grafana เป็นเครื่องมือ visualization ที่ไม่ได้เก็บข้อมูลเอง แต่จะอ่านข้อมูลจากแหล่งข้อมูลภายนอกที่เรียกว่า Data Source การตั้งค่า Data Source อย่างถูกต้องจึงเป็นขั้นตอนแรกที่สำคัญที่สุดก่อนที่จะสร้าง Dashboard หรือ Alert ใด ๆ เพราะหากเชื่อมต่อผิดหรือตั้ง authentication ไม่ถูก ทุก panel จะแสดง error

LINE CHAT