ApsaraMQ for RocketMQ を Cloud Monitor と連携させることで、アラートルールを設定できます。これにより、インスタンスのリアルタイムステータスや主要なビジネスメトリクスを監視し、異常を迅速に通知されることで、本番環境のリスクをプロアクティブに管理できます。
背景情報
ApsaraMQ for RocketMQ は、フルマネージドのメッセージングサービスを提供します。各インスタンス仕様には明確な SLA 保証 が付随しており、インスタンス購入後、メッセージング TPS やメッセージストレージなどのメトリクスが仕様を満たすことを保証します。
インスタンスのパフォーマンスを管理する必要はありませんが、ビジネスのワークロードがインスタンスの仕様制限に近づいていないかを監視する必要があります。ApsaraMQ for RocketMQ は Cloud Monitor と統合されており、以下の問題に対処するための、すぐに使える無料のモニタリングおよびアラートサービスを提供します。
-
インスタンス仕様のウォーターマークに対するプロアクティブなアラート
実際の使用量がインスタンスの仕様制限を超えた場合、ApsaraMQ for RocketMQ は厳格なスロットリングを実施します。インスタンス仕様のウォーターマークに対するアラートを事前に設定することで、これらの制限を超えるリスクを特定し、インスタンスを迅速にスペックアップして、スロットリングによるビジネスの中断を回避できます。
-
ビジネスロジックエラーに対するプロアクティブなアラート
メッセージの送受信時にエラーが発生することがあります。呼び出しエラーに対するアラートを設定することで、ユーザーからの報告前に異常を検出し、エラーの原因を迅速に特定して修正できます。
-
ビジネスパフォーマンスメトリクスに対するプロアクティブなアラート
ご利用のメッセージ指向ミドルウェアに、レスポンスタイム (RT) やメッセージレイテンシーなどの特定のパフォーマンス要件がある場合、これらのビジネスメトリクスに対するアラートを設定することで、ビジネスリスクをプロアクティブに管理できます。
アラートルールの設定原則
ApsaraMQ for RocketMQ は、豊富な メトリクス と アラートの監視項目 を提供します。これらの項目は、運用ウォーターマーク、送受信パフォーマンス、エラーイベントの 3 種類のアラートに分類できます。
豊富な本番環境での経験に基づき、以下の原則に従ってアラートを設定することを推奨します。
以下の主要な監視項目は、基本的な推奨事項です。ApsaraMQ for RocketMQ は包括的な監視メトリクスセットを提供しており、ビジネスニーズに応じて、より詳細で広範なアラートを設定できます。詳細については、「モニタリングとアラート」をご参照ください。
|
カテゴリ |
主要なアラート |
推奨事項 |
役割 |
|
インスタンス運用ウォーターマークと消費メトリクス |
インスタンス API 呼び出し頻度 |
|
運用担当者 |
|
メッセージ送受信パフォーマンスメトリクス |
|
|
|
|
メッセージ送受信エラーイベント |
|
|
|
アラートルール設定へのアクセス
ApsaraMQ for RocketMQ コンソールにログインします。左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。[インスタンス] ページで、管理したいインスタンスの名前をクリックします。
-
左側のナビゲーションウィンドウで モニタリングおよびアラート をクリックし、次に アラートルールの作成 をクリックします。
ベストプラクティス
インスタンス API 呼び出し頻度のアラート設定
-
背景:各 ApsaraMQ for RocketMQ インスタンスには、メッセージ送受信の API 呼び出しに対する TPS 制限が定義されています。例えば、Standard Edition インスタンスは 1 秒あたり 5,000 回の API 呼び出しをサポートします。API 呼び出し頻度がこの制限を超えると、インスタンスはスロットリングされます。
-
未設定時のリスク:このアラートがないと、インスタンスの API 呼び出し制限を超える前に警告が得られず、一部のメッセージリクエストがスロットリングにより失敗します。
-
設定のタイミング:インスタンス作成直後にこのアラートを設定することを推奨します。
[ルール名] を [インスタンス API 呼び出し頻度アラート] に設定します。[メトリクスタイプ] で [基本メトリクス] を選択し、[メトリクス] で [インスタンス / インスタンス API 呼び出し頻度 (インスタンス)] を選択します。[重大] (電話、SMS、メール、Webhook で通知)、[警告] (SMS、メール、Webhook で通知)、[情報] (メール、Webhook で通知) の 3 つのアラートレベルを設定します。各レベルで、`合計 >= しきい値` (単位:count/s) の条件が 3 連続期間 (1 期間 = 1 分) 続いた場合にトリガーするように設定します。[重大] レベルには、希望のしきい値を入力します。
-
推奨しきい値:インスタンスのピーク TPS の 70% にしきい値を設定することを推奨します。例えば、インスタンスのピーク TPS が 10,000 の場合、アラートのしきい値を 7,000 に設定します。インスタンスのピーク TPS は、コンソールの インスタンスの詳細 ページで確認できます。
-
アラート対応:インスタンス API 呼び出し頻度のアラートを受信した場合は、以下の手順に従います。
-
インスタンスの詳細 ページで、ダッシュボード タブをクリックします。
-
[インスタンスメッセージ量の概要] セクションで、[インスタンスリクエスト数メトリクス (生成 + 消費)] の [TPS Max 値] 曲線を確認し、アラートのしきい値に達したときの時間パターンを特定します。
-
[メッセージビジネスメトリックの概要] セクションで [メッセージ生成率 (メッセージ/分) 別の上位 20 Topic] と [メッセージ消費率 (メッセージ/分) 別の上位 20 GroupID] のメトリックを確認し、しきい値に達したときの時間パターンに基づいて、データに異常があるトピックとグループを特定し、それらの曲線を分析してトラフィックの変動が想定内であるかどうかを判断します。
-
ビジネスの変動が異常である場合は、ビジネスチームに連絡して異常の原因をさらに分析します。
-
トラフィックの増加が想定内である場合、これはインスタンス仕様が不十分であることを示します。直ちにインスタンスをスペックアップしてください。手順については、「インスタンスのスペックアップまたはスペックダウン」をご参照ください。
-
メッセージ生成および消費レートのアラート設定
-
背景:ApsaraMQ for RocketMQ は、トピックおよびグループレベルでのメッセージ送受信 TPS の監視をサポートしています。これにより、特定のビジネスアプリケーションの TPS に対するアラートを設定し、ビジネス規模をタイムリーに把握できます。
-
未設定時のリスク:このアラートがないと、トラフィックの低下や急増が警告なしに発生し、予期せぬビジネスリスクにつながる可能性があります。
-
設定のタイミング:ビジネスが本番稼働し、トラフィックが安定した後にこのアラートを設定することを推奨します。
プロデューサー送信レート
ルール設定ダイアログで、[ルール名] を [プロデューサーの 1 分あたりの送信メッセージ数アラート] に設定します。[メトリクスタイプ] で [基本メトリクス] タブを選択し、[メトリクス] で [プロデューサー / 1 分あたりの送信メッセージ数 (トピック)] を選択します。重大 (電話、SMS、メール、Webhook で通知)、警告 (SMS、メール、Webhook で通知)、情報 (メール、Webhook で通知) の 3 つのアラートレベルを設定します。各レベルで、`合計 >= しきい値` (単位:count/m) の条件が 3 連続期間 (1 期間 = 1 分) 続いた場合にトリガーするように設定し、ビジネスニーズに基づいて適切な しきい値を入力します。[ディメンション] で [topic] を選択します。
-
推奨しきい値:ビジネスが本番稼働した後、安定したトラフィック量に基づいてアラートのしきい値を見積もります。
-
アラート対応:メッセージ送受信 TPS アラートを受信した場合は、以下の手順に従います。
-
トピックの管理 ページで、アラートルールで指定したトピックの名前をクリックします。
-
トピックの詳細 ページで、ダッシュボード タブをクリックします。
-
[メッセージ量 (メッセージ/分)] チャートで Production 曲線を確認し、お客様のビジネスモデルに基づいて、曲線の変化が妥当であるかどうかを判断し、異常がないか分析します。
-
コンシューマー受信レート
[ルール説明の設定] ダイアログで、[ルール名] を [コンシューマーの 1 分あたりの受信メッセージ数アラート] に設定します。[メトリクスタイプ] で [基本メトリクス] を選択し、[メトリクス] で [コンシューマー / 1 分あたりの受信メッセージ数 (グループ)] を選択します。重大、警告、情報の 3 つのアラートレベルを設定します。集計方法として [合計] を選択します。値がしきい値以上になる条件が 3 連続期間 (1 期間 = 1 分) 続いた場合にトリガーするように設定し、適切な しきい値を入力します。[ディメンション] で [groupId] を選択し、対象のコンシューマーグループを指定します。
-
推奨しきい値:ビジネスが本番稼働した後、安定したトラフィック量に基づいてアラートのしきい値を見積もります。
-
アラート対応:メッセージ送受信 TPS アラートを受信した場合は、以下の手順に従います。
-
グループ管理 ページで、アラートルールで指定されたグループ ID をクリックします。
-
グループの詳細 ページで、ダッシュボード タブをクリックします。
-
[メッセージ生産・消費レートの傾向 (メッセージ/分)] チャートで、Consumption 曲線を確認します。ビジネスモデルに基づいて、曲線の変化が妥当であるかどうかを判断し、異常がないか分析します。
-
メッセージ蓄積量のアラート設定
メッセージ蓄積量の統計は不安定で、誤りを起こしやすいことがあります。数十件程度のメッセージ蓄積量に対して監視しきい値を設定することは推奨しません。ビジネスがわずかな蓄積量にも非常に敏感である場合は、代わりに消費レイテンシーのしきい値で監視することを推奨します。
-
背景:ApsaraMQ for RocketMQ は、コンシューマーグループレベルでのメッセージ蓄積量の監視をサポートしており、下流の消費バックログの問題を警告するために使用できます。
-
メッセージ蓄積量のアラートは ApsaraMQ for RocketMQ の主要な機能です。しかし、リアルタイムのメッセージ処理を必要とするシナリオでは、消費バックログによるビジネスへの影響を避けるために、未処理メッセージの数を監視および制御することが重要です。
-
設定のタイミング:ビジネスが本番稼働し、トラフィックが安定した後にこのアラートを設定することを推奨します。
[ルール説明の設定] ダイアログで、[ルール名] を メッセージ蓄積量アラート に設定します。[メトリクスタイプ] で [基本メトリクス] を選択し、[メトリクス] で [コンシューマー / 蓄積メッセージ数 (グループ)] を選択します。[重大] (電話、SMS、メール、Webhook で通知)、[警告] (SMS、メール、Webhook で通知)、[情報] (メール、Webhook で通知) の 3 つのアラートレベルを設定します。各レベルで、`合計 >= しきい値` の条件が 3 連続期間 (1 期間 = 1 分) 続き、統計方法がカウントである場合にトリガーするように設定します。[ディメンション] で [groupId] を選択し、対応するコンシューマーグループを指定します。
-
推奨しきい値:ビジネスが本番稼働した後、許容範囲に基づいてアラートのしきい値を見積もります。
-
アラート対応:メッセージ蓄積量アラートを受信した場合は、以下の手順に従います。
-
グループ管理 ページで、アラートルールで指定した Group ID をクリックします。
-
グループの詳細 ページで、ダッシュボード タブをクリックします。
-
[堆積関連メトリクス (メッセージ)] チャートで、累積量 曲線を確認します。堆積の傾向を分析し、いつから堆積が始まったかを確認します。
-
ビジネスの変動とアプリケーションログに基づき、蓄積開始時刻の要因を分析して根本原因を見つけます。メッセージ蓄積量の原因に関する詳細については、「メッセージ蓄積の対処方法」をご参照ください。
-
根本原因に基づき、コンシューマーアプリケーションをスケールアウトするか、消費ロジックの不具合を修正するかを決定します。
-
消費レイテンシーのアラート設定
このメトリクスは累積的 (コンシューマーグループ内の最も古い未消費メッセージから計算) であるため、非常に敏感です。消費レイテンシーのアラートを受信した場合、まずビジネスへの影響が少数のスタックしたメッセージによるものか、全体的な消費遅延によるものかを判断する必要があります。
-
背景:ApsaraMQ for RocketMQ は、コンシューマーグループレベルでの消費レイテンシーの監視をサポートしており、メッセージ蓄積シナリオを分析するためのより具体的なメトリクスを提供します。
-
メッセージ蓄積量のアラートは ApsaraMQ for RocketMQ の主要な機能です。しかし、リアルタイムのメッセージ処理を必要とするシナリオでは、消費遅延によるビジネスへの影響を避けるために、蓄積されたメッセージのレイテンシーを監視および制御することが重要です。
-
設定のタイミング:ビジネスが本番稼働し、トラフィックが安定した後にこのアラートを設定することを推奨します。
ルール設定ダイアログで、[ルール名] を [メッセージ処理レイテンシーアラート] に設定します。[メトリクスタイプ] で [基本メトリクス] を選択し、[メトリクス] で [コンシューマー / メッセージ処理レイテンシー (GroupId)] を選択します。重大 (電話、SMS、メール、Webhook で通知)、警告 (SMS、メール、Webhook で通知)、情報 (メール、Webhook で通知) の 3 つのアラートレベルを設定します。各レベルで、`最大値 >= しきい値` (単位:ms) の条件が 3 連続期間 (1 期間 = 1 分) 続いた場合にトリガーするように設定し、ビジネスニーズに基づいて各レベルの適切な しきい値を入力します。[ディメンション] で、対応する [groupId] を選択します。
-
推奨しきい値:ビジネスが本番稼働した後、許容範囲に基づいてアラートのしきい値を見積もります。
-
アラート対応:消費レイテンシーのアラートを受信した場合は、以下の手順に従います。
-
グループ管理 ページで、アラートルールで指定した Group ID をクリックします。
-
グループの詳細 ページで、ダッシュボード タブをクリックします。
-
[堆積関連メトリクス (メッセージ)] チャートで、累積量 曲線を確認します。堆積の傾向を分析し、堆積がいつ開始されたかを特定します。
-
ビジネスの変動とアプリケーションログに基づき、蓄積開始時刻の要因を分析して根本原因を見つけます。メッセージ蓄積量の原因に関する詳細については、「メッセージ蓄積の対処方法」をご参照ください。
-
根本原因に基づき、コンシューマーアプリケーションをスケールアウトするか、消費ロジックの不具合を修正するかを決定します。
-
デッドレターメッセージのアラート設定
-
背景:ApsaraMQ for RocketMQ はデッドレターメッセージをサポートしています。消費に失敗し、最大リトライ回数を超えたメッセージは、手動で処理するためにデッドレターキューに配信されます。デッドレターキューに入るメッセージ数を監視することで、ビジネスにおける予期せぬ不確定な問題を迅速に検出できます。
-
未設定時のリスク:デッドレターメッセージを無視すると、不完全なビジネス処理につながる可能性があります。
-
設定のタイミング:ビジネスが本番稼働し、トラフィックが安定した後にこのアラートを設定することを推奨します。
[ルール説明の設定] ダイアログで、[ルール名] を [デッドレターメッセージアラート] に設定します。[メトリクスタイプ] で [基本メトリクス] を選択し、[メトリクス] で [コンシューマー / 1 分あたりに生成されるデッドレターメッセージ数 (グループ)] を選択します。[しきい値とアラートレベル] で、[重大] (電話、SMS、メール、Webhook で通知)、[警告] (SMS、メール、Webhook で通知)、[情報] (メール、Webhook で通知) の 3 つのレベルを設定します。各レベルで、条件を 3 連続期間 (1 期間 = 1 分) 続いた場合にトリガーし、集計方法を [合計]、条件を `値 >= しきい値` (単位:count/m) に設定します。[ディメンション] で [groupId] を選択し、その値を対応するコンシューマーグループに設定します。
-
推奨しきい値:ビジネスが本番稼働し安定した後、許容範囲に基づいてアラートのしきい値を見積もることを推奨します。
-
アラート対応:デッドレターメッセージ数のアラートを受信した場合は、以下の手順に従います。
-
デッドレターメッセージをクエリし、元のメッセージのリストを分析します。手順については、「デッドレターキュー」をご参照ください。
-
元のメッセージのトピックとメッセージ ID に基づき、メッセージトレースをクエリして消費失敗の原因を分析します。手順については、「メッセージトレースのクエリ」をご参照ください。
-
メッセージ消費失敗の原因に基づき、適切な修正措置を決定します。
-
スロットリング数のアラート設定
-
背景:ApsaraMQ for RocketMQ では、指定したインスタンスのスロットリングイベントを監視項目として使用できます。スロットリング数を監視することで、ビジネスへの影響の度合いを把握できます。
-
未設定時のリスク:スロットリング数が多いほど、インスタンス仕様の違反が深刻であることを示します。インスタンス仕様をタイムリーにスペックアップする必要があります。
-
設定のタイミング:ビジネスが本番稼働し、トラフィックが安定した後。
-
インスタンスレベルのスロットリング数:インスタンス作成後にこのアラートを設定することを推奨します。
-
トピックおよびグループレベルのスロットリング数:ビジネスが本番稼働し、トラフィックが安定した後にこのアラートを設定することを推奨します。
-
[ルール説明の設定] ダイアログで、[ルール名] を [スロットリング数アラート] に設定します。[メトリクスタイプ] で [基本メトリクス] を選択し、[メトリクス] で [プロデューサー / 1 分あたりのスロットリングされたメッセージ数 (インスタンス)] を選択します。[しきい値とアラートレベル] セクションで、各レベルの条件を 3 連続期間 (1 期間 = 1 分) 続いた場合にトリガーし、集計方法を合計、条件を `値 >= しきい値` (単位:count/m) に設定します。通知方法は、重大 (電話、SMS、メール、Webhook)、警告 (SMS、メール、Webhook)、情報 (メール、Webhook) です。
-
推奨しきい値:ビジネスが本番稼働した後、許容範囲に基づいてアラートのしきい値を見積もります。
-
アラート対応:スロットリング数アラートを受信した場合は、以下の手順に従います。
-
インスタンスの詳細 ページで、ダッシュボード タブをクリックします。
-
[インスタンスメッセージ量の概要] セクションで、[速度制限されたリクエスト数] の曲線を確認し、速度制限イベントのタイミングとパターンを分析します。
-
[メッセージビジネスメトリック概要] セクションで、[メッセージ生成レート (メッセージ/分) 別トップ 20 トピック] メトリックを確認します。速度制限のタイミングとパターンに基づいて、異常なデータを持つトピックを特定し、その曲線を確認して、トラフィックの増加がビジネス上の予測と一致するかどうかを判断します。
-
この分析に基づき、トラフィックの増加が想定内であれば、インスタンス仕様をスペックアップします。想定外であれば、異常なトラフィックの原因を調査します。
-