ตัวชี้วัดด้วย Prometheus และ Grafana
ตั้งค่า Prometheus เพื่อรวบรวมตัวชี้วัดของคลัสเตอร์และแอปพลิเคชัน แล้วแสดงผลด้วย Grafana
ตัวชี้วัดด้วย Prometheus และ Grafana เป็นบทเรียน Kubernetes Basics ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kubernetes Basics และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน
พลังของ metrics
metrics คือค่าการวัดเชิงตัวเลขที่อธิบายสถานะและประสิทธิภาพของแอปพลิเคชันและโครงสร้างพื้นฐานของคุณ ลองนึกภาพว่า metrics เป็นสัญญาณชีพของซอฟต์แวร์ของคุณ!
metrics ให้ข้อมูลเชิงลึกที่มีประโยชน์เกี่ยวกับ:
- ประสิทธิภาพ: แอปของคุณตอบสนองได้เร็วเพียงใด
- การใช้ทรัพยากร: เซิร์ฟเวอร์ของคุณกำลังจะมีหน่วยความจำไม่พอหรือไม่
- ความพร้อมใช้งาน: บริการของคุณกำลังทำงานและพร้อมให้ผู้ใช้ใช้งานหรือไม่
การติดตาม metrics ช่วยให้คุณเข้าใจแนวโน้ม ตรวจจับความผิดปกติ และแก้ไขปัญหาได้ล่วงหน้า
ทำความรู้จัก Prometheus
Prometheus คือระบบตรวจสอบแบบโอเพนซอร์สที่ออกแบบมาให้มีความน่าเชื่อถือและปรับขนาดได้ เป็นเครื่องมือสำคัญในชุดเครื่องมือด้านการสังเกตการณ์สำหรับระบบคลาวด์เนทีฟ
หน้าที่หลักของ Prometheus คือ:
- ดึงข้อมูล: รวบรวม metrics จากเป้าหมายที่กำหนดค่าไว้ (เช่น แอปพลิเคชันของคุณ)
- จัดเก็บ: บันทึก metrics เหล่านี้ในฐานข้อมูลอนุกรมเวลา
- สอบถาม: เปิดให้คุณตั้งคำถามเกี่ยวกับข้อมูลที่รวบรวมมา
Prometheus ช่วยให้คุณเห็นภาพอย่างชัดเจนว่าเกิดอะไรขึ้นภายในคลัสเตอร์ Kubernetes ของคุณ
รูปแบบการ "ดึงข้อมูล" ของ Prometheus
Prometheus ใช้รูปแบบ "ดึงข้อมูล" เพื่อรวบรวม metrics แทนที่แอปพลิเคชันจะส่งข้อมูลไปยัง Prometheus, Prometheus จะ "ดึงข้อมูล" หรือเรียก metrics จากแอปพลิเคชันเหล่านั้นเอง
โดยทั่วไปกระบวนการทำงานมีดังนี้:
- แอปพลิเคชันของคุณเปิดเผย metrics ผ่านปลายทาง HTTP ที่ระบุ (มักเป็น
/metrics) - Prometheus ได้รับการกำหนดค่าด้วยรายการเป้าหมาย (เช่น IP และพอร์ตของแอปพลิเคชัน)
- ตามช่วงเวลาที่กำหนด Prometheus จะส่งคำขอ HTTP ไปยังปลายทาง
/metricsของแต่ละเป้าหมาย - เป้าหมายตอบกลับด้วย metrics ปัจจุบัน จากนั้น Prometheus จะจัดเก็บ metrics เหล่านั้น
metrics: คู่คีย์-ค่า
Prometheus จัดเก็บข้อมูลเป็นอนุกรมเวลา ซึ่งเป็นลำดับค่าที่มีการประทับเวลา อนุกรมเวลาแต่ละรายการจะระบุอย่างไม่ซ้ำกันด้วยชื่อ metric และชุดคู่คีย์-ค่าที่เรียกว่า ป้ายกำกับ
ตัวอย่าง: http_requests_total{method="GET", path="/api"}
Prometheus มีประเภท metric หลักดังนี้:
- ตัวนับ: metric แบบสะสมที่เพิ่มขึ้นเท่านั้น (เช่น จำนวนคำขอทั้งหมด)
- มาตรวัด: ค่าที่เพิ่มขึ้นหรือลดลงได้ (เช่น การใช้ CPU ในปัจจุบัน)
- ฮิสโตแกรม/สรุป: ใช้สุ่มตัวอย่างสิ่งที่สังเกตได้และนับจำนวนในช่วงที่กำหนดค่าได้ (เช่น ระยะเวลาของคำขอ)
ทำให้แอป "พูด" ด้วย metrics
เพื่อให้ Prometheus ดึง metrics แอปพลิเคชันของคุณต้องเปิดเผย metrics ในรูปแบบที่ Prometheus เข้าใจ โดยทั่วไปจะทำผ่านปลายทาง HTTP
ภาษาโปรแกรมจำนวนมากมีไลบรารีไคลเอนต์ที่ช่วยให้เพิ่มการตรวจวัดในโค้ดได้ง่าย:
- เพิ่มค่าตัวนับเมื่อเกิดเหตุการณ์
- กำหนดค่ามาตรวัดสำหรับสถานะปัจจุบัน
- สังเกตระยะเวลาของการดำเนินการ
มาดูตัวอย่างง่าย ๆ ของแอปที่เปิดเผย metric แบบตัวนับพื้นฐานกัน
แอป Python ที่เปิดเผย metrics
นี่คือตัวอย่างแอป Flask ขนาดเล็กใน Python ที่เปิดเผย metric แบบตัวนับอย่างง่าย โดยจำลองการนับจำนวนการเข้าชมหน้า
เรียกใช้โค้ดนี้ แล้วลองเข้าถึง /metrics ในเบราว์เซอร์หรือเทอร์มินัล (เช่น หลังจากเรียกใช้แล้ว ให้เปิด http://localhost:5000/metrics)
from flask import Flask
from prometheus_client import Counter, generate_latest
import time
app = Flask(__name__)
c = Counter('my_app_requests_total', 'Total requests to my app')
@app.route('/')
def hello():
c.inc() # Increment the counter
return "Hello, CoddyKit!"
@app.route('/metrics')
def metrics():
return generate_latest().decode('utf-8')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)Prometheus ในคลัสเตอร์ของคุณ
ใน Kubernetes การติดตั้ง Prometheus อย่างมีประสิทธิภาพมักใช้ Prometheus Operator ซึ่งโอเปอเรเตอร์นี้ช่วยจัดการอินสแตนซ์และการกำหนดค่าของ Prometheus
ทรัพยากร Kubernetes สำคัญสำหรับ Prometheus:
- ServiceMonitor: บอก Prometheus ว่าจะค้นหาปลายทาง metrics ได้จากที่ใด (เช่น ควรดึงข้อมูลจาก Service และ Pod รายการใด)
- PodMonitor: คล้ายกับ ServiceMonitor แต่กำหนดเป้าหมายเป็น Pod โดยตรง
ทรัพยากรเหล่านี้ช่วยให้ Prometheus ค้นหาและดึง metrics จากแอปพลิเคชันที่คุณติดตั้งไว้ได้โดยอัตโนมัติ
Grafana: ผู้เชี่ยวชาญด้านแดชบอร์ด
ขณะที่ Prometheus รวบรวมและจัดเก็บ metrics, Grafana คือเครื่องมือหลักสำหรับแสดงภาพ metrics เหล่านั้น Grafana เป็นเว็บแอปพลิเคชันวิเคราะห์และแสดงภาพแบบโต้ตอบที่เป็นโอเพนซอร์ส
Grafana ช่วยให้คุณสามารถ:
- สร้างแดชบอร์ดที่สวยงามและให้ข้อมูล
- สอบถามแหล่งข้อมูลหลายแห่ง (เช่น Prometheus)
- ตั้งค่าการแจ้งเตือนตามเกณฑ์ของ metrics
Grafana เปลี่ยนข้อมูล metric ดิบให้เป็นข้อมูลเชิงลึกที่นำไปใช้ได้
Grafana และ Prometheus: คู่หูทรงพลัง
Grafana ไม่ได้จัดเก็บข้อมูล metric ไว้เอง แต่จะสอบถามข้อมูลจากแหล่งข้อมูลภายนอก หากต้องการแสดงภาพ metrics ของ Kubernetes คุณจะต้องกำหนดค่า Prometheus เป็นแหล่งข้อมูลใน Grafana
ขั้นตอน:
- ใน Grafana ให้เพิ่มแหล่งข้อมูลใหม่
- เลือก "Prometheus" เป็นประเภท
- ระบุ URL ของเซิร์ฟเวอร์ Prometheus
- เริ่มสร้างแดชบอร์ดโดยใช้ภาษาสอบถามของ Prometheus ซึ่งก็คือ PromQL!
การจับคู่เครื่องมือทั้งสองนี้ช่วยให้คุณควบคุมการตรวจสอบคลัสเตอร์ได้อย่างเต็มที่
ทดสอบความรู้ของคุณ!
ได้เวลาตรวจสอบความเข้าใจของคุณเกี่ยวกับ Prometheus และ Grafana แล้ว!
ทบทวน: metrics และการแสดงภาพ
ทำได้ดีมาก! ในบทเรียนนี้ คุณได้เรียนรู้เกี่ยวกับ:
- ความสำคัญของ metrics ต่อการสังเกตการณ์ระบบ
- Prometheus ในฐานะระบบทรงพลังสำหรับดึงข้อมูลและจัดเก็บ metrics แบบอนุกรมเวลา
- วิธีที่แอปพลิเคชัน เปิดเผย metrics ให้ Prometheus รวบรวม
- Grafana สำหรับสร้างแดชบอร์ดที่ให้ข้อมูลเชิงลึกและแสดงภาพข้อมูล metric ของคุณ
การทำความเข้าใจเครื่องมือเหล่านี้มีความสำคัญอย่างยิ่งต่อการรักษาแอปพลิเคชัน Kubernetes ให้ทำงานได้ดีและมีประสิทธิภาพ สำรวจวิธีเพิ่มการตรวจวัดให้แอปพลิเคชันของคุณต่อไป!
คำถามที่พบบ่อย
บทเรียน “ตัวชี้วัดด้วย Prometheus และ Grafana” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตัวชี้วัดด้วย Prometheus และ Grafana” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kubernetes Basics ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตัวชี้วัดด้วย Prometheus และ Grafana”
ตั้งค่า Prometheus เพื่อรวบรวมตัวชี้วัดของคลัสเตอร์และแอปพลิเคชัน แล้วแสดงผลด้วย Grafana คุณปฏิบัติ Kubernetes Basics ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kubernetes Basics หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kubernetes Basics บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ตัวชี้วัดด้วย Prometheus และ Grafana” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kubernetes Basics นี้ได้ไหม
ได้ บทเรียน Kubernetes Basics ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเก็บบันทึกด้วย kubectl logs
- ตัวชี้วัดด้วย Prometheus และ Grafana
- การตรวจสอบสุขภาพ: โพรบการทำงานและความพร้อม
- การติดตามแบบกระจายและเหตุการณ์