すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:ビジネストレース分析のベストプラクティス

最終更新日:Mar 11, 2026

標準のアプリケーション監視では、インターフェイスレベルでメトリック (QPS、応答時間、エラーレート) を集計しますが、業務カテゴリ別にトラフィックを分類することはできません。セールスプロモーション中に、ジュエリーの注文が急増しても、アパレルの注文が急増しても、同じように見えてしまいます。ビジネストレース分析は、リクエストペイロードから抽出したビジネス属性でトレースにタグ付けすることでこの問題を解決し、各業務カテゴリに独自のモニタリングビュー、トポロジー、およびアラートルールを非侵入型で提供します。

このトピックでは、E コマースのプロモーションシナリオにおける、ビジネスパラメーターの抽出、ビジネストレースの定義、カテゴリ固有のアラート設定というエンドツーエンドのワークフローを解説します。

シナリオ

ある E コマースプラットフォームでは、エンドツーエンドのパフォーマンスモニタリング、障害診断、キャパシティ分析のために Application Real-Time Monitoring Service (ARMS) を使用しています。大規模なジュエリープロモーションの準備を進める中で、技術保証チームはサポートプランを展開するための特別会議を開き、2 つの課題を特定しました。

ビジネスディメンションのモニタリングができない。注文受付インターフェイスは、すべての製品カテゴリにわたる集計メトリックをレポートするため、業務カテゴリ (ジュエリー、アパレル、3C など) ごとのトラフィック階層化分析を実行できません。プロモーション期間中:

  • ジュエリーのトラフィックが急増しても他のカテゴリと区別できず、ジュエリー固有のリソース消費量を測定することができません。

  • アラートルールでジュエリーのトランザクションを個別に対象とすることができません。

Interface-level metric aggregation

動的なキャパシティモデリングが不十分。サービストポロジーは静的な呼び出し関係を示しますが、ビジネスレベルのトラフィック分散は示しません。

  • ジュエリーのトラフィックが各マイクロサービスコンポーネントにかける実際のロードが不明です。

  • 注文サービスや在庫サービスなどのコアモジュールのスケーリング決定にデータサポートがありません。

Static dependency relationship topology

ビジネストレース分析の仕組み

ビジネストレース分析は、3 つの機能でこれらの課題の両方に対処します。

  1. ビジネスエントリーのマーキング。注文サービスゲートウェイなど、ジュエリーのトランザクションを処理するエントリーアプリケーションをマークします。

  2. トレースの自動伝播。ARMS は、エントリーアプリケーションからダウンストリームサービス (決済、在庫など) へのビジネストラフィックをインターフェイスレベルで自動的に追跡し、各スパンに業務カテゴリをタグ付けします。この伝播は分散トレーシングに基づいており、追加のインストルメンテーションは不要です。

  3. カテゴリ固有のアラート機能。特定のビジネストレースを対象としたアラートルールを設定します。例えば、ジュエリー決済のレイテンシーがしきい値を超えた場合にアラートをトリガーします。

image

以下の手順では、ジュエリーカテゴリを例として使用します。

前提条件

開始する前に、以下を確認してください。

  • ARMS アプリケーション監視と統合された E コマースアプリケーション

  • エントリーアプリケーションに ARMS エージェントバージョン 4.3.0 以降がインストールされていること

  • リクエストボディでビジネスパラメーターを受け入れる HTTP エントリーインターフェイス

ステップ 1: ビジネスパラメーターの抽出

ビジネスパラメーター抽出機能を使用すると、ARMS はコードを変更することなく、リクエストペイロードからビジネス識別子を解析できます。抽出された属性はスパンにアタッチされ、ダウンストリームでのフィルタリングやトレース定義が可能になります。

ジュエリーのシナリオでは、注文受付インターフェイスはリクエストボディの extraInfo オブジェクト内にある category フィールドを受け取ります。

注文受付エンドポイント:

@RequestMapping(value = "/order", produces = "application/json", method = RequestMethod.POST)
    public CommonResult<?> order(@RequestBody CommonRequestBody requestBody) throws Exception {
        bizO11yHandleService.syncCall(requestBody);
        return CommonResult.succeeded(new CommonData("Cache",
                "{\"param1\":\"value1\",\"resultCode\":" + requestBody.getCode() + "}",
                "succeeded.", requestBody.getCode()));
    }

CommonRequestBody

@Data
public class CommonRequestBody {

    private String requestId;

    private int code;

    private boolean needDetail;

    private Map<String, String> extraInfo;
}

CommonRequestBody の JSON リクエストボディ

{
  "code": 200,
  "needDetail": true,
  "requestId": "req-32413",
  "extraInfo": {
    "orderNumber": "ord-xxxxx",
    "level": "vip",
    "arms": "good",
    "source": "app",
    "category": "jewelry"
  }
}

category の値 ("jewelry") が、抽出するビジネス識別子です。

抽出ルールの作成

エントリ アプリケーションで [設定] > [ビジネスパラメーター抽出ルール] に移動し、以下の設定でルールを作成します。 詳細については、「ビジネスパラメーターを抽出する」をご参照ください。

パラメーター説明
ルール名この抽出ルールのカスタム名です。カテゴリ
属性名抽出された値を格納するスパン属性名です。category
パラメーター抽出タイプパラメーターソースのタイプです。HTTP サーバーリクエスト
パラメーター ルール設定スコープと解析ロジックを定義します。
- 有効なインターフェイス:このルールが適用される HTTP インターフェイスです。ARMS エージェントは、一致したインターフェイスからのみパラメーターを抽出します。次と等しい /api/v1/biz/order
- テキストエンコーディングタイプ:パラメーターテキストのエンコーディングです。UTF-8
- パラメーターソース:リクエスト内でパラメーターが存在する場所です。ボディ
- パラメーター処理ステップ:パラメーターソースから最終的なパラメーター値を段階的に解析するために使用される一連のストリーミング処理ステップです。
- Ognl:ネストされたオブジェクトへのパスです。extraInfo
- JsonPath:オブジェクト内のフィールド名です。category
有効化ステータスこのルールを有効にするかどうか。はい
Business parameter extraction rules configuration

ルールを保存すると、ARMS エージェントは一致するスパンに category 属性のアタッチを開始します。この属性は、次のステップで定義するビジネストレースの基盤となります。

ステップ 2: ビジネストレースの定義

category 属性がスパンで利用可能になったので、ジュエリー関連のトラフィックをフィルタリングするビジネストレースを作成します。

[ビジネストレースリスト] ページに移動し、以下の設定でビジネストレースを作成します。 詳細については、「ビジネストレースの作成」をご参照ください。

パラメーター説明
ビジネス名このビジネストレースの説明的な名前です。jewelry order
ビジネスコードメトリックに関連付けられた一意の識別子です。このコードは _biz_code などのメトリックラベルに表示されます。jewelry_order
アプリに移動エントリーアプリケーションです。ARMS エージェントのバージョンは 4.3.0 以降である必要があります。biz-trace-demo
エントリーインターフェイスエントリーインターフェイスです。現在、HTTP インターフェイスのみがサポートされています。/api/v1/biz/order
特性パラメーターより詳細なマッチングのためのオプションの入出力パラメーターです。-
特性設定複数のルールを組み合わせるためのマッチングロジックです。同時に、以下のルールを満たす
- 同時に、以下のルールを満たす: AND ロジック。トラフィックはすべてのルールに一致する必要があります。
- 以下のルールのいずれかを満たす: OR ロジック。いずれか 1 つのルールに一致するトラフィックが対象となります。
ルールパラメーターエントリーアプリケーションで設定されたビジネスパラメーター抽出ルールから選択します。マッチング ルールは「含む」をサポートします。複数の値を選択でき、報告されていない値はカスタム入力で追加できます。[カテゴリ] に「jewelry」が含まれる
Business trace configuration

ビジネストレースの検証

ビジネストレースを作成すると、ARMS エージェントが一致するトラフィックを自動的に識別します。[サービスリンク分析] ページに移動し、[ジュエリー注文] をクリックしてトレース詳細を開きます。詳細については、「ビジネストレース詳細」をご参照ください。

ジュエリー注文のトラフィックは、フルスケールの注文トレースから分離され、専用のモニタリングビューに表示されるようになります。

Business trace details view

トポロジーグラフには以下が表示されます。

  • ジュエリー注文トレースの完全な依存関係

  • トレースパス上のアプリケーションとインターフェイス

  • エントリーポイントから各ダウンストリームアプリケーションへのリクエスト量

このデータを使用して、プロモーションのアーキテクチャ上の依存関係やスケーリング比率について、的を絞った意思決定を行います。

ステップ 3: アラート機能の設定

ジュエリー注文トレースが分離されたので、このビジネスディメンションに特化したアラートを設定します。

ビジネストレースメトリックが Prometheus に連携される仕組み

ビジネストレースメトリックは、自動的に Managed Service for Prometheus に統合されます。このデータパイプラインを理解することで、正確なアラートルールを作成できます。

  1. メトリック収集。ARMS は各ビジネストレースのメトリックを収集します。

  2. メトリックストレージ。メトリックは metricstore-apm-metrics-custom_<regionId>_default-cms-<userId>-<region> という名前の Prometheus インスタンスに保存されます。

  3. メトリッククエリ。これらのメトリックに対して PromQL 文を作成し、ダッシュボードやアラートルールに活用します。

メトリック arms_biz_app_requests_count_raw はリクエスト数を追跡します。ラベル _biz_code はビジネストレース (例: jewelry_order) を識別します。

PromQL アラートルールの作成

メトリックのベースとなる PromQL 文を取得するには、モニタリング詳細パネルの image アイコンをクリックします。詳細については、「クエリ文」をご参照ください。

PromQL statement view

ベースとなる文には、$__range プレースホルダーが含まれています。

sum(sum_over_time_lorc(arms_biz_app_requests_count_raw{_biz_code="jewelry_order",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",pid="ckv8e2vzfj@f17de22dde9bd19",rpc=~"/api/v1/biz/order",source="apm",}[$__range])) or vector(0)

これをアラートルールに変換するには、次の手順に従います。

  1. $__range1m のような固定タイムウィンドウに置き換えます。

  2. or vector(0) を削除します。

  3. >1 のようなしきい値条件を追加します。

結果として得られるアラートルールは次のとおりです。

sum(sum_over_time_lorc(arms_biz_app_requests_count_raw{_biz_code="jewelry_order",serverIp=~".*",callKind=~"http|rpc|custom_entry|server|consumer|schedule",pid="ckv8e2vzfj@f17de22dde9bd19",rpc=~"/api/v1/biz/order",source="apm",}[1m]))>1

この例では、ジュエリー注文のリクエスト数が 1 分間のウィンドウ内で 1 を超えるとアラートがトリガーされます。

説明

Prometheus アラートルールの作成手順については、「Prometheus インスタンスにアラートルールを作成する」をご参照ください。

Alert configuration

プロモーションに関するその他のアラートディメンション

リクエスト数に加えて、大規模なプロモーションイベント向けに、エラーレートやレイテンシーなどのメトリックに基づいてアラートルールをカスタマイズすることもできます。各ディメンションについて、同じパターンに従います。モニタリングパネルからベースとなる PromQL を取得し、プレースホルダーを置き換え、しきい値条件を追加します。

アラート通知の表示

アラート機能を設定すると、該当するトラフィックがしきい値に達した場合にアラートが発生します。すべてのアラートイベントは、ビジネストレースの [イベント分析] ページで確認できます。詳細については、「イベント分析」をご参照ください。

次のステップ