Ini sulit diterapkan karena definisi apa yang sehat
Anda menjawab pertanyaan Anda sendiri di sini. Definisi pemeriksaan kesehatan akan bervariasi, karena apa yang sehat bervariasi. Itu juga tergantung pada apa yang mengeluarkan cek kesehatan.
Pertanyaan yang bagus untuk ditanyakan kepada diri sendiri adalah, "dari sudut pandang si penanya, apakah layanan yang diperiksa berfungsi sebagaimana diharapkan?" Jika ini Anda, Anda harus mendefinisikannya. Jika itu adalah tim / layanan lain, Anda perlu mengidentifikasi standar / spesifikasi untuk pemeriksaan kesehatan.
Mungkin dalam organisasi besar, Anda akan memiliki semacam standar untuk apa yang harus dilakukan pemeriksaan kesehatan. Cari tahu itu.
Khususnya di sini, contoh webapp Anda berarti tidak boleh kembali sehat karena webapp tidak sehat. Tapi mungkin definisi Anda tentang "sehat" akan memasukkan ini sebagai "ok." Ini adalah bagian dari diskusi persyaratan di atas (sekali lagi, bahkan jika itu hanya kode Anda sendiri).
Rekomendasi saya dengan asumsi itu tidak ditentukan di tempat lain akan memiliki semacam kode status yang terkait dengan kegagalan yang berbeda. Ketika Anda meminta aplikasi web, itu mungkin mengembalikan kesalahan yang mengatakan "layanan dependen mati" dan klien Anda (atau apa pun yang melakukan pemeriksaan kesehatan) dapat mengetahui alasan klien mati.
Untuk pertanyaan yang diedit:
Apakah cukup baik untuk mempertimbangkan layanan yang sehat jika sistem orkestrasi melaporkan bahwa tugas sedang berjalan?
Tidak, hanya karena suatu proses sedang berjalan tidak berarti itu tidak digantung, sama sekali tidak berfungsi, atau berbagai kemungkinan lainnya.
Atau haruskah kita secara manual melakukan ping ke setiap layanan?
Ini mungkin berhasil, tergantung pada cakupan fungsionalitas aplikasi Anda. Jika memverifikasi layanan merespons "Anda masih hidup?" ping maka ini mungkin semua yang diperlukan. Tetapi jika layanan dapat dengan mudah "hidup dan responsif tetapi tidak benar-benar berfungsi" maka mungkin Anda perlu memeriksa hal-hal lain juga.
Atau haruskah ia melangkah lebih jauh dan berusaha memastikan bahwa aplikasi-web melakukan apa yang seharusnya dilakukan, seperti menampilkan halaman web?
Pemeriksaan kesehatan Anda perlu memastikan bahwa fungsionalitas yang diperlukan yang diharapkan berfungsi seperti yang diharapkan.
Jika kembali aplikasi Anda "sehat" dan tidak bisa melakukan apa yang perlu dilakukan, Anda mungkin juga menyingkirkan seluruh healthcheck karena akan memberikan hasil positif palsu (belum lagi bingung dengan sih dari orang yang mencoba untuk debug masalah - 'hey server web kami menunjukkan sehat, mengapa kita tidak bisa melihat halaman? ').
Apakah pemeriksaan kesehatan juga harus memeriksa apakah beberapa layanan dependen juga berjalan? Seperti database atau sistem orkestrasi itu sendiri. Atau apakah itu tanggung jawab pemeriksaan kesehatan lain?
Ini agak tergantung. Jika layanan Anda bergantung pada layanan lain, sifat interaksi itu harus tercermin dalam API / panggilan jaringan yang dikirim ke sana di aplikasi Anda dan dimasukkan ke dalam cek kesehatan.
Misalnya, server web yang membaca dari basis data perlu memiliki informasi status tentang basis data yang dimasukkan ke dalamnya - atau aplikasi web akan macet jika panggilan API gagal. Anda dapat mengubah panggilan ini secara sepele untuk dimasukkan ke dalam cek kesehatan Anda.
Namun, jika layanan Anda mengirimkan acara ke konsumen yang mendengarkan, tanpa validasi apa pun, maka kurang penting bagi fungsionalitas aplikasi Anda bahwa konsumen masih hidup. "Sehat" ke aplikasi Anda mengirim pesan, tidak benar-benar menerimanya.
Pada dasarnya, jika layanan Anda perlu berbicara dengan layanan lain dan memverifikasi kesehatan mereka, masuk akal untuk setidaknya memiliki tingkat dasar pemeriksaan ini untuk pemeriksaan kesehatan layanan Anda. Ini seharusnya masuk akal secara konseptual mengingat apa yang baru saja saya katakan karena aplikasi Anda sudah akan menangani ini (atau crashing secara acak, saya kira).
Dan yang terakhir, jika salah satu layanan dependen mati, dan aplikasi web kemudian gagal, haruskah aplikasi web melaporkan kesehatan yang buruk, atau apakah itu kesehatan yang baik, karena itu bukan kesalahan aplikasi web?
Ini pada dasarnya dijawab di atas. Rekomendasi saya adalah meminta cek kesehatan Anda mengembalikan kode / pesan / apa pun yang memberikan informasi ini. Kedua informasi itu penting: bahwa layanan dependen yang dibutuhkan layanan Anda sudah mati dan akibatnya layanan Anda tidak akan berfungsi seperti yang diharapkan.