正常性チェックとは
AppService/Functionsにデプロイしたユーザのアプリケーションが正常に稼働しているかどうかを確認できる機能です。「正常の定義」については、ユーザが設定したプログラムから正常200-299ステータスが返却されればAzure側が正常と判断するといった具合になります。
公式ドキュメント:正常性チェック
Azure内部で何をしているのか
正常性チェックは、アプリケーションへの指定パスへのシステムからのPingの結果(レスポンス 200 - 299 かどうか)をもとに、アプリケーションが正常稼働しているかを判断してます。実際にAzure内部でPingを飛ばしてくれているということです。
アラート検知を設定
正常性チェックを有効にすることで利用できるようになるメトリックがあるため、そのメトリックを使って異常値になった際にメールで通知させることができます。
具体的には、正常性チェックを有効にすると「Health check status」のメトリックを利用できるようになるので、メトリックアラート検知(Health check status の値が異常状態に変化した場合にメール通知させる)を設定できます。
インスタンスが解放される(アイドル状態になる)と異常判定される?
AppService/Functionsのアプリケーションに一定の時間リクエストが送られてこない場合、インスタンスがアイドル状態になり、Ping 応答が 200 - 299 以外になる可能性があります。
その回避方法の一つとして、常時接続機能(AlwaysOn)を有効化しておくということが考えられます。有効にしても、追加料金は発生しません、デプロイしたアプリケーションがいずれかのインスタンス上で常にスタンバイ状態でいてくれることについて、デメリットはないと思います。
リソース正常性とは
Azureプラットフォーム側のサービス自体が正常に提供できているか・データセンターなどが正常に稼働できているかを確認できる機能です。
FunctionsやStorageAccount(ストレージアカウント)が正常にサービス提供できていない(Microsoftのどこかで障害が発生する)と、ユーザのシステムが正常に動作しない場合が発生してしまいます。
アラート検知を設定
正常性チェックと同様に、リソース正常性でも、アラート検知によるメール通知を設定できます。
たとえば、AppService/Functions/StorageAccountが正常にサービスを提供できていない場合、メールで通知されるように設定できます。
Azure側の環境が正常稼働しているか確認
Azureプラットフォームが正常に稼働しているかどうかを手動で確認したい場合は、以下の公式サイトがあります。使用するタイミングとしては、たとえばAppService/Functionsのアプリケーションを最近何も変更していないのにエラーになり始めてしまった場合に、Azure側が異常な状態になっていないか確認をしたりします。✕がついているとこのリージョンで障害が発生しているんだな、とわかるときがあります。
ただ、いずれかのリージョン内すべてのリソースに影響が出るような障害でないと以下のページで✕はつかないようになっています。一部のユーザのみに影響が出る障害の場合は、リソース正常性画面で自分のリソースに影響が出ているかを確認できます。
公式ドキュメント:Azure Status
以上です。