บทนำเกี่ยวกับ Prometheus และ Grafana

Prometheus เป็นระบบตรวจสอบตามเมตริกแบบโอเพ่นซอร์ส รวบรวมข้อมูลจากบริการและโฮสต์โดยส่งคำขอ HTTP บนจุดสิ้นสุดเมตริก จากนั้นจะจัดเก็บผลลัพธ์ไว้ในฐานข้อมูลอนุกรมเวลา และทำให้พร้อมสำหรับการวิเคราะห์และการแจ้งเตือน

ทำไมต้องตรวจสอบ?

  • เปิดใช้งานการแจ้งเตือนเมื่อมีสิ่งผิดปกติ โดยเฉพาะอย่างยิ่งก่อนที่จะผิดพลาด เผื่อจะมีใครได้ดูบ้าง
  • โดยจะให้ข้อมูลเชิงลึกเพื่อเปิดใช้งานการวิเคราะห์ การดีบัก และการแก้ปัญหา
  • ช่วยให้คุณเห็นแนวโน้ม/การเปลี่ยนแปลงเมื่อเวลาผ่านไป ตัวอย่างเช่น จำนวนเซสชันที่ใช้งานอยู่ ณ เวลาใดเวลาหนึ่ง ซึ่งจะช่วยในการตัดสินใจในการออกแบบและการวางแผนกำลังการผลิต

การตรวจสอบมักเกี่ยวข้องกับเหตุการณ์ เหตุการณ์อาจรวมถึงการรับคำขอ HTTP การส่งการตอบกลับ การอ่านจากดิสก์ การเข้าสู่ระบบของผู้ใช้ การตรวจสอบระบบอาจรวมถึงการทำโปรไฟล์ การบันทึก การติดตาม ตัวชี้วัด การแจ้งเตือน & การแสดงภาพ

การตรวจสอบ Blackbox กับ Whitebox

การตรวจสอบอยู่ภายใต้สองประเภทหลัก:

การตรวจสอบกล่องดำ

ในการมอนิเตอร์ Blackbox การมอนิเตอร์จะอยู่ที่ระดับแอ็พพลิเคชันหรือโฮสต์ตามที่สังเกตได้จากภายนอก สิ่งนี้สามารถค่อนข้างจำกัด

การตรวจสอบไวท์บ็อกซ์

การตรวจสอบ Whitebox หมายถึงการตรวจสอบภายในของบริการ มันจะเปิดเผยข้อมูลเกี่ยวกับสถานะและประสิทธิภาพของส่วนประกอบภายใน

สี่สัญญาณทอง

ตามที่ Googleหากคุณวัดได้เพียงสี่เมตริกของระบบที่ผู้ใช้เห็น ให้เน้นที่สี่สิ่งต่อไปนี้ ซึ่งเรียกว่าสัญญาณทองสี่ประการ:

#1. เวลาแฝง

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

#2. การจราจร

การวัดปริมาณความต้องการในระบบของคุณ สำหรับบริการบนเว็บ โดยปกติจะเป็นคำขอ HTTP ต่อวินาที

  วิธีจัดระเบียบแอพ Gnome ลงในโฟลเดอร์แอพโดยอัตโนมัติด้วย App Fixer

#3. ข้อผิดพลาด

อัตราของคำขอที่ล้มเหลว

#4. ความอิ่มตัว

บริการของคุณเต็มที่แค่ไหน การเพิ่มเวลาแฝงมักเป็นตัวบ่งชี้ที่สำคัญของความอิ่มตัว ระบบจำนวนมากลดประสิทธิภาพลงมากก่อนที่จะใช้งานได้เต็ม 100%

ประเภทเมตริกของ Prometheus

Prometheus metrics แบ่งออกเป็นสี่ประเภทหลัก:

#1. เคาน์เตอร์

มูลค่าของตัวนับจะเพิ่มขึ้นเสมอ ไม่สามารถลดลงได้ แต่สามารถรีเซ็ตเป็นศูนย์ได้ ดังนั้น หากการขูดล้มเหลว นั่นหมายถึงจุดข้อมูลที่พลาดไปเท่านั้น การเพิ่มขึ้นสะสมจะมีให้ในการอ่านครั้งต่อไป ตัวอย่าง:

  • จำนวนคำขอ HTTP ทั้งหมดที่ได้รับ
  • จำนวนข้อยกเว้น

#2. วัด

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

#3. ฮิสโตแกรม

ฮิสโตแกรมจะสุ่มตัวอย่างและนับจำนวนเหล่านั้นในบัคเก็ตที่กำหนดค่าได้ ใช้สำหรับสิ่งต่างๆ เช่น ระยะเวลาของคำขอหรือขนาดการตอบกลับ ตัวอย่างเช่น คุณสามารถวัดระยะเวลาของคำขอสำหรับคำขอ HTTP หนึ่งๆ ได้ ฮิสโตแกรมจะมีชุดของบัคเก็ต เช่น 1 มิลลิวินาที 10 มิลลิวินาที และ 25 มิลลิวินาที แทนที่จะจัดเก็บทุกช่วงเวลาสำหรับทุกคำขอ Prometheus จะจัดเก็บความถี่ของคำขอที่อยู่ในบัคเก็ตเฉพาะ

#4. สรุป

คล้ายกับการสังเกตตัวอย่างฮิสโตแกรม โดยทั่วไปจะขอระยะเวลาหรือขนาดการตอบสนอง ซึ่งจะให้จำนวนการสังเกตทั้งหมดและผลรวมของค่าที่สังเกตได้ทั้งหมด ทำให้คุณสามารถคำนวณค่าเฉลี่ยของค่าที่สังเกตได้ ตัวอย่างเช่น ในหนึ่งนาที คุณมีคำขอสามรายการที่ใช้เวลา 2,3,4 วินาที ผลรวมจะเป็น 9 และการนับจะเป็น 3 เวลาแฝงจะเป็น 3 วินาที

ส่วนประกอบของระบบนิเวศ Prometheus

เซิร์ฟเวอร์ Prometheus

รวบรวมเมตริก จัดเก็บและทำให้พร้อมใช้งานสำหรับการสอบถาม ส่งการแจ้งเตือนตามเมตริกที่รวบรวม

ขูด

โพร เป็นระบบดึง เพื่อดึงเมตริก Prometheus ส่งคำขอ HTTP ที่เรียกว่าการขูด มันส่งการขูดไปยังเป้าหมายตามการกำหนดค่า

แต่ละเป้าหมาย (กำหนดแบบคงที่หรือค้นพบแบบไดนามิก) จะถูกคัดลอกตามช่วงเวลาปกติ (ช่วงเวลาการขูด) การขูดแต่ละครั้งจะอ่านจุดสิ้นสุด HTTP /metrics เพื่อรับสถานะปัจจุบันของเมตริกไคลเอ็นต์และคงค่าไว้ในฐานข้อมูลอนุกรมเวลาของ Prometheus

มีฐานข้อมูลอนุกรมเวลาเพิ่มเติมสำหรับโซลูชันการตรวจสอบที่คุณอาจต้องการสำรวจ

ไลบรารีไคลเอนต์

ในการตรวจสอบบริการ คุณต้องเพิ่มเครื่องมือในโค้ดของคุณ มีไคลเอนต์ไลบรารีสำหรับภาษายอดนิยมและรันไทม์ทั้งหมด เมื่อใช้ไลบรารีเหล่านี้ เมื่อคุณเพิ่มโค้ดสองสามบรรทัด โค้ดของคุณสามารถเริ่มปล่อยเมตริกได้ สิ่งนี้เรียกว่าเครื่องมือวัดโดยตรง ไลบรารีเหล่านี้ทำให้คุณสามารถกำหนดเมตริกภายในและเปิดเผยผ่านจุดสิ้นสุด HTTP เมื่อ Prometheus คัดลอกจุดสิ้นสุด HTTP ของเมตริก ไลบรารีไคลเอ็นต์จะส่งเมตริกไปยังเซิร์ฟเวอร์

  วิธีระบุการตั้งค่าอีควอไลเซอร์ต่อเพลงใน iTunes

Prometheus for Go, Java, Python และ Ruby ให้บริการไลบรารีไคลเอนต์อย่างเป็นทางการ Prometheus มีระบบนิเวศแบบเปิด นอกจากนี้ยังมีไลบรารีไคลเอนต์ที่สร้างโดยชุมชนสำหรับ C, PHP, Node.js, C#/.NET และอื่นๆ อีกมากมาย

ผู้ส่งออก

แอปพลิเคชั่นจำนวนมากเปิดเผยเมตริกในรูปแบบที่ไม่ใช่ Prometheus สำหรับแอปพลิเคชันเหล่านี้และแอปพลิเคชันที่คุณไม่ได้เป็นเจ้าของหรือไม่มีสิทธิ์เข้าถึงโค้ด คุณไม่สามารถเพิ่มเครื่องมือวัดได้โดยตรง ตัวอย่างเช่น เซิร์ฟเวอร์ MySQL, Kafka, JMX, HAProxy และ NGINX ในสถานการณ์เหล่านี้ คุณใช้ประโยชน์จาก ผู้ส่งออก.

ผู้ส่งออกเป็นเครื่องมือที่คุณปรับใช้พร้อมกับแอปพลิเคชันที่คุณต้องการใช้เมตริก ผู้ส่งออกทำหน้าที่เหมือนพร็อกซีระหว่างแอปพลิเคชันและ Prometheus มันจะรับคำขอจากเซิร์ฟเวอร์ Prometheus รวบรวมข้อมูลจากบันทึกการเข้าถึง บันทึกข้อผิดพลาดของแอปพลิเคชัน แปลงเป็นรูปแบบที่ถูกต้อง และสุดท้ายกลับไปที่เซิร์ฟเวอร์ Prometheus

ผู้ส่งออกที่ได้รับความนิยมบางราย ได้แก่ :

  • หน้าต่าง – สำหรับตัวชี้วัดเซิร์ฟเวอร์ Windows
  • โหนด – สำหรับเมตริกเซิร์ฟเวอร์ Linux
  • กล่องดำ – สำหรับตัวชี้วัดประสิทธิภาพของ DNS และเว็บไซต์
  • เจเอ็มเอ็กซ์ – สำหรับเมตริกแอ็พพลิเคชันที่ใช้ Java

เมื่อมีการติดตั้งแอปพลิเคชันหรือผู้ส่งออกแล้ว คุณต้องบอก Prometheus ว่าพวกเขาอยู่ที่ไหน สามารถทำได้โดยใช้การกำหนดค่าแบบคงที่ ในกรณีของสภาพแวดล้อมแบบไดนามิก จะไม่สามารถทำได้ ดังนั้นจึงใช้การค้นหาบริการ

การแจ้งเตือน

การแจ้งเตือนด้วย Prometheus ประกอบด้วยสองส่วน –

กฎการแจ้งเตือนจะส่งการแจ้งเตือนไปยัง Alertmanager

จากนั้น Alertmanager จะจัดการการแจ้งเตือนเหล่านั้น มันส่งการแจ้งเตือนโดยใช้การผสานการทำงานแบบสำเร็จรูปมากมาย เช่น อีเมล, Slack, Hipchat และ PagerDuty Alertmanager ยังสามารถดำเนินการปิดเสียงหรือรวมเพื่อลดจำนวนการแจ้งเตือน

นี่คือคำแนะนำในการตรวจสอบเซิร์ฟเวอร์ Linux โดยใช้ Prometheus และ Dashboard

การแสดงภาพด้วยแดชบอร์ด

Prometheus มี API จำนวนหนึ่งซึ่งการสืบค้น PromQL สามารถสร้างข้อมูลดิบสำหรับการแสดงภาพ

  11 แพลตฟอร์มการตลาดแบบอินฟลูเอนเซอร์ที่จะใช้สำหรับแคมเปญต่อไปของคุณ

แม้ว่า Prometheus จะมีเบราว์เซอร์นิพจน์ที่สามารถใช้สำหรับการสืบค้นแบบเฉพาะกิจได้ แต่เครื่องมือที่ดีที่สุดที่มีอยู่ก็คือ กราฟาน่า. Grafana ผสานรวมกับ Prometheus อย่างสมบูรณ์และสามารถสร้างแดชบอร์ดได้หลากหลาย

คุณจะต้องกำหนดค่า Prometheus เป็นแหล่งข้อมูลสำหรับ Grafana

คุณสามารถเพิ่มแดชบอร์ดได้โดย:

  • การนำเข้าแดชบอร์ดที่สร้างโดยชุมชน
  • สร้างของคุณเอง
  • การใช้แดชบอร์ดที่กำหนดไว้ล่วงหน้า

นี่คือลักษณะของแดชบอร์ดผู้ส่งออกโหนดที่กำหนดไว้ล่วงหน้า:

Grafana มีโมดูล worldPing ที่ให้คุณตรวจสอบไซต์และเมตริกประสิทธิภาพ DNS ได้ทั่วโลก

สรุป

Prometheus มีข้อกำหนดน้อยมาก เรียกใช้ได้ค่อนข้างง่ายเนื่องจากเป็นไบนารีเดี่ยวที่มีไฟล์กำหนดค่า สามารถจัดการกับเป้าหมายนับพันและนำเข้าตัวอย่างนับล้านต่อวินาที Prometheus ออกแบบมาเพื่อติดตามระบบโดยรวม สุขภาพ พฤติกรรมของระบบ

Grafana เป็นเครื่องมือที่ดีที่สุดสำหรับการแสดงภาพเมตริกและผสานรวมอย่างลงตัวกับ โพร.

เรื่องล่าสุด

x