Isso é difícil de implementar devido à definição do que é saudável
Você respondeu sua própria pergunta aqui. A definição de uma verificação de saúde vai variar, porque o que é saudável varia. Também depende do que está emitindo a verificação de saúde.
Uma boa pergunta é: "do ponto de vista do solicitante, o serviço verificado está funcionando como esperado?" Se este é você, você pode defini-lo. Se for outra equipe / serviço, você precisará identificar qual é o padrão / especificação para verificações de saúde.
Provavelmente em uma organização grande, você terá algum tipo de padrão para o que uma verificação de saúde deve fazer. Resolver aquilo.
Especificamente aqui, seu exemplo de aplicativo da web significa que ele não deve retornar íntegro porque o aplicativo da web não está íntegro. Mas talvez sua definição de "saudável" inclua isso como "ok". Isso faz parte da discussão de requisitos acima (novamente, mesmo que seja apenas seu próprio código).
Minha recomendação, supondo que não seja especificado em outro lugar, seria ter algum tipo de código de status associado a diferentes falhas. Quando você consulta o aplicativo da web, ele pode retornar um erro que diz "o serviço dependente está inoperante" e assim seu cliente (ou o que estiver executando a verificação de integridade) pode saber o motivo pelo o cliente está inoperante.
Para as perguntas editadas:
É bom considerar o serviço íntegro se o sistema de orquestração relatar que a tarefa está em execução?
Não, apenas porque um processo está em execução não significa que ele não esteja travado, totalmente não funcional ou com uma grande variedade de outras possibilidades.
Ou devemos executar ping manualmente em cada serviço?
Isso pode funcionar, dependendo do escopo da funcionalidade do seu aplicativo. Se a verificação do serviço responder a um "você está vivo?" ping, isso pode ser tudo o que é necessário. Mas se o serviço puder ser "vivo e responsivo, mas não estiver funcionando", talvez seja necessário verificar outras coisas também.
Ou deveria ir além e tentar garantir que o aplicativo Web faça o que deveria fazer, como mostrar uma página da Web?
Sua verificação de saúde precisa garantir que a funcionalidade necessária esperada funcione conforme o esperado.
Se seu aplicativo retorna "saudável" e não pode fazer o que precisa fazer, assim como você pode se livrar de toda a healthcheck como ele vai te dar falsos positivos (para não mencionar confundir o Parreira fora de pessoas tentando depurar o problema - 'hey nosso servidor da web mostra boa saúde, por que não conseguimos ver a página? ').
A verificação de integridade também precisa verificar se alguns serviços dependentes também estão em execução? Como um banco de dados ou o próprio sistema de orquestração. Ou isso é responsabilidade de outro exame de saúde?
Isso depende um pouco. Se o seu serviço depende de outro serviço, a natureza dessa interação deve ser refletida nas chamadas de API / rede enviadas a ele no seu aplicativo e incorporadas à verificação de saúde.
Por exemplo, um servidor da web que lê um banco de dados precisa ter informações de status sobre o banco de dados embutido nele - ou o aplicativo da web simplesmente trava se a chamada da API falhar. Você pode modificar trivialmente essas chamadas para serem incorporadas à sua verificação de saúde.
No entanto, se seu serviço estiver enviando eventos para consumidores que ouvem, sem nenhuma validação, será menos importante para a funcionalidade do seu aplicativo que os consumidores estejam vivos. "Saudável" para o seu aplicativo está enviando as mensagens, na verdade não as recebe.
Basicamente, se o seu serviço precisar conversar com outros serviços e verificar a saúde deles de qualquer maneira, faz sentido ter pelo menos um nível básico de verificação para verificar a integridade do serviço. Isso deve fazer sentido conceitualmente, considerando o que acabei de dizer, pois seu aplicativo já estará lidando com isso (ou travando aleatoriamente, eu acho).
E, finalmente, se um dos serviços dependentes estiver morto e o aplicativo Web falhar posteriormente, o aplicativo Web deve relatar um problema de saúde ou é bom, porque não é culpa dos aplicativos da Web?
Isso é basicamente respondido acima. Minha recomendação seria que sua verificação de saúde retornasse um código / mensagem / o que for que der essas informações. As duas informações são importantes: que o serviço dependente de que seu serviço precisa está morto e que seu serviço não funcionará conforme o esperado.