건강에 대한 정의로 인해 구현하기가 어렵습니다.
당신은 여기에 당신의 자신의 질문에 대답했습니다. 건강 검진의 정의는 다양 할 수 있습니다. 또한 건강 검진을 발행하는 대상에 따라 다릅니다.
"질문자의 관점에서, 확인 된 서비스가 예상대로 작동합니까?" 이것이 당신이라면, 그것을 정의하게됩니다. 다른 팀 / 서비스 인 경우 상태 점검에 대한 표준 / 사양이 무엇인지 식별해야합니다.
대규모 조직에서 건강 검진이 수행해야 할 작업에 대한 일종의 표준이있을 것입니다. 알아 내세요.
특히 여기에서 웹앱 예제는 웹앱이 건강하지 않기 때문에 상태가 양호하지 않아야 함을 의미합니다. 그러나 "건강한"에 대한 귀하의 정의에는 "ok"가 포함됩니다. 이것은 위에서 언급 한 요구 사항 중 일부입니다 (다시 자신의 코드 일지라도).
다른 곳에서 지정하지 않았다고 가정하면 다른 오류와 관련된 일종의 상태 코드가 있어야합니다. 웹앱을 쿼리하면 "종속 서비스가 종료되었습니다"라는 오류가 표시되어 클라이언트 (또는 상태 확인을 수행하는 모든 사람)가 클라이언트가 종료 된 이유를 알 수 있습니다 .
편집 된 질문의 경우 :
오케스트레이션 시스템에서 작업이 실행되고 있다고보고하는 경우 서비스를 정상으로 간주하는 것으로 충분합니까?
아니요, 프로세스가 실행되고 있다고해서 중단되지 않거나 완전히 작동하지 않거나 다른 다양한 가능성이있는 것은 아닙니다.
아니면 각 서비스를 수동으로 핑해야합니까?
응용 프로그램 기능의 범위에 따라 작동 할 수 있습니다. 서비스를 확인하는 것이 "살아 있습니까?" 핑 다음이 모든 것이 필요할 수 있습니다. 그러나 서비스가 쉽게 "살아 있고 반응 적이지만 실제로 작동하지 않을 수"있는 경우 다른 사항도 확인해야합니다.
아니면 더 나아가 웹 페이지를 표시하는 것과 같이 웹 앱이해야 할 일을 수행하도록해야합니까?
건강 검진은 필요한 필수 기능이 예상대로 작동하는지 확인해야합니다.
당신은뿐만 아니라 그것이 잘못된 반응을 줄 것으로 전체 상태 검사 제거 수, 앱 반환 "건강한"그것은 할 필요가 무엇을 할 수없는 경우합니다 (혼동 말할 것도없고 도대체 문제를 디버깅하는 노력 명 중 - '헤이 웹 서버에 문제가 없는데 왜 페이지를 볼 수 없습니까? ').
상태 확인에서 일부 종속 서비스도 실행 중인지 확인해야합니까? 데이터베이스 또는 오케스트레이션 시스템 자체와 같습니다. 아니면 다른 건강 검진의 책임입니까?
이것은 다소 다릅니다. 서비스가 다른 서비스에 의존하는 경우 해당 상호 작용의 특성은 앱에서 전송 된 API / 네트워크 호출에 반영되어 상태 확인에 포함되어야합니다.
예를 들어 데이터베이스에서 읽는 웹 서버에는 데이터베이스에 대한 상태 정보가 내장되어 있어야합니다. 그렇지 않으면 API 호출이 실패하면 웹 앱이 중단됩니다. 건강 검진에 포함되도록 이러한 전화를 간단하게 수정할 수 있습니다.
그러나 서비스가 유효성 검사없이 수신 대기하는 이벤트를 소비자에게 보내는 경우 소비자가 살아있는 것이 앱 의 기능 에 덜 중요합니다 . 앱에 "건강"한 메시지는 실제로는받지 않고 메시지를 보내는 것입니다.
기본적으로 서비스가 다른 서비스와 대화하고 건강 상태를 확인해야하는 경우 최소한 서비스의 건강 상태 점검을위한 기본 수준의 점검이 필요합니다. 응용 프로그램에서 이미 이것을 처리 할 것이므로 무작위로 충돌한다고 생각합니다.
그리고 마지막으로 종속 서비스 중 하나가 종료되고 웹앱이 실패하는 경우 웹앱이 웹앱 결함이 아니기 때문에 건강 상태가 좋지 않은지 또는 양호합니까?
이것은 기본적으로 위의 답변입니다. 본인의 건강 검진이이 정보를 제공하는 코드 / 메시지 / 무엇을 반환하도록하는 것이 좋습니다. 두 가지 정보 모두 중요합니다. 서비스에 필요한 종속 서비스가 종료 되었고 결과적으로 서비스가 예상대로 작동하지 않는다는 것입니다.