ApsaraMQ for RocketMQは、ダッシュボード機能とモニタリングおよびアラート機能を提供します。 この機能を使用して、メッセージングの各段階でブローカーのステータスと重要な指標を監視できます。 また、この機能を使用して、重要なメトリックのアラートルールを設定し、できるだけ早い機会に例外レポートを受け取ることもできます。 このトピックでは、ApsaraMQ for RocketMQのダッシュボード機能とモニタリングおよびアラート機能を使用して、ApsaraMQ for RocketMQの障害を管理する方法について説明します。 これにより、日常のO&Mとトラブルシューティングのソリューションが提供されます。
実装
コアの問題
次の項目は、トラブルシューティングの主要な問題を説明します。
サービスの例外に関するアラートを送信して報告する方法。
例外をすばやく見つける方法。
解決策
ApsaraMQ for RocketMQが提供するメトリックやトレースなどの指標には、メッセージングの各段階のステータス情報と、ApsaraMQ for RocketMQのブローカーおよびリソースのスループットが含まれます。 メトリクスは、大きく次のカテゴリに分類できます。
レベル1指標: ビジネスの運用をレベル1指標として測定できる指標を使用することを推奨します。 このようなメトリックの例外は、ビジネスシステムの問題を示します。 ほとんどの場合、これらのメトリックはモニタリングおよびアラートメトリックとして使用できます。
たとえば、1秒あたりのメッセージングトランザクション (TPS) が仕様の制限を超えたためにインスタンスのスロットリングがトリガーされた場合、TPSをモニタリングメトリックとして使用し、アラートルールを作成してインスタンスのスロットリングを効果的に防ぐことができます。
レベル2メトリック: 障害を特定するために使用できるメトリックをレベル2メトリックとして使用することを推奨します。
たとえば、累積メッセージは、メッセージ消費中に障害が発生したことを示します。 メッセージ送信成功率は、メッセージ送信中に例外が発生するかどうかを示します。
レベル3メトリック: このようなメトリックを使用して、レベル2メトリックをさらに分析できます。 レベル3メトリックは、レベル2メトリックの変更の原因を特定するのに役立ちます。
消費例外のソリューション
メッセージ処理の遅延時間を示すConsumerLagLatencyPerGidTopicメトリックを監視メトリックとして使用し、アラートルールを作成します。 詳細については、「モニタリングとアラート」をご参照ください。
このメトリックは、消費システムの健全性ステータスを示し、ビジネスへの影響のレベルに影響を与える可能性があります。 メトリックは、蓄積されたメッセージの数よりも多くの情報を提供する。
メッセージの数が少ない場合、蓄積されたメッセージの数は、問題が発生してもアラートをトリガーしない可能性があります。
メッセージの数が多い場合、蓄積されたメッセージの数は、誤ったアラートを生成し得る。
メッセージ数の変動が大きい場合、メッセージ蓄積のアラートしきい値を正確に設定できません。
メッセージ処理にかかる時間を示すrocketmq_process_timeメトリックと、メッセージ処理の成功率を示すrocketmq_process_time_count{invocation_status="success"/invocation_status="success | failure"} メトリックが正常かどうかを確認します。 これにより、コンシューマークライアントで例外が発生したかどうかを確認できます。
メッセージ処理成功率は、次の式を使用して計算されます。メッセージ処理成功率=メッセージの処理に成功した回数 /メッセージの処理に失敗した回数 + メッセージの処理に成功した回数。
ApsaraMQ for RocketMQコンソールのダッシュボードページに移動して、前述のメトリックの統計を表示できます。 ダッシュボードの詳細については、「ダッシュボード」をご参照ください。
ビジネスロジックまたは指標の変化傾向に基づいて、特定の原因を特定します。 たとえば、メッセージ処理時間が長くなった場合、コンシューマサービスのメモリとCPUが過負荷になっているかどうかを確認できます。 または、消費ロジックが依存する下流のビジネスロジックの実行ステータスを確認して、さらなる分析を行うこともできます。
運用例外のソリューション
メッセージ送信の成功率を示すrocketmq_send_cost_time_count{invocation_status="success"/invocation_status="success | failure"} メトリックが正常かどうかを確認します。 レートは、次の式を使用して計算されます。メッセージ送信成功レート=メッセージが正常に送信された回数 /メッセージの送信に失敗した回数 + メッセージが正常に送信された回数。
ApsaraMQ for RocketMQコンソールのダッシュボードページに移動して、前述のメトリックの統計を表示できます。 ダッシュボードの詳細については、「ダッシュボード」をご参照ください。
ネットワークが正常であるかどうか、またはブローカーの再起動によって短期的な送信障害が発生しているかどうかを確認します。