स्वस्थ होने की परिभाषा के कारण इसे लागू करना कठिन है
आपने यहाँ अपने प्रश्न का उत्तर दिया। एक स्वास्थ्य जांच की परिभाषा अलग-अलग होती है, क्योंकि जो स्वस्थ है वह भिन्न होता है। यह इस बात पर भी निर्भर करता है कि स्वास्थ्यकर क्या जारी कर रहा है।
अपने आप से पूछने के लिए एक अच्छा सवाल है, "पूछने वाले के दृष्टिकोण से, क्या चेक की गई सेवा उम्मीद के मुताबिक काम कर रही है?" यदि यह आप हैं, तो आप इसे परिभाषित करते हैं। यदि यह एक और टीम / सेवा है, तो आपको यह पहचानने की आवश्यकता है कि हेल्थचेक के मानक / विनिर्देश क्या हैं।
एक बड़े संगठन में संभवत: आपके पास कुछ प्रकार के मानक होंगे जो एक स्वास्थ्य परीक्षण करना चाहिए। उसका पता लगाओ।
विशेष रूप से यहाँ, आपके वेबएप्प उदाहरण का अर्थ है कि यह स्वस्थ नहीं लौटना चाहिए क्योंकि वेबप स्वस्थ नहीं है। लेकिन शायद "स्वस्थ" की आपकी परिभाषा में इसे "ठीक" के रूप में शामिल किया जाएगा। यह ऊपर चर्चा आवश्यकताओं का हिस्सा है (फिर, भले ही यह सिर्फ आपका अपना कोड हो)।
मेरी सिफारिश यह मानते हुए कि यह कहीं और निर्दिष्ट नहीं है, किसी न किसी तरह का स्थिति कोड अलग-अलग विफलताओं से जुड़ा होगा। जब आप वेबएप को क्वेरी करते हैं, तो यह एक त्रुटि लौटा सकता है जो कहता है कि "निर्भर सेवा मर चुकी है" और इसलिए आपका क्लाइंट (या जो कुछ भी स्वास्थ्य जांच कर रहा है) ग्राहक के मृत होने का कारण जान सकता है।
संपादित सवालों के लिए:
क्या यह सेवा को स्वस्थ मानने के लिए पर्याप्त है अगर ऑर्केस्ट्रेशन सिस्टम रिपोर्ट करता है कि कार्य चल रहा है?
नहीं, सिर्फ इसलिए कि एक प्रक्रिया चल रही है इसका मतलब यह नहीं है कि यह लटका हुआ नहीं है, पूरी तरह से गैर-कानूनी है, या अन्य संभावनाओं की एक बड़ी विविधता है।
या क्या हमें प्रत्येक सेवा को मैन्युअल रूप से पिंग करना चाहिए?
यह आपके एप्लिकेशन की कार्यक्षमता के दायरे के आधार पर काम कर सकता है। यदि सेवा का सत्यापन करने पर "क्या आप जीवित हैं?" पिंग तब यह सब आवश्यक हो सकता है। लेकिन अगर सेवा आसानी से "जीवित और उत्तरदायी हो सकती है लेकिन वास्तव में काम नहीं कर रही है" तो शायद आपको अन्य चीजों को भी जांचना होगा।
या इसे और आगे जाना चाहिए और यह सुनिश्चित करने का प्रयास करना चाहिए कि वेब-ऐप वही करता है जो उसे करना चाहिए, जैसे वेब पेज दिखाना?
आपकी स्वास्थ्य सेवा को यह सुनिश्चित करने की आवश्यकता है कि अपेक्षित कार्यक्षमता अपेक्षित कार्य है।
आप साथ ही सम्पूर्ण healthcheck से छुटकारा मिल सकता अपने अनुप्रयोग रिटर्न "स्वस्थ" और यह क्या करने की जरूरत नहीं कर सकते, तो के रूप में यह झूठे सकारात्मक दे देंगे (भ्रमित उल्लेख बिल्ली समस्या डिबग करने के लिए कोशिश कर रहा है लोगों में से - 'हे हमारा वेबसर्वर स्वस्थ दिखाता है, हम पृष्ठ क्यों नहीं देख सकते? ')।
क्या हेल्थकेयर को यह भी जांचना होगा कि कुछ निर्भर सेवाएं भी चल रही हैं? डेटाबेस या ऑर्केस्ट्रेशन सिस्टम की ही तरह। या कि एक और स्वास्थ्य जांच की जिम्मेदारी है?
यह कुछ हद तक निर्भर करता है। यदि आपकी सेवा किसी अन्य सेवा पर निर्भर करती है, तो उस इंटरैक्शन की प्रकृति को आपके ऐप में भेजे गए एपीआई / नेटवर्क कॉल में परिलक्षित होना चाहिए और हेल्थचेक में शामिल किया जाना चाहिए।
उदाहरण के लिए, डेटाबेस से पढ़ने वाले एक वेबसर्वर को इसमें निर्मित डेटाबेस के बारे में स्थिति की जानकारी होनी चाहिए - या एपीआई कॉल विफल होने पर वेब ऐप बस दुर्घटनाग्रस्त हो जाएगा। आप इन कॉलों को अपने स्वास्थ्य परीक्षण में शामिल करने के लिए तुच्छ रूप से संशोधित कर सकते हैं।
हालांकि, यदि आपकी सेवा उन उपभोक्ताओं को ईवेंट भेज रही है जो बिना किसी मान्यता के सुनते हैं, तो यह आपके ऐप की कार्यक्षमता के लिए कम महत्वपूर्ण है कि उपभोक्ता जीवित हैं। आपके एप्लिकेशन को "स्वस्थ" संदेश भेज रहा है, वास्तव में उन्हें प्राप्त नहीं कर रहा है।
मूल रूप से, यदि आपकी सेवा को अन्य सेवाओं के साथ बात करने और अपने स्वास्थ्य को सत्यापित करने की आवश्यकता है, तो इससे कम से कम आपकी सेवा के स्वास्थ्य परीक्षण के लिए एक बुनियादी स्तर की जाँच हो सकती है। यह वैचारिक रूप से दिया जाना चाहिए जो मैंने अभी कहा है क्योंकि आपका आवेदन पहले से ही इसे संभाल रहा होगा (या बेतरतीब ढंग से दुर्घटनाग्रस्त हो रहा है, मुझे लगता है)।
और सबसे आखिर में, यदि आश्रित सेवाओं में से कोई एक मृत है, और वेब-ऐप बाद में विफल हो जाता है, तो क्या वेब-ऐप को खराब स्वास्थ्य की रिपोर्ट करनी चाहिए, या क्या यह अच्छा स्वास्थ्य है, क्योंकि यह वेब-ऐप की गलती नहीं है?
यह मूल रूप से ऊपर उत्तर दिया गया है। मेरी सिफारिश होगी कि आपका स्वास्थ्य परीक्षण एक कोड / संदेश / जो कुछ भी यह जानकारी देता है, उसे लौटा दें। जानकारी के दोनों टुकड़े महत्वपूर्ण हैं: यह कि आपकी सेवा के लिए आश्रित सेवा मृत है और परिणामस्वरूप आपकी सेवा अपेक्षित रूप से काम नहीं करेगी।