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

Application Real-Time Monitoring Service:タグの追加と使用

最終更新日:Apr 10, 2026

ARMS のタグ機能は、アプリケーションのメトリクス、トレース、ログなどのモニタリングデータを整理・監視するための新しいディメンションを提供します。このトピックでは、フィルタリングと権限管理のためにアプリケーションにタグを追加する方法、および [アプリケーション詳細][Grafana ビュー] のページでインスタンスのタグを使用してアプリケーションのモニタリングデータをフィルタリングする方法について説明します。

前提条件

アプリケーションが ARMS アプリケーションモニタリングによって監視されていること。詳細については、「アプリケーションモニタリングの概要」をご参照ください。

Java アプリケーションは、以下の要件も満たす必要があります。

  • Kubernetes クラスター内のアプリケーションの場合、ack-onepilot コンポーネントが v3.0.4 以降であり、ARMS エージェントが v2.7.3.5 以降であることを確認してください。

  • 他の環境のアプリケーションについては、ARMS エージェントが v2.7.3.5 以降であることを確認してください。最新の ARMS エージェントは、ARMS コンソール[アプリケーションモニタリング] > [エージェント管理]にある[エージェントリリースノート] タブからダウンロードできます。

タグの種類

ARMS アプリケーションモニタリングは、アプリケーションタグとインスタンスのタグの 2 種類のタグを提供します。ユースケースに基づいて適切なタグの種類を選択してください。アプリケーションタグとインスタンスのタグはどちらもキーと値のペアを使用し、同時に複数のキーと値のペアを追加できます。

アプリケーションタグ

アプリケーションタグは、アプリケーションレベルで適用されます。ARMS コンソールアプリケーションモニタリング > アプリケーションリスト ページで、アプリケーションタグを表示または変更できます。アプリケーションタグを使用すると、アプリケーションのフィルタリング、アプリケーション権限の管理、コスト配分を行うことができます。

インスタンスのタグ

ARMS では、1 つのアプリケーションが複数のアプリケーションインスタンスで構成されることがあります。各インスタンスは、同じアプリケーション名で ARMS に接続されたアプリケーションプロセスを表します。アプリケーションタグとは異なり、インスタンスのタグはインスタンスレベルで適用されるため、同じアプリケーション内の異なるインスタンスが、それぞれ異なるインスタンスのタグを持つことができます。

Kubernetes 環境でアプリケーションモニタリングに自動的に接続されるアプリケーションインスタンスの場合、ARMS は以下のデフォルトのインスタンスのタグを追加します。

タグキー

説明

workloadKind

アプリケーションインスタンスが属するワークロードの種類 (Deployment など)。

workloadName

アプリケーションインスタンスが属するワークロードの名前。

clusterName

アプリケーションインスタンスが配置されている Kubernetes クラスターの名前。

namespace

アプリケーションインスタンスが配置されている Kubernetes 名前空間。

version

イメージタグ。

カスタムインスタンスのタグでこれを上書きできます。

agentVersion

エージェントのバージョン。

デフォルトのインスタンスのタグに加えて、カスタムインスタンスのタグを追加できます。アプリケーションインスタンスは、そのアプリケーションからタグを完全に継承します。ARMS がアプリケーションインスタンスに対して生成するモニタリングデータには、そのすべてのインスタンスのタグが含まれます。

説明

カスタムインスタンスのタグキーは、Prometheus の命名規則に従う必要があります。これは正規表現 ^[a-zA-Z_][a-zA-Z0-9_]*$ に準拠します。このパターンに一致しないキーの場合、ARMS エージェントは準拠していない文字をアンダースコア (_) に置き換えます。たとえば、1key:1value_key:1value に変換されます。

例:

次の図に示すように、アプリケーション my-app には 2 つのインスタンスがあります。ARMS がインスタンス B に対して生成するメトリックデータには、次のタグが含まれます:{env: Dev, team: Observability, app: my-app, workloadKind: Deployment, workloadName: my-app, clusterName: ClusterA, namespace: nsA, gitVersion: 1.0.2}

カスタムインスタンスのタグの追加

Kubernetes アプリケーションへのカスタムインスタンスのタグの追加

方法 1 (推奨):Pod ラベルによるタグのインジェクション

ARMS エージェントが自動的にインストールされた Kubernetes 環境にデプロイされたアプリケーションの場合、Pod ラベルを使用してカスタムインスタンスのタグを追加できます。

説明

この方法は、ACK クラスターと自己管理 Kubernetes 環境の両方にデプロイされたアプリケーションに適しています。エージェントを自動的にインストールする方法については、「アプリケーションモニタリングの概要」をご参照ください。

次の例は、ACK クラスターにデプロイされたアプリケーションにタグを追加する方法を示しています。

ACK コンソールで、ご利用のクラスターに移動します。[Deployment] または [StatefulSet] ページに移動し、上部でターゲットの名前空間を選択します。ターゲットアプリケーションを見つけ、[操作] 列から image > YAML の編集 を選択します。[YAML の編集] ダイアログボックスで、カスタムタグを追加し、[更新] をクリックします。その後、アプリケーションインスタンスが再起動し、新しいインスタンスのタグが適用されます。image.png

方法 2:Pod の環境変数によるタグのインジェクション

説明
  • Java アプリケーションでこの方法を使用するには、エージェントのバージョンが 4.0.0 以降である必要があります。

  • Go アプリケーションでこの方法を使用するには、エージェントのバージョンが 1.5.0 以降である必要があります。

  • Python アプリケーションでこの方法を使用するには、エージェントのバージョンが 1.3.0 以降である必要があります。

Pod が作成された後にのみ利用可能ないくつかのカスタムタグ (podName など) については、アプリケーションコンテナの起動スクリプトに OS 環境変数を追加することでインジェクトできます。

  1. アプリケーションコンテナに ARMS_HOST_TAGS という名前の環境変数を追加します。その値にインスタンスのタグを設定します。複数のタグには key1:value1&key2:value2 のフォーマットを使用します。例:export ARMS_HOST_TAGS="gitVersion:1.0.2&ip:192.168.1.101"

  2. 環境変数が有効になった後、アプリケーションプロセスを開始します。

手動エージェントを使用するアプリケーション

Java

方法 1:-D コマンドラインパラメーターの追加

-Darms.host.tags="${yourLabel}" パラメーターを Java アプリケーションの起動コマンドに追加します。

${yourLabel} を目的のインスタンスのタグに置き換えます。複数のタグには key1:value1&key2:value2 のフォーマットを使用します。例:-Darms.host.tags="gitVersion:1.0.2&ip:192.168.1.101"

方法 2:設定ファイルの変更

エージェント v4.0.0 以降

  1. Java エージェントの設定とデフォルトのレポートリージョンの変更」で説明されているように、任意のディレクトリに .properties 拡張子を持つ設定ファイルを作成します。ファイルに `profiler.tags.customtags` フィールドを追加し、その値に目的のインスタンスのタグを設定します。複数のタグには key1:value1&key2:value2 のフォーマットを使用します。例:

    #profiler.tags.customtags=key1:value1&key2:value2
    profiler.tags.customtags=gitVersion:1.0.2&ip:192.168.1.101
  2. -Dotel.javaagent.configuration-file=${path/to/config/file} パラメーターまたは OTEL_JAVAAGENT_CONFIGURATION_FILE=${path/to/config/file} 環境変数を Java アプリケーションの起動設定に追加します。

    説明
    • ${path/to/config/file} を作成した設定ファイルの完全なパスに置き換えます。例:-Dotel.javaagent.configuration-file=/home/admin/config/agent-config.properties または OTEL_JAVAAGENT_CONFIGURATION_FILE=/home/admin/config/agent-config.properties

    • 起動パラメーターと環境変数の両方が設定されている場合、起動パラメーターが優先されます。

  3. アプリケーションプロセスを再起動します。

v4.0.0 より前のエージェント

  1. Java エージェント設定ファイルとデフォルトのレポートリージョンの変更」をご参照のうえ、エージェントインストールパッケージの `arms-agent.config` 設定ファイル内の `profiler.tags.customtags` フィールドを変更して、カスタムインスタンスのタグを追加します。複数のタグには key1:value1&key2:value2 のフォーマットを使用します。例:

    #profiler.tags.customtags=key1:value1&key2:value2
    profiler.tags.customtags=gitVersion:1.0.2&ip:192.168.1.101
  2. アプリケーションプロセスを再起動します。

Go

環境変数を宣言し、アプリケーションプロセスを再起動します。

#export ARMS_HOST_TAGS=key1:value1&key2:value2
export ARMS_HOST_TAGS="gitVersion:1.0.2&ip:192.168.1.101"

Python

環境変数を宣言し、アプリケーションプロセスを再起動します。

#export ARMS_HOST_TAGS=key1:value1&key2:value2
export ARMS_HOST_TAGS="gitVersion:1.0.2&ip:192.168.1.101"

Pod ラベルを使用したアプリケーションタグの挿入

重要
  • Java アプリケーションの場合、この機能は ack-onepilot v3.0.16 以降でのみサポートされます。

  • Go アプリケーションの場合、この機能は ack-onepilot v3.2.0 以降でのみサポートされます。

  • Python アプリケーションの場合、この機能は ack-onepilot v4.1.1 以降でのみサポートされます。

  • 方法 2 は、ack-onepilot v4.1.2 以降でのみサポートされます。

方法 1:

Pod ラベルにプレフィックス app.customAppKey. がある場合、ARMS はそれをインスタンスのタグではなく、アプリケーションタグとして識別します。

たとえば、次のコードでは、ARMS はアプリケーションタグ env: dev をこのワークロードに関連付けられたアプリケーションに追加します。

  template:
    metadata:
      labels:
        app.customAppKey.env: dev
        app: mall-gateway
        armsPilotAutoEnable: 'on'
        aliyun.com/app-language: golang  # Go アプリケーションで言語を識別するために必要です。Java アプリケーションでは不要です。
        armsPilotCreateAppName: mall-gateway

方法 2:

既存の Pod ラベルをアプリケーションタグとして再利用するには、ack-onepilot コンポーネントを設定します。

前提条件

ack-onepilot のバージョンが 4.1.2 以降であること。

操作手順

  1. ack-onepilot コンポーネントの Deployment を見つけます。通常、この Deployment は ack-onepilot-ack-onepilot という名前で、ack-onepilot 名前空間にあります。

    image.png

  2. ack-onepilot の Deployment に ARMS_APP_LABELS という名前の環境変数を追加します。その値には、ラベルキーをカンマ区切りの文字列で設定します。この設定後、ARMS は /spec/template/metadata/labels 配下にあるキーのうち、ARMS_APP_LABELS 変数にもリストされているものをアプリケーションタグとして認識します。

    image

  3. ack-onepilot コンポーネントが再起動し、ヘルスチェックに合格するのを待ちます。その後、ビジネスアプリケーションを再起動して、対応するアプリケーションタグを適用します。

    image.png

説明
  • ARMS において、アプリケーションは論理的なグループ化であり、複数のワークロードや複数の Kubernetes クラスターにまたがる複数のアプリケーションインスタンスを表すことができます。したがって、Pod ラベルを使用したアプリケーションタグの挿入は便利な DevOps プラクティスですが、制限事項もあります。

  • Pod ラベルを使用して挿入されたアプリケーションタグは追加のみ可能です。既存のタグキーを変更または削除するには、まず YAML ファイルを変更してから、ARMS コンソールで操作を実行するか、API を呼び出す必要があります。

  • 複数のワークロードが同じ ARMS アプリケーションに接続されている場合、Pod ラベルを使用してアプリケーションタグを挿入すると競合が発生する可能性があります。すべてのワークロードでアプリケーションタグの一貫性を確保する必要があります。

アプリケーションタグの使用

アプリケーションのフィルター

アプリケーションタグを使用すると、[アプリケーション一覧] ページやアラートルールを作成する際に、アプリケーションをすばやくフィルターできます。

タグベースの権限管理

アプリケーションタグに基づいて RAM 権限を管理できます。詳細については、「アプリケーションモニタリングのカスタム RAM 認可ポリシー」をご参照ください。

インスタンスのタグの使用

インスタンスのタグによるデータのフィルター

  1. ARMS コンソールにログインします。 左側のナビゲーションウィンドウで、[アプリケーションモニタリング] > [アプリケーションリスト] を選択します。

  2. [アプリケーションリスト] ページで、上部のリージョンを選択し、対象のアプリケーション名をクリックします。

    説明

    [言語] 列のアイコンは、以下を表します:

    Java图标:アプリケーションモニタリングに接続されている Java アプリケーション。

    image:アプリケーションモニタリングに接続されている Go アプリケーション。

    image:アプリケーションモニタリングに接続されている Python アプリケーション。

    -OpenTelemetry 向けマネージドサービスに接続されているアプリケーション。

  3. アプリケーション詳細内のさまざまなページで、インスタンスのタグによってモニタリングデータをフィルターできます。 たとえば、イメージのバージョン番号に基づいてデータを比較・分析できます。

Grafana ビューでのタグによるメトリクスのクエリ

  1. ARMS コンソールにログインします。左側のナビゲーションウィンドウで、[アプリケーションモニタリング] > [アプリケーション一覧]を選択します。

  2. [アプリケーションリスト] ページで、上部のリージョンを選択し、対象のアプリケーション名をクリックします。

    説明

    [言語] 列のアイコンは、以下を表します:

    Java图标:アプリケーションモニタリングに接続されている Java アプリケーション。

    image:アプリケーションモニタリングに接続されている Go アプリケーション。

    image:アプリケーションモニタリングに接続されている Python アプリケーション。

    -OpenTelemetry 向けマネージドサービスに接続されているアプリケーション。

  3. 左側のナビゲーションウィンドウで、[Grafana ビュー] をクリックします。 ページの上部で、異なるタグを選択して、対応する監視メトリクスを表示します。

    GrafanaView