สิ่งนี้ยากที่จะนำไปใช้เพราะคำจำกัดความของสิ่งที่ดีต่อสุขภาพ
คุณตอบคำถามของคุณเองที่นี่ คำจำกัดความของการตรวจสุขภาพนั้นจะแตกต่างกันไปเพราะสิ่งที่ดีต่อสุขภาพนั้นแตกต่างกันไป นอกจากนี้ยังขึ้นอยู่กับสิ่งที่ออกรายการตรวจสุขภาพ
คำถามที่ดีที่จะถามตัวคุณเองคือ "จากมุมมองของผู้ถาม หากเป็นคุณคุณจะต้องกำหนดมัน หากเป็นทีม / บริการอื่นคุณต้องระบุมาตรฐาน / สเปคสำหรับ Healthcheck
ในองค์กรขนาดใหญ่คุณจะมีมาตรฐานบางอย่างสำหรับสิ่งที่ Healthcheck ควรทำ คิดออกว่า
โดยเฉพาะที่นี่ตัวอย่าง webapp ของคุณหมายความว่าไม่ควรกลับมามีสุขภาพดีอีกครั้งเนื่องจาก webapp ไม่ดีต่อสุขภาพ แต่บางทีคำนิยามของคุณของ "สุขภาพดี" อาจรวมสิ่งนี้ไว้เป็น "โอเค" นี่เป็นส่วนหนึ่งของการอภิปรายข้อกำหนดด้านบน (อีกครั้งแม้ว่าจะเป็นเพียงรหัสของคุณเอง)
คำแนะนำของฉันสมมติว่าไม่ได้ระบุไว้ที่อื่นจะมีรหัสสถานะบางอย่างที่เกี่ยวข้องกับความล้มเหลวที่แตกต่าง เมื่อคุณสืบค้นเว็บแอปมันอาจส่งคืนข้อผิดพลาดที่ระบุว่า "บริการที่ต้องพึ่งพานั้นตาย" และเพื่อให้ลูกค้าของคุณ (หรืออะไรก็ตามที่กำลังตรวจสอบสุขภาพ) สามารถทราบสาเหตุของไคลเอนต์ได้
สำหรับคำถามที่แก้ไขแล้ว:
มันดีพอที่จะพิจารณาบริการที่มีสุขภาพดีหรือไม่ถ้าระบบออเคสตร้ารายงานว่างานกำลังทำงานอยู่หรือไม่?
ไม่เพียงเพราะกระบวนการทำงานไม่ได้หมายความว่ากระบวนการจะไม่หยุดทำงานไม่ทำงานทั้งหมดหรือความเป็นไปได้อื่น ๆ อีกมากมาย
หรือเราควรทำการปิงแต่ละบริการด้วยตนเอง
สิ่งนี้อาจใช้งานได้ทั้งนี้ขึ้นอยู่กับขอบเขตการทำงานของแอปพลิเคชันของคุณ หากการตรวจสอบการบริการตอบสนองต่อ "คุณยังมีชีวิตอยู่?" ping ดังนั้นนี่อาจเป็นสิ่งที่จำเป็นทั้งหมด แต่ถ้าการบริการนั้นง่าย "มีชีวิตชีวาและตอบสนองได้ แต่ไม่ได้ทำงานจริง" คุณอาจต้องตรวจสอบสิ่งอื่นด้วยเช่นกัน
หรือควรดำเนินการต่อไปและพยายามตรวจสอบให้แน่ใจว่าแอปพลิเคชันเว็บทำในสิ่งที่ควรทำเช่นแสดงหน้าเว็บหรือไม่
Healthcheck ของคุณจำเป็นต้องตรวจสอบให้แน่ใจว่าการทำงานที่จำเป็นซึ่งคาดว่าจะทำงานได้ตามปกติ
หากผลตอบแทนของแอป "สุขภาพ" และไม่สามารถทำสิ่งที่ต้องทำคุณอาจรวมทั้งการกำจัด healthcheck ทั้งหมดเป็นมันจะให้ผลบวกปลอม (ไม่พูดถึงสับสนห่าจากคนพยายามที่จะแก้ปัญหาปัญหา - 'เดี๋ยวก่อน เว็บเซิร์ฟเวอร์ของเรามีสุขภาพดีทำไมเราไม่เห็นหน้าเว็บ ')
Healthcheck ต้องตรวจสอบด้วยว่าบริการที่ต้องพึ่งพาบางอย่างทำงานอยู่หรือไม่ เช่นเดียวกับฐานข้อมูลหรือระบบ orchestration นั้นเอง หรือว่าเป็นความรับผิดชอบของการตรวจสุขภาพอื่น?
มันขึ้นอยู่กับว่า หากบริการของคุณขึ้นอยู่กับบริการอื่นลักษณะของการโต้ตอบนั้นควรปรากฏในการเรียก API / เครือข่ายที่ส่งไปยังแอปของคุณและรวมไว้ใน healthcheck
ตัวอย่างเช่นเว็บเซิร์ฟเวอร์ที่อ่านจากฐานข้อมูลจำเป็นต้องมีข้อมูลสถานะเกี่ยวกับฐานข้อมูลที่ติดตั้งอยู่ภายในมิฉะนั้นเว็บแอปจะขัดข้องหากการเรียก API ล้มเหลว คุณสามารถแก้ไขการโทรเหล่านี้เพื่อรวมเข้ากับเฮลท์เช็คของคุณได้เล็กน้อย
อย่างไรก็ตามหากบริการของคุณกำลังส่งกิจกรรมไปยังผู้บริโภคที่รับฟังโดยไม่ผ่านการตรวจสอบใด ๆ แสดงว่าการทำงานของแอพของคุณนั้นมีความสำคัญน้อยกว่าผู้บริโภคทั่วไป "สุขภาพดี" กับแอปของคุณกำลังส่งข้อความ แต่ไม่ได้รับ
โดยทั่วไปหากบริการของคุณจำเป็นต้องพูดคุยกับบริการอื่น ๆ และตรวจสอบสุขภาพของพวกเขาแล้วอย่างน้อยก็ควรมีระดับการตรวจสอบขั้นพื้นฐานสำหรับการตรวจสุขภาพของบริการของคุณ สิ่งนี้ควรจะสมเหตุสมผลตามแนวคิดในสิ่งที่ฉันเพิ่งพูดเพราะใบสมัครของคุณจะจัดการกับปัญหานี้อยู่แล้ว (หรือคาดเดาแบบสุ่มฉันเดา)
และสุดท้ายถ้าบริการใดแอพหนึ่งนั้นเสียชีวิตและแอพพลิเคชั่นเว็บล้มเหลวในภายหลังเว็บแอพควรรายงานสุขภาพที่ไม่ดีหรือมีสุขภาพที่ดีเพราะไม่ใช่ความผิดของเว็บแอป
นี่คือคำตอบโดยทั่วไปข้างต้น คำแนะนำของฉันคือให้เฮลท์เช็คของคุณคืนรหัส / ข้อความ / อะไรก็ตามที่ให้ข้อมูลนี้ ข้อมูลทั้งสองมีความสำคัญ: การบริการที่ต้องพึ่งพาบริการที่คุณต้องการนั้นตายและบริการของคุณจะไม่ทำงานตามที่คาดไว้