Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:How ack-onepilot works

Dernière mise à jour :Aug 10, 2026

Le composant ack-onepilot injecte automatiquement l'agent Application Real-Time Monitoring Service (ARMS) dans vos pods Kubernetes. Au lieu de configurer manuellement chaque application pour la surveillance, ack-onepilot intercepte les requêtes de création de pod et ajoute les fichiers d'agent ainsi que les variables d'environnement nécessaires avant le démarrage du pod.

Architecture

ack-onepilot se compose de deux parties :

  • Service Webhook -- Un webhook d'admission mutante Kubernetes mutating admission webhook qui intercepte les requêtes de création de pod et modifie la spécification du pod avant qu'elle ne soit stockée dans etcd.

  • Conteneur d'initialisation -- Un conteneur injecté dans chaque pod qui prépare les fichiers de l'agent ARMS et les rend disponibles pour le conteneur d'application via un volume partagé.

image

Flux d'injection

Lorsqu'un pod est créé, ack-onepilot modifie sa spécification en deux étapes avant que Kubernetes ne la stocke dans etcd.

image

Étape 1 : Définir les variables d'environnement

Le service Webhook injecte des variables d'environnement dans la spécification du pod. Les variables spécifiques dépendent du langage de l'application.

Applications Java

Le webhook ajoute des paramètres de machine virtuelle Java (JVM) à la variable d'environnement JAVA_TOOL_OPTIONS :

Paramètre Objectif
Clé de licence ARMS Authentifie l'agent auprès du backend ARMS
Nom de l'application Identifie l'application dans la console ARMS
Région de reporting Spécifie le endpoint vers lequel les données d'observabilité sont envoyées
Chemin -javaagent Pointe vers le fichier JAR de l'agent ARMS préparé par le conteneur d'initialisation

D'autres informations sont également injectées pour aider à localiser le endpoint où les données sont rapportées.

Au démarrage, la JVM lit automatiquement JAVA_TOOL_OPTIONS et charge l'agent ARMS sans aucune modification de code dans votre application.

Applications Go

Pour les applications Go, des paramètres similaires à -javaagent ne sont pas requis.

Étape 2 : Ajouter un conteneur d'initialisation

Le webhook ajoute un conteneur d'initialisation au pod. Ce conteneur d'initialisation :

  1. Prépare le package de l'agent ARMS.

  2. Monte les fichiers de l'agent sur un volume partagé accessible à la fois par le conteneur d'initialisation et le conteneur d'application.

Lorsque le conteneur d'application démarre, il lit le chemin -javaagent depuis JAVA_TOOL_OPTIONS (pour Java) afin de localiser et charger l'agent ARMS. L'agent collecte ensuite les données d'observabilité tout au long du cycle de vie de l'application.

FAQ

La version d'ack-onepilot doit-elle correspondre à la version de l'agent ARMS ?

Non, elles ne sont pas nécessairement liées. ack-onepilot récupère le package d'agent approprié en fonction des configurations backend .