# 診断

診断モジュールは、ユーザーがエラーや問題の原因を特定しデバッグするためのツールを提供します。

- **アラーム**：システムの現在および過去のアラームを確認できます。
- **WebSocketクライアント**：ページ上のWebSocketクライアントを使って、接続やパブリッシュ・サブスクライブのデバッグを迅速に行えます。
- **トピック監視**：トピックごとにメッセージの受信、送信、ドロップされたデータを監視・表示します。
- **遅延サブスクリプション**：遅延サブスクリプション統計を有効にすると、クライアントIDごとにメッセージ送信の全体フローで設定した閾値を超える時間を消費しているサブスクリプションをページ上で確認できます。
- **ログトレース**：特定のクライアント、トピック、IPに対してリアルタイムでログをフィルタリングし、ページ上で閲覧またはダウンロードできます。

## アラーム

左側の診断メニューから「アラート」をクリックすると、アラートページに移動します。アラームページでは、サーバーの現在のアラームと過去のアラーム（非アクティブなアラーム）を確認できます。アラーム情報には、アラーム名、アラームメッセージの内容、アラームを発生させたノード、アラームレベル、アラームの発生時間、アラームの継続時間が含まれます。

現在のアラームページでは、右上の`更新`ボタンをクリックしてリストを更新し、新しいアラームが発生しているか確認できます。現在のアラームのトリガー閾値や監視間隔のデフォルト値が実際の要件に合わない場合は、右上の`設定`ボタンをクリックして[監視](./configuration.md#monitoring)ページに移動し設定を変更できます。アラーム履歴ページでは、右上の`履歴アラームをクリア`ボタンをクリックしてアラーム履歴を削除できます。

現在サポートされているアラームの情報や詳細は[アラーム](../observability/alarms.md)をご参照ください。

<img src="./assets/alarm.png" alt="アラーム画面" style="zoom:67%;" />

## WebSocketクライアント

左側の診断メニューから**WebSocketクライアント**をクリックすると、WebSocketクライアントページに移動します。WebSocketクライアントページは、クライアントの接続、サブスクライブ、パブリッシュ機能を迅速にデバッグできるシンプルかつ効果的なMQTTテストツールを提供します。自身が送受信したメッセージデータの確認も可能です。ページ上部の`+`ボタンをクリックすると複数のWebSocket接続を追加でき、ページを更新すると全接続の状態および送受信データはクリアされます。

<img src="./assets/web-socket.png" alt="WebSocketクライアント画面" style="zoom:67%;" />

## トピックメトリクス

左側の診断メニューから**トピック監視**をクリックすると、トピックメトリクスページに移動します。トピック監視では、ページ右上の`作成`ボタンをクリックし、監視したいトピックを入力して`追加`をクリックすると新しいトピックメトリクス統計を作成できます。作成に成功すると、トピックごとのメッセージの受信数、送信数、ドロップ数およびそれらのレートを確認でき、詳細では各QoSごとのデータも閲覧可能です。`リセット`ボタンをクリックすると、既存の統計をリセットできます。テーブルのヘッダーにある統計指標をクリックすると昇順・降順で監視リストを並べ替えられます。

<img src="./assets/topic-metrics.png" alt="トピックメトリクス画面" style="zoom:67%;" />

> 全体のパフォーマンス上の理由から、現在トピック統計はトピック名のみ対応しており、+や#のワイルドカードを含むトピックフィルター（例：a/+など）はサポートしていません。

## 遅延サブスクリプション

左側の診断メニューから**遅延サブスクリプション**をクリックすると、遅延サブスクリプションページに移動します。遅延サブスクリプション統計を利用するには、まず基本設定を行いこの機能を有効化する必要があります。各設定項目の説明は[遅延サブスクリプション](../observability/slow-subscribers-statistics.md#configure-and-enable-slow-subscriptions)をご参照ください。有効化すると、メッセージ配信の全フローで設定した`time delay threshold`を超える時間を消費したメッセージが統計対象となります。統計リストはデフォルトでレイテンシの降順でサブスクライバーとトピック情報を表示します。`Client ID`をクリックすると該当サブスクライバーの接続詳細ページに遷移し、接続情報を確認して遅延の原因を調査できます。

<img src="./assets/slow-sub.png" alt="遅延サブスクリプション画面" style="zoom:67%;" />

## ログトレース

左側の診断メニューから**ログトレース**をクリックすると、ログトレースページに移動します。特定のクライアント、トピック、IPのログをリアルタイムでフィルタリングし、デバッグやトラブルシューティングに利用できます。ページ右上の`作成`ボタンをクリックし、トレース対象を選択します。クライアントIDとIPは完全一致で入力し、トピックは完全一致に加えワイルドカードマッチングもサポートします。進行中のトレースはリストから手動で停止可能で、停止済みのトレースはリストから削除できます。

<img src="./assets/log-trace.png" alt="ログトレース画面" style="zoom:67%;" />

リストで現在のすべてのトレースを確認でき、特定のトレースのログを閲覧またはダウンロード可能です。クラスター環境では、リストの`ダウンロード`ボタンをクリックするとダッシュボードに対応するノードのログがダウンロードされ、`表示`ボタンをクリックするとログの閲覧・ダウンロード用にノードを選択できます。

![image](./assets/log-trace-detail.png)
