5. 死活監視

ここでは死活監視の方法について解説します。

サーバーアプリケーションはヘルスチェック用のエンドポイントを提供しています。各サービスの設定ファイルの health.bind-address に指定したアドレスでヘルチェック用のサーバーが起動します。

ヘルチェックエンドエンドポイントの仕様は API 仕様 を参照してください。

ヘルスチェックエンドポイントを実装しているアプリケーションは次の通りです。

特に設定していません。 deployment.zip を使用している場合は、 docker-compose.api.yml 内のサービスのヘルスチェックを有効にします。

各サービスの 9080 ポートにてヘルスチェックが可能となるので必要に応じて適宜設定します。

5.1. プロセスの監視

次のエンドポイントを使用します。

# curlによるアクセス例
curl <ヘルスチェックのベースURL>/status

このエンドポイントを使用して任意の監視方法で監視を実施してください。 エンドポイントから応答がない場合はサービスを再起動してください。

注釈

Helmチャートによりインストールした場合は、「Liveness Probe」 にヘルスチェック用のエンドポイントが設定されています。 そのままの設定で通常は問題ありません。

5.2. アプリケーション監視

監視ソフトウェアに Prometheus を使用している場合は、サーバーアプリケーションのメトリクス情報を取得できます。 次のエンドポイントを使用します。

# curlによるアクセス例
curl <ヘルスチェックのベースURL>/prometheus/metrics

取得可能なメトリクスは次の通りです。

メトリクス名

説明

http_requests_total

HTTPリクエストの総数

http_request_duration_seconds

HTTPリクエストの応答時間のヒストグラム

http_requests_in_flight

処理中のHTTPリクエスト数

http_request_size_bytes

HTTPリクエストサイズのヒストグラム

http_response_size_bytes

HTTPレスポンスサイズのヒストグラム

go_<golang関連のメトリクス>

Goのランタイム関連のメトリクス

Broker Serviceは前述のメトリクスに加え次のメトリクスを取得できます。

メトリクス名

説明

iscp2_message_receive_count_total

iSCPの受信メッセージ総数

iscp2_message_receive_bytes_total

iSCPの受信メッセージバイト数

iscp2_message_transmit_count_total

iSCPの送信メッセージ総数

iscp2_message_transmit_bytes_total

iSCPの送信メッセージバイト数

iscp2_upstreams

iSCPの現在のアップストリーム数

iscp2_downstreams

iSCPの現在のダウンストリーム数

iscp2_connections

iSCPの現在のコネクション数