Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:Ajouter et utiliser des tags

Dernière mise à jour :Aug 10, 2026

Les tags du service Application Real-Time Monitoring Service (ARMS) vous aident à organiser et à observer vos données, telles que les métriques de surveillance des applications, les traces et les journaux. Cette rubrique explique comment ajouter des tags à vos applications, utiliser les tags d'application pour filtrer les applications et gérer les autorisations, ainsi qu'utiliser les tags d'instance pour filtrer les données sur les pages Application Details et Grafana View.

Prérequis

Votre application est connectée à la Surveillance des applications. Pour plus d'informations, consultez la page Présentation de la Surveillance des applications.

Les applications Java doivent également satisfaire aux exigences suivantes :

  • Pour les applications déployées dans des clusters de conteneurs, assurez-vous que le composant ack-onepilot est en version 3.0.4 ou ultérieure et que l'agent ARMS est en version 2.7.3.5 ou ultérieure.

  • Pour les applications déployées dans d'autres environnements, vérifiez que la version de l'agent ARMS est la 2.7.3.5 ou une version ultérieure. Vous pouvez télécharger la dernière version de l'agent ARMS depuis l'onglet Agent Release Notes de la page Application Monitoring > Agent Management dans la console ARMS.

Types de tags

La Surveillance des applications propose deux types de tags : les tags d'application et les tags d'instance. Tous deux utilisent des paires clé-valeur. Choisissez le type qui correspond le mieux à votre cas d'utilisation.

Tags d'application

Les tags d'application s'appliquent aux applications ARMS. Vous pouvez consulter ou modifier ces tags sur la page Application Monitoring > Application List de la console ARMS. Les tags d'application servent notamment à filtrer les applications, gérer les autorisations et répartir les coûts.

Tags d'instance

Chaque instance d'application représente un processus d'application connecté à ARMS sous le même nom d'application. Contrairement aux tags d'application, les tags d'instance s'appliquent à des instances individuelles, ce qui permet à différentes instances d'une même application d'avoir des tags distincts.

Pour les instances d'application découvertes automatiquement dans un environnement Kubernetes, ARMS ajoute les tags d'instance par défaut suivants :

|
**Clé de tag**
|
**description**
| | --- | --- | |
workloadKind
|
Type de charge de travail où s'exécute l'instance d'application, par exemple Deployment.
| |
workloadName
|
Nom de la charge de travail où s'exécute l'instance d'application.
| |
clusterName
|
Nom du cluster Kubernetes où s'exécute l'instance d'application.
| |
namespace
|
Namespace Kubernetes où s'exécute l'instance d'application.
| |
version
|
Tag de l'image.


Un tag d'instance personnalisé peut remplacer cette valeur.
| |
agentVersion
|
Version de l'agent ARMS.
|

Outre les tags par défaut, vous pouvez ajouter des tags d'instance personnalisés. Les instances d'application héritent également de tous les tags de leur application parente. Les données de surveillance générées par ARMS pour une instance d'application incluent l'ensemble des tags d'application et d'instance qui lui sont attribués.

Remarque

Nous vous recommandons de suivre les conventions de nommage Prometheus pour les clés des tags d'instance personnalisés, c'est-à-dire qu'elles doivent correspondre à l'expression régulière ^[a-zA-Z_][a-zA-Z0-9_]*$. Pour les clés non conformes, l'agent ARMS remplace les caractères invalides par un trait de soulignement (_). Par exemple, 1key:1value devient _key:1value.

Exemple :

Comme illustré dans la figure suivante, l'application my-app comporte deux instances. Les données de métriques générées par ARMS pour l'instance B incluent les tags suivants : {env: Dev, team: Observability, app: my-app, workloadKind: Deployment, workloadName: my-app, clusterName: ClusterA, namespace: nsA, gitVersion: 1.0.1}.

image






























Ajouter des tags d'instance personnalisés

Ajouter des tags d'instance personnalisés dans Kubernetes

Méthode 1 (recommandée) : Injecter des tags à l'aide des labels de pod

Si votre application est déployée dans un environnement Kubernetes où l'agent ARMS est installé automatiquement, vous pouvez ajouter des tags d'instance personnalisés en utilisant les labels de pod.

Remarque

Cette méthode convient aux applications déployées à la fois dans Container Service for Kubernetes (ACK) et dans des environnements Kubernetes généraux. Pour savoir comment installer automatiquement l'agent ARMS dans ces environnements, consultez la page Présentation de la Surveillance des applications.

Prenons l'exemple d'une application déployée dans un environnement ACK :

Dans la console ACK, accédez à la page Deployments ou StatefulSets de votre cluster cible. Sélectionnez le namespace cible, repérez l'application concernée, puis dans la colonne Actions, choisissez image > View in YAML. Dans la boîte de dialogue Edit YAML, ajoutez vos tags personnalisés et cliquez sur Update. L'instance d'application redémarre pour appliquer les nouveaux tags.

'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'  # Add a custom instance tag
        app: mall-gateway
        armsPilotAutoEnable: 'on'
        armsPilotCreateAppName: mall-gateway
    spec:
      containers:
      - env:
        - name: SERVICE_NAME

Méthode 2 : Injecter des tags à l'aide d'une variable d'environnement de pod

Remarque
  • Pour utiliser cette méthode avec une application Java, la version de l'agent ARMS doit être la 4.0.0 ou une version ultérieure.

  • Pour utiliser cette méthode avec une application Go, la version de l'agent ARMS doit être la 1.5.0 ou une version ultérieure.

  • Pour utiliser cette méthode avec une application Python, la version de l'agent ARMS doit être la 1.3.0 ou une version ultérieure.

Pour injecter des tags personnalisés disponibles uniquement après la création d'un pod (comme podName), vous pouvez les injecter en ajoutant une variable d'environnement système au script de démarrage du conteneur de l'application. Procédez comme suit :

  1. Ajoutez une variable d'environnement nommée ARMS_HOST_TAGS à votre conteneur d'application. Définissez sa valeur sur vos tags d'instance. Séparez plusieurs tags en utilisant le format key1:value1&key2:value2. Par exemple : export ARMS_HOST_TAGS="gitVersion:1.0.2&ip:192.168.1.101".

  2. Redémarrez l'application pour que la modification prenne effet.

Ajouter des tags pour les agents installés manuellement

Applications Java

Méthode 1 : Utiliser un paramètre -D

Ajoutez le paramètre -Darms.host.tags="${yourLabel}" à la commande de démarrage de votre application Java.

Remplacez ${yourLabel} par les tags d'instance que vous souhaitez ajouter. Utilisez le format key1:value1&key2:value2 pour plusieurs tags. Par exemple : -Darms.host.tags="gitVersion:1.0.2&ip:192.168.1.101".

Méthode 2 : Modifier le fichier de configuration

Agent v4.0.0 ou ultérieur

  1. Comme indiqué dans la section Modifier le fichier de configuration et la région de rapport par défaut de l'agent Java, créez un fichier de configuration avec l'extension .properties dans n'importe quel répertoire. Dans ce fichier, ajoutez le champ profiler.tags.customtags et définissez sa valeur sur vos tags d'instance. Utilisez le format key1:value1&key2:value2 pour plusieurs tags. Exemple :

    #profiler.tags.customtags=key1:value1&key2:value2
    profiler.tags.customtags=gitVersion:1.0.2&ip:192.168.1.101
  2. Ajoutez le paramètre -Dotel.javaagent.configuration-file=${path/to/config/file} aux paramètres de démarrage de votre application Java, ou définissez la variable d'environnement OTEL_JAVAAGENT_CONFIGURATION_FILE=${path/to/config/file}.

    Remarque
    • Remplacez ${path/to/config/file} par le chemin complet du fichier de configuration que vous avez créé. Par exemple : -Dotel.javaagent.configuration-file=/home/admin/config/agent-config.properties ou OTEL_JAVAAGENT_CONFIGURATION_FILE=/home/admin/config/agent-config.properties.

    • Si le paramètre de démarrage et la variable d'environnement sont tous deux configurés, le paramètre de démarrage est prioritaire.

  3. Redémarrez le processus de l'application.

Agent antérieur à la v4.0.0

  1. Comme indiqué dans la section Modifier le fichier de configuration et la région de rapport par défaut de l'agent Java, modifiez le champ profiler.tags.customtags dans le fichier arms-agent.config situé dans le répertoire d'installation de l'agent. Vous pouvez ajouter des tags d'instance personnalisés au format key1:value1&key2:value2. Exemple :

    #profiler.tags.customtags=key1:value1&key2:value2
    profiler.tags.customtags=gitVersion:1.0.2&ip:192.168.1.101
  2. Redémarrez le processus de l'application.

Applications Go

Déclarez une variable d'environnement, puis redémarrez le processus de l'application.

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

Applications Python

Déclarez une variable d'environnement, puis redémarrez le processus de l'application.

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

Injecter des tags d'application via les labels de pod

Important
  • Pour les applications Java, seul le composant ack-onepilot en version 3.0.16 ou ultérieure prend en charge l'injection de tags d'application via les labels de pod.

  • Pour les applications Go, seul le composant ack-onepilot en version 3.2.0 ou ultérieure prend en charge l'injection de tags d'application via les labels de pod.

  • Pour les applications Python, seul le composant ack-onepilot en version 4.1.1 ou ultérieure prend en charge l'injection de tags d'application via les labels de pod.

  • Seul le composant ack-onepilot en version 4.1.2 ou ultérieure prend en charge la méthode 2 pour l'injection de tags d'application.

Méthode 1 :

Si un label de pod possède le préfixe app.customAppKey., ARMS l'identifie comme un tag d'application et non comme un tag d'instance.

Par exemple, dans le code suivant, ARMS ajoute le tag d'application env: dev à l'application associée à cette charge de travail.

  template:
    metadata:
      labels:
        app.customAppKey.env: dev
        app: mall-gateway
        armsPilotAutoEnable: 'on'
        aliyun.com/app-language: golang  # Required for Go applications to identify the application language. Not required for Java applications.
        armsPilotCreateAppName: mall-gateway

Méthode 2 :

Pour réutiliser des labels de pod existants en tant que tags d'application, configurez le composant ack-onepilot.

Prérequis

La version d'ack-onepilot est la 4.1.2 ou une version ultérieure.

Procédure

  1. Repérez le Deployment du composant ack-onepilot. Il est généralement nommé ack-onepilot-ack-onepilot et se trouve dans le namespace ack-onepilot.

    Vérifiez que le nombre de pods pour le Deployment indique 2/2, ce qui signifie que le composant ack-onepilot fonctionne correctement.

  2. Ajoutez la variable d'environnement ARMS_APP_LABELS au Deployment du composant ack-onepilot. Cette variable est une chaîne de clés séparées par des virgules. Une fois configurée, toute clé issue de /spec/template/metadata/labels listée dans la variable ARMS_APP_LABELS est identifiée comme un tag d'application.

    Par exemple, si vous définissez la valeur de ARMS_APP_LABELS sur env,group, les tags dont les clés sont env et group dans les labels de pod sont identifiés comme des tags d'application.

  3. Attendez que le composant ack-onepilot redémarre et passe ses contrôles d'intégrité. Redémarrez ensuite votre application pour appliquer les tags d'application.

    Dans la console ACK, sur la page de détails du Deployment ack-onepilot-ack-onepilot, vérifiez que l'état prêt est de 2/2 et que le statut de tous les pods est Running. Cela indique que le composant est prêt.

Remarque
  • Dans ARMS, une application est un concept agrégé représentant un ensemble d'instances d'application. Une application peut comporter plusieurs instances et provenir de plusieurs charges de travail ou clusters Kubernetes. Par conséquent, l'injection de tags d'application via les labels de pod est une pratique pratique pour les scénarios DevOps, mais présente certaines limites.

  • Les tags d'application injectés via les labels de pod ne peuvent être qu'ajoutés. Ils ne peuvent pas être supprimés en effaçant le label du fichier YAML. Pour modifier ou supprimer un tag, vous devez utiliser la console ARMS ou l'API OpenAPI.

  • Si plusieurs charges de travail correspondent à la même application ARMS, l'injection de tags d'application via les labels de pod peut entraîner des conflits. Assurez-vous que les tags d'application sont cohérents entre ces charges de travail.

Utiliser les tags d'application

Filtrer les applications

Sur la page Application List d'ARMS et lors de la création de règles d'alerte, vous pouvez utiliser les tags d'application pour filtrer rapidement les applications.

Contrôle d'accès basé sur les tags

Vous pouvez gérer les autorisations Resource Access Management (RAM) en fonction des tags d'application. Pour plus d'informations, consultez la page Politiques RAM personnalisées pour la Surveillance des applications.

Utiliser les tags d'instance

Filtrer les données par tag d'instance

  1. Connectez-vous à la console ARMS. Dans le volet de navigation de gauche, choisissez Application Monitoring > Application List.

  2. Sur la page Application List, sélectionnez une région en haut de la page, puis cliquez sur le nom de l'application cible.

    Remarque

    Les icônes de la colonne Language indiquent le langage de programmation de l'application :

    Java图标 : Une application Java connectée à la Surveillance des applications.

    image : Une application Go connectée à la Surveillance des applications.

    image : Une application Python connectée à la Surveillance des applications.

    - : Une application connectée à Managed Service for OpenTelemetry.

  3. Sur les pages de détails de l'application, vous pouvez filtrer les données de surveillance par tags d'instance. Par exemple, vous pouvez comparer et analyser les données en fonction des numéros de version d'image.

Interroger les métriques par tag dans Grafana

  1. Connectez-vous à la console ARMS. Dans le volet de navigation de gauche, choisissez Application Monitoring > Application List.

  2. Sur la page Application List, sélectionnez une région en haut de la page, puis cliquez sur le nom de l'application cible.

    Remarque

    Les icônes de la colonne Language indiquent le langage de programmation de l'application :

    Java图标 : Une application Java connectée à la Surveillance des applications.

    image : Une application Go connectée à la Surveillance des applications.

    image : Une application Python connectée à la Surveillance des applications.

    - : Une application connectée à Managed Service for OpenTelemetry.

  3. Dans le volet de navigation de gauche, cliquez sur Grafana View. En haut de la page, sélectionnez différents tags pour filtrer les métriques.

    GrafanaView