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

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

最終更新日:Jun 22, 2026

Application Real-Time Monitoring Service (ARMS) のタグは、アプリケーションモニタリングメトリクス、トレース、ログなどのデータを整理し、把握するのに役立ちます。このトピックでは、アプリケーションにタグを追加する方法、アプリケーションタグを使用してアプリケーションをフィルタリングし権限を管理する方法、およびインスタンスタグを使用して [アプリケーション詳細] ページと [Grafana ビュー] ページでデータをフィルタリングする方法について説明します。

前提条件

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

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

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

  • 他の環境のアプリケーションでは、ARMS エージェントのバージョンが v2.7.3.5 以降である必要があります。 最新の ARMS エージェントは、ARMS コンソールアプリケーションモニタリング > プローブの管理ページにあるプローブ版のリリースについてタブからダウンロードできます。

タグの種類

アプリケーションモニタリングでは、アプリケーションタグとインスタンスタグの 2 種類のタグを利用できます。どちらもキーと値のペアで構成されます。ユースケースに最適な種類を選択してください。

アプリケーションタグ

アプリケーションタグは ARMS アプリケーションに適用されます。アプリケーションタグは、ARMS コンソールアプリケーションモニタリング > アプリケーションリスト ページで表示または変更できます。アプリケーションタグは、アプリケーションのフィルタリング、権限の管理、コストの割り当てなどの目的で使用できます。

インスタンスタグ

各アプリケーションインスタンスは、同じアプリケーション名で ARMS に接続するアプリケーションプロセスを表します。アプリケーションタグとは異なり、インスタンスタグは個々のアプリケーションインスタンスに適用されるため、同じアプリケーションの異なるインスタンスが異なるタグを持つことができます。

Kubernetes 環境で自動的に検出されたアプリケーションインスタンスの場合、ARMS は次のデフォルトインスタンスタグを追加します。

タグキー

説明

workloadKind

アプリケーションインスタンスが実行されているワークロードの種類 (Deployment など)。

workloadName

アプリケーションインスタンスが実行されているワークロードの名前。

clusterName

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

namespace

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

version

イメージタグ。

カスタムインスタンスタグで上書きできます。

agentVersion

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

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

説明

カスタムインスタンスタグキーは、正規表現 ^[a-zA-Z_][a-zA-Z0-9_]*$ に一致する Prometheus の命名規則に従うことをお勧めします。準拠していないキーの場合、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.1}

image

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

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

方法 1 (推奨):Pod ラベルを使用したタグの挿入

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

説明

この方法は、Container Service for Kubernetes (ACK) と一般的な Kubernetes 環境の両方にデプロイされたアプリケーションに適しています。これらの環境で ARMS エージェントを自動的にインストールする方法については、「アプリケーションモニタリングの概要」をご参照ください。

ACK 環境にデプロイされたアプリケーションを例に説明します。

ACK コンソールで、ターゲットクラスターの[デプロイメント]または[ステートフルセット]ページに移動します。 ターゲット名前空間を選択し、ターゲットアプリケーションを見つけ、操作列でimage > [YAML で表示]を選択します。 [YAML の編集]ダイアログボックスで、カスタムタグを追加し、[更新]をクリックします。 アプリケーションインスタンスが再起動し、新しいタグが適用されます。

'f:readyReplicas': {}
        'f:replicas': {}
        'f:updatedReplicas': {}
    manager: kube-controller-manager
    operation: Update
    subresource: status
    time: '2023-11-16T09:39:32Z'
  name: mall-gateway
  namespace: arms-apm-demo
  resourceVersion: '943537'
  uid: xxxd0b1bf76f42
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: mall-gateway
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        gitVersion: '1.0.2'  # カスタムインスタンスタグを追加
        app: mall-gateway
        armsPilotAutoEnable: 'on'
        armsPilotCreateAppName: mall-gateway
    spec:
      containers:
      - env:
        - name: SERVICE_NAME

方法 2:Pod 環境変数を使用したタグの挿入

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

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

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

Pod の作成後にのみ使用可能なカスタムタグ (podName など) を挿入するには、アプリケーションコンテナの起動スクリプトにオペレーティングシステムの環境変数を追加することで挿入できます。次の手順に従います。

  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 パラメーターの使用

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

${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. Java アプリケーションの起動パラメーターに -Dotel.javaagent.configuration-file=${path/to/config/file} パラメーターを追加するか、OTEL_JAVAAGENT_CONFIGURATION_FILE=${path/to/config/file} 環境変数を設定します。

    説明
    • ${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 アプリケーションでは、Pod ラベルを使用したアプリケーションタグの挿入は、ack-onepilot コンポーネント v3.0.16 以降でサポートされます。

  • Go アプリケーションでは、Pod ラベルを使用したアプリケーションタグの挿入は、ack-onepilot コンポーネント v3.2.0 以降でサポートされます。

  • Python アプリケーションでは、Pod ラベルを使用したアプリケーションタグの挿入は、ack-onepilot コンポーネント v4.1.1 以降でサポートされます。

  • 方法 2 を使用したアプリケーションタグの挿入は、ack-onepilot v4.1.2 以降でサポートされます。

方法 1:

ポッドラベルに 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 を見つけます。通常、名前は ack-onepilot-ack-onepilot で、ack-onepilot 名前空間にあります。

    Deployment の Pod の準備状態が 2/2 と表示されていることを確認します。これは、ack-onepilot コンポーネントが正常に動作していることを示します。

  2. ack-onepilot コンポーネントの Deployment に ARMS_APP_LABELS 環境変数を追加します。この変数は、キーをカンマで区切った文字列です。これを設定すると、/spec/template/metadata/labels に含まれるキーのうち、ARMS_APP_LABELS 変数にリストされているものがアプリケーションタグとして識別されます。

    たとえば、ARMS_APP_LABELS の値を env,group に設定すると、Pod ラベル内のキー envgroup を持つタグがアプリケーションタグとして識別されます。

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

    ACK コンソールの ack-onepilot-ack-onepilot Deployment の詳細ページで、準備完了状態が 2/2 で、すべての Pod の状態が [Running] であることを確認します。これは、コンポーネントの準備ができていることを示します。

説明
  • ARMS において、アプリケーションとはアプリケーションインスタンスの集合を表す概念です。アプリケーションは複数のインスタンスを持つことができ、複数のワークロードまたは Kubernetes クラスターから構成されることがあります。したがって、Pod ラベルを使用したアプリケーションタグの挿入は DevOps シナリオでは便利ですが、一定の制限があります。

  • Pod ラベルを通じて挿入されたアプリケーションタグは追加しかできません。YAML からラベルを削除してもタグは削除されません。タグを変更または削除するには、ARMS コンソールまたは OpenAPI を使用する必要があります。

  • 複数のワークロードが同じ ARMS アプリケーションにマッピングされる場合、Pod ラベルを使用したアプリケーションタグの挿入によって競合が発生する可能性があります。これらのワークロード間でアプリケーションタグの一貫性を確保してください。

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

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

ARMS の [アプリケーション一覧] ページおよびアラートルールの作成時に、アプリケーションタグを使用してアプリケーションをすばやくフィルタリングできます。

タグベースのアクセス制御

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

インスタンスタグの使用

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

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

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

    説明

    言語 列のアイコンは、アプリケーションのプログラミング言語を示します:

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

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

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

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

  3. アプリケーション詳細ページでは、インスタンスタグを使用してモニタリングデータをフィルタリングできます。たとえば、イメージバージョン番号に基づいてデータを比較および分析できます。

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

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

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

    説明

    言語 列のアイコンは、アプリケーションのプログラミング言語を示します。

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

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

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

    [-]: Managed Service for OpenTelemetry に接続されているアプリケーション。

  3. 左側のナビゲーションペインで、[Grafana ビュー] をクリックします。 ページの上部で、さまざまなタグを選択してメトリックをフィルターします。

    GrafanaView