Application Real-Time Monitoring Service (ARMS) instrumente automatiquement les applications Java exécutées sur Container Service for Kubernetes (ACK) et Container Compute Service (ACS). Installez le composant ack-onepilot dans votre cluster et ajoutez trois libellés à votre Deployment. ARMS collecte alors les traces, la topologie de l'application, les métriques d'appels API ainsi que les données d'erreurs et de latence, sans aucune modification du code.
Les étapes d'installation pour ACK et ACS sont identiques. Ce guide utilise ACK comme exemple.
Fonctionnement
Le composant ack-onepilot (ARMS Agent Onboarding Assistant) s'exécute en tant que contrôleur dans votre cluster. Lorsqu'un pod portant les libellés appropriés démarre, ack-onepilot injecte automatiquement l'agent Java ARMS dans ce pod. Lors de la publication d'une nouvelle version de l'agent, ack-onepilot met à jour l'agent au prochain redémarrage de l'application. Pour figer une version spécifique, consultez la rubrique Contrôler manuellement les versions de l'agent.
Pour plus de détails sur le mécanisme d'injection, consultez la rubrique Fonctionnement de ack-onepilot.
L'ancien composant arms-pilot n'est plus maintenu. ack-onepilot le remplace et est entièrement compatible : la migration ne nécessite aucune modification de la configuration de votre application. Pour connaître les étapes de migration, consultez la rubrique Désinstaller arms-pilot et installer ack-onepilot.
Vue d'ensemble du processus
La configuration de la surveillance ARMS s'effectue en trois étapes :
Installez ack-onepilot : déployez le composant de surveillance via la console ACK.
Grant ARMS permissions : configurez l'authentification du cluster pour ARMS (la procédure varie selon le type de cluster).
Ajoutez des libellés à votre Deployment : ajoutez trois libellés au modèle de pod pour activer l'instrumentation automatique.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
-
Un cluster ACK ou ACS :
Un namespace dans le cluster (consultez la rubrique Gérer les namespaces et les quotas). Ce guide utilise
arms-democomme namespace d'exemple.Une version de JDK conforme aux exigences (consultez la rubrique Versions de JDK prises en charge).
Une mémoire maximale du tas JVM (
-Xmx) supérieure à 256 Mo.
Étape 1 : Installer ack-onepilot
Connectez-vous à la console ACK. Sur la page Clusters, cliquez sur le nom du cluster.
Dans le volet de navigation de gauche, cliquez sur Add-ons. Recherchez ack-onepilot.
Sur la carte ack-onepilot, cliquez sur Install.
Dans la boîte de dialogue, conservez les valeurs de paramètres par défaut et cliquez sur OK.
Par défaut, ack-onepilot prend en charge jusqu'à 1 000 pods. Pour chaque tranche supplémentaire de 1 000 pods, allouez 0,5 cœur de CPU et 512 Mo de mémoire au composant.
Après l'installation, mettez à jour, configurez ou désinstallez ack-onepilot depuis la page Add-ons.
Étape 2 : Accorder des autorisations ARMS
Les autorisations requises dépendent du type de votre cluster. Identifiez votre type de cluster et suivez les instructions correspondantes.
Clusters ACK managés
Les clusters ACK managés dotés d'un jeton ARMS Addon Token sont automatiquement autorisés. Vérifiez l'existence du jeton avant de poursuivre.
Si un cluster dispose d'un jeton ARMS Addon Token, ARMS effectue une autorisation sans mot de passe sur ce cluster. Le jeton ARMS Addon Token peut être absent de certains clusters ACK managés. Nous vous recommandons de vérifier si un cluster ACK managé possède un jeton ARMS Addon Token avant d'utiliser ARMS pour surveiller les applications du cluster.
Clusters ACK dédiés et clusters enregistrés
Les clusters ACK dédiés et les clusters enregistrés ACK One nécessitent deux éléments :
Votre compte Alibaba Cloud doit disposer des autorisations AliyunARMSFullAccess et AliyunSTSAssumeRoleAccess. Consultez la rubrique Gérer les autorisations des utilisateurs RAM.
Le composant ack-onepilot doit disposer d'une paire de clés AccessKey avec des autorisations ARMS.
Fournissez la paire de clés AccessKey à ack-onepilot en utilisant l'une des méthodes suivantes.
Méthode 1 : Spécifier la paire de clés AccessKey dans Helm
Connectez-vous à la console ACK. Cliquez sur Clusters, puis sur le nom du cluster.
Dans le volet de navigation de gauche, choisissez Applications > Helm. Cliquez sur Update à côté de ack-onepilot.
-
Remplacez les valeurs
accessKeyetaccessKeySecretpar votre ID de clé AccessKey et votre secret AccessKey. Cliquez sur OK.RemarquePour obtenir une paire de clés AccessKey, consultez la rubrique Créer une paire de clés AccessKey.

Redémarrez le Deployment de l'application.
Méthode 2 : Utiliser un Secret Kubernetes
Connectez-vous à la console ACK. Cliquez sur Clusters, puis sur le nom du cluster.
-
Dans le volet de navigation de gauche, choisissez Configurations > Secrets. Sélectionnez le namespace ack-onepilot et créez un Secret pour stocker votre ID de clé AccessKey et votre secret AccessKey.
RemarquePour obtenir une paire de clés AccessKey, consultez la rubrique Créer une paire de clés AccessKey.

Dans le volet de navigation de gauche, choisissez Workloads > Deployments. Cliquez sur le composant ack-onepilot (généralement nommé
ack-onepilot-ack-onepilotdans le namespaceack-onepilot).-
Dans le coin supérieur droit, cliquez sur Edit. Dans la section Environment Variables, ajoutez les deux variables suivantes et référencez les valeurs du Secret. Cliquez sur OK.
Environment variable
Description
ONE_PILOT_ACCESSKEYRéférence l'ID de clé AccessKey stocké dans le Secret
ONE_PILOT_ACCESSKEY_SECRETRéférence le secret AccessKey stocké dans le Secret

Clusters ACK serverless (ASK) et clusters intégrés à ECI
Effectuez l'autorisation complète sur la page Autorisation d'accès aux ressources, puis redémarrez tous les pods du composant ack-onepilot.
Étape 3 : Ajouter des libellés à votre Deployment
Ajoutez trois libellés à la section spec.template.metadata.labels du fichier YAML de votre Deployment pour activer la surveillance ARMS :
labels:
armsPilotAutoEnable: "on"
armsPilotCreateAppName: "<your-deployment-name>" # Replace <your-deployment-name> with your application name.
aliyun.com/app-language: java
|
Label |
Value |
Description |
|
|
|
Active l'injection automatique de l'agent pour le pod |
|
|
|
Nom de l'application affiché dans la console ARMS. Remplacez cette valeur par le nom de votre application. |
|
|
|
Spécifie la langue de l'application pour l'agent |
Les libellés doivent se trouver dans spec.template.metadata.labels (le modèle de pod), et non dans metadata.labels (les métadonnées du Deployment). Le placement des libellés au mauvais endroit est une cause fréquente d'absence de données de surveillance.
Appliquer les libellés à un Deployment existant
Connectez-vous à la console ACK. Cliquez sur Clusters, puis sur le nom du cluster.
Dans le volet de navigation de gauche, choisissez Workloads > Deployments.
Sur la page Stateless, cliquez sur
> YAML Edit à côté de l'application cible.Ajoutez les trois libellés à
spec.template.metadata.labelset cliquez sur Update.
Pour plus d'informations sur la sécurité des applications, consultez la rubrique Qu'est-ce que la sécurité des applications ?.
Pour plus d'informations sur la facturation de la sécurité des applications, consultez la rubrique Présentation de la facturation.

Créer un nouveau Deployment avec la surveillance activée
Sur la page Stateless, cliquez sur Create from YAML et incluez les libellés dans la définition de votre Deployment.
Vérifier les données de surveillance
Sur la page Stateless, cliquez sur
> ARMS Console dans la colonne Actions de l'application cible pour afficher les détails de la surveillance de l'application.
