Application Real-Time Monitoring Service (ARMS) のタグを使用すると、アプリケーションモニタリングのメトリック、トレース、ログなどのデータを整理および監視できます。このトピックでは、アプリケーションをタグセンターに接続する方法、アプリケーションにタグを追加する方法、およびタグを使用してアプリケーションの詳細ページと Grafana ビューページでメトリックをクエリする方法について説明します。
前提条件
アプリケーションは、アプリケーションモニタリングによって監視されます。詳細については、「アプリケーションモニタリングの概要」をご参照ください。
Java アプリケーションの場合、次の要件を満たす必要があります。
アプリケーションが Kubernetes クラスタにデプロイされている場合、ack-onepilot のバージョンは V3.0.4 以降、ARMS エージェントのバージョンは V2.7.3.5 以降である必要があります。
アプリケーションが別の環境にデプロイされている場合、ARMS エージェントのバージョンは V2.7.3.5 以降である必要があります。ARMS エージェントの最新のインストールパッケージを取得するには、次の操作を実行します。ARMS コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。[エージェントリリースノート] タブをクリックします。
タグの種類
アプリケーションモニタリングは、アプリケーションタグとインスタンスタグを提供します。ビジネス要件に基づいてタグの種類を選択します。アプリケーションタグとインスタンスタグはどちらもキーと値のペアを使用します。複数のキーと値のペアを同時に追加できます。
アプリケーションタグ
アプリケーションタグを表示または変更するには、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 つのインスタンス(インスタンス A とインスタンス B)が含まれています。インスタンス B のメトリックには、次のタグが付いています。env: Dev, team: Observability, app: my-app, workloadKind: Deployment, workloadName: my-app, clusterName: ClusterA, namespace: nsA, and gitVersion: 1.0.2。
カスタムインスタンスタグの追加
Kubernetes 環境にデプロイされたアプリケーションにカスタムインスタンスタグを追加する
方法 1(推奨):Pod ラベルを使用してカスタムインスタンスタグを追加する
Kubernetes 環境にデプロイされ、ARMS エージェントが自動的にインストールされているアプリケーションには、Pod ラベルを使用してカスタムインスタンスタグを追加できます。
この方法は、Container Service for Kubernetes (ACK) またはその他の Kubernetes 環境にデプロイされたアプリケーションに適しています。ACK またはその他の Kubernetes 環境にデプロイされたアプリケーションに ARMS エージェントを自動的にインストールする方法については、「アプリケーションモニタリングの概要」をご参照ください。
ACK クラスタにデプロイされたアプリケーションを例にとります。
ACK コンソール にログインします。クラスタ詳細ページの左側のナビゲーションウィンドウで、[デプロイメント] または [ステートフルセット] をクリックします。表示されるページで、名前空間を選択し、デプロイメントまたはステートフルセットを見つけて、[アクション] 列の を選択します。[YAML の編集] ダイアログボックスで、カスタムタグを追加し、[更新] をクリックします。アプリケーションインスタンスが再起動され、新しいインスタンスタグが追加されます。
方法 2:Pod 環境変数を使用してカスタムインスタンスタグを追加する
この方法は、Java 用 ARMS エージェント V4.0.0 以降、Go 用 V1.5.0 以降、Python 用 V1.3.0 以降でサポートされています。
podName など、Pod が作成された後にのみ取得できるカスタムインスタンスタグを追加するには、コンテナの起動スクリプトに環境変数を追加します。次の手順を実行します。
ARMS_HOST_TAGS という名前の環境変数をコンテナに追加します。値をインスタンスタグに設定します。形式:
key1:value1&key2:value2。例:export ARMS_HOST_TAGS="gitVersion:1.0.2&ip:192.168.1.101"。環境変数が有効になったら、プロセスを開始します。
ARMS エージェントを手動でインストールしたアプリケーションにカスタムインスタンスタグを追加する
Java
方法 1:-D コマンドラインパラメータを追加する
-Darms.host.tags="${yourLabel}" という名前の -D コマンドラインパラメータをアプリケーションの起動パラメータに追加します。
${yourLabel} を追加するインスタンスタグに置き換えます。形式:key1:value1&key2:value2。例:-Darms.host.tags="gitVersion:1.0.2&ip:192.168.1.101"。
方法 2:構成ファイルを変更する
ARMS エージェント V4.0.0 以降
詳細については、「Java パラメータとデータレポートリージョン用の ARMS エージェントを変更する」を参照し、任意のディレクトリに
.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-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。起動コマンドと環境変数の両方が構成されている場合、起動コマンドが優先されます。
Java プロセスを再起動します。
V4.0.0 より前の ARMS エージェント
詳細については、「Java パラメータとデータレポートリージョン用の ARMS エージェントを変更する」を参照し、エージェントインストールパッケージの
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.101Java プロセスを再起動します。
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"ポッドラベルを使用して Kubernetes 環境にデプロイされたアプリケーションにタグを追加する
次のいずれかの方法を使用してタグを追加します。
ack-onepilot のバージョン要件:
Java の場合は V3.0.16 以降
Go の場合は V3.2.0 以降
Python の場合は V4.1.1 以降
プレフィックス app.customAppKey. を使用する
app.customAppKey. というプレフィックスが付いたポッドラベルは、インスタンスタグではなく、アプリケーションタグとして認識されます。
次のコードでは、ARMS はアプリケーションタグ env: dev をアプリケーションに追加します。
template:
metadata:
labels:
app.customAppKey.env: dev
app: mall-gateway
armsPilotAutoEnable: 'on'
aliyun.com/app-language: golang # Go アプリケーションを指定します。
armsPilotCreateAppName: mall-gateway環境変数 ARMS_APP_LABELS を追加する
既存のポッドラベルをアプリケーションタグとして再利用するには、ack-onepilot V4.1.2 以降を構成します。
ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、管理するクラスタを見つけて、その名前をクリックします。左側のウィンドウで、 を選択します。
[デプロイメント] ページで、ack-onepilot コンポーネントをクリックします。通常、ack-onepilot 名前空間では ack-onepilot-ack-onepilot という名前です。

表示されるページの右上隅にある [編集] をクリックします。
[環境] セクションが表示されるまで下にスクロールします。[追加] をクリックし、環境変数 ARMS_APP_LABELS を追加して、値をカンマ区切りの文字列に設定します。構成後、
ARMS_APP_LABELSと一致する/spec/template/metadata/labelsにリストされているすべてのキーがアプリケーションタグとして登録されます。
ack-onepilot コンポーネントが再起動し、ヘルスチェックに合格するまで待ちます。次に、アプリケーションポッドを再起動してラベルを適用します。

ARMS では、アプリケーションは複数のアプリケーションインスタンスの集合です。複数のアプリケーションインスタンスを持つことも、複数のワークロードまたは Kubernetes クラスタに属することもできます。Pod ラベルを使用すると、DevOps シナリオでアプリケーションタグを効率的に追加できます。ただし、この方法にはいくつかの制限があります。
Pod ラベルを使用して追加されたアプリケーションタグは、直接削除または変更することはできません。既存のタグキーを変更または削除するには、YAML ファイルを変更してから、ARMS コンソールまたは API 操作を使用する必要があります。
複数のワークロードが同じアプリケーションに属している場合、Pod ラベルを使用して追加されたアプリケーションタグが互いに競合する可能性があります。アプリケーションタグの一貫性を確保する必要があります。
アプリケーションタグの使用
アプリケーションクエリ
ARMS コンソールでアプリケーションリストを表示したり、アラートルールを作成したりする場合、アプリケーションタグを使用してアプリケーションをクエリできます。
タグベースの権限管理
アプリケーションタグに基づいて RAM 権限を管理できます。詳細については、「カスタムポリシーを RAM ユーザーにアタッチする」をご参照ください。
インスタンスタグの使用
アプリケーション詳細ページでのモニタリングデータのクエリ
ARMS コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
[アプリケーションリスト] ページで、上部のナビゲーションバーでリージョンを選択し、管理するアプリケーションの名前をクリックします。
アプリケーション詳細ページのさまざまなモジュールで、インスタンスタグを使用してモニタリングデータをクエリできます。たとえば、イメージバージョンに基づいてモニタリングデータを比較および分析できます。
[言語] 列に表示されるアイコンは、アプリケーションが記述されている言語を示します。
: Java アプリケーション
: Go アプリケーション
: Python アプリケーション
ハイフン (-): Managed Service for OpenTelemetry で監視されるアプリケーション。
Grafana ビューページでのメトリックのクエリ
ARMS コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。
[アプリケーションリスト] ページで、上部のナビゲーションバーでリージョンを選択し、管理するアプリケーションの名前をクリックします。
左側のナビゲーションウィンドウで、[Grafana ビュー] をクリックします。表示されるページで、タグを構成してメトリックを表示します。

[言語] 列に表示されるアイコンは、アプリケーションが記述されている言語を示します。
: Java アプリケーション
: Go アプリケーション
: Python アプリケーション
ハイフン (-): Managed Service for OpenTelemetry で監視されるアプリケーション。