0Pricing
Kubernetes Basics · บทเรียน

ตัวชี้วัดด้วย 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 จากแอปพลิเคชันเหล่านั้นเอง

โดยทั่วไปกระบวนการทำงานมีดังนี้:

  1. แอปพลิเคชันของคุณเปิดเผย metrics ผ่านปลายทาง HTTP ที่ระบุ (มักเป็น /metrics)
  2. Prometheus ได้รับการกำหนดค่าด้วยรายการเป้าหมาย (เช่น IP และพอร์ตของแอปพลิเคชัน)
  3. ตามช่วงเวลาที่กำหนด Prometheus จะส่งคำขอ HTTP ไปยังปลายทาง /metrics ของแต่ละเป้าหมาย
  4. เป้าหมายตอบกลับด้วย 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

ขั้นตอน:

  1. ใน Grafana ให้เพิ่มแหล่งข้อมูลใหม่
  2. เลือก "Prometheus" เป็นประเภท
  3. ระบุ URL ของเซิร์ฟเวอร์ Prometheus
  4. เริ่มสร้างแดชบอร์ดโดยใช้ภาษาสอบถามของ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเก็บบันทึกด้วย kubectl logs
  2. ตัวชี้วัดด้วย Prometheus และ Grafana
  3. การตรวจสอบสุขภาพ: โพรบการทำงานและความพร้อม
  4. การติดตามแบบกระจายและเหตุการณ์
← กลับไปที่ Kubernetes Basics