Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:Installer l'agent Go avec ack-onepilot

Dernière mise à jour :Aug 24, 2026

Pour surveiller les applications Go déployées dans Container Service for Kubernetes (ACK) ou Container Compute Service (ACS), installez le composant ack-onepilot d'Application Real-Time Monitoring Service (ARMS) et compilez votre binaire Go. Vous pourrez ensuite consulter les données de surveillance, telles que la topologie des applications, les appels API et l'analyse des bases de données, dans ARMS. Cette rubrique explique comment installer un agent Go pour une application déployée dans Container Service for Kubernetes (ACK) ou Container Compute Service (ACS).

Remarque
  • Les étapes d'installation sont identiques pour ACK et ACS. Ce guide utilise ACK comme exemple.

  • Pour toute question concernant l'agent Go, contactez-nous via notre groupe de questions-réponses DingTalk (ID : 159215000379).

Prérequis

Étape 1 : Accorder les autorisations d'accès aux ressources ARMS

Cluster ACK managé

S'il n'existe aucun jeton ARMS Addon Token dans votre cluster ACK managé, accordez manuellement au cluster les autorisations nécessaires pour accéder aux ressources ARMS.

Vérifier si le jeton ARMS Addon Token existe dans un cluster

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters. Sur la page Clusters, cliquez sur le nom du cluster pour accéder à la page des détails du cluster.

  2. Dans le volet de navigation de gauche, choisissez Configurations > Secrets. En haut de la page, sélectionnez kube-system dans la liste déroulante Namespace et vérifiez si addon.arms.token s'affiche sur la page Secrets.

Remarque

Si un cluster dispose du 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 la présence du jeton ARMS Addon Token dans un cluster ACK managé avant d'utiliser ARMS pour surveiller les applications qui y sont déployées. Si le cluster ne possède pas de jeton ARMS Addon Token, vous devez l'autoriser à accéder à ARMS.

Ajouter manuellement des stratégies d'autorisation

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters. Sur la page Clusters, cliquez sur le nom du cluster.

  2. Sur l'onglet Basic Information de la page Cluster Information, cliquez sur le lien situé à côté de Worker RAM Role dans la section Cluster Resources.

  3. Sur la page qui s'affiche, cliquez sur Grant Permission dans l'onglet Permissions.

  4. Dans le panneau Grant Permission, ajoutez les stratégies suivantes et cliquez sur Grant permissions.

    • AliyunTracingAnalysisFullAccess : accès complet à Managed Service for OpenTelemetry.

    • AliyunARMSFullAccess : accès complet à ARMS.

Clusters ACK dédiés et enregistrés

Pour surveiller les applications dans les clusters ACK dédiés et les clusters enregistrés ACK One, assurez-vous que le compte Alibaba Cloud dispose des autorisations AliyunARMSFullAccess et AliyunSTSAssumeRoleAccess. Pour plus d'informations sur l'octroi des autorisations, consultez la rubrique Accorder des autorisations à un utilisateur RAM.

Après avoir installé le composant ack-onepilot, fournissez-lui la paire de clés AccessKey (AccessKey ID et AccessKey secret) d'un compte Alibaba Cloud disposant des autorisations ARMS.

Méthode 1 : Spécifier la paire de clés AccessKey dans Helm

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster cible. Dans le volet de navigation de gauche, choisissez Application > Helm. Recherchez le composant ack-onepilot et cliquez sur Update dans la colonne Actions.

  3. Remplacez accessKey et accessKeySecret par votre AccessKey ID et votre AccessKey secret, puis cliquez sur OK.

    Remarque

    Pour savoir comment obtenir une paire de clés AccessKey, consultez la rubrique Créer une paire de clés AccessKey.

    Sur la page Update Release, dans l'éditeur de configuration YAML, localisez les champs accessKey et accessKeySecret sous la section controller.

  4. Redémarrez le déploiement de l'application.

Méthode 2 : Référencer la paire de clés AccessKey depuis un secret

  1. Connectez-vous à la console Container Service for Kubernetes (ACK). Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster cible. Dans le volet de navigation de gauche, choisissez Configurations > Secrets.

  3. Sélectionnez le namespace ack-onepilot, créez un secret, puis ajoutez les informations de votre paire de clés AccessKey.

    Remarque

    Pour savoir comment obtenir une paire de clés AccessKey, consultez la rubrique Créer une paire de clés AccessKey.

    Définissez Name sur ack-onepilot-aksk et Type sur Opaque. Dans le tableau de données, ajoutez des paires clé-valeur nommées ak et sk, et définissez leurs valeurs sur l'AccessKey ID et l'AccessKey secret correspondants. Cliquez ensuite sur OK.

  4. Dans le volet de navigation de gauche, choisissez Workloads > Stateless. Cliquez sur le composant ack-onepilot, généralement nommé ack-onepilot-ack-onepilot et situé dans le namespace ack-onepilot.

  5. Dans le coin supérieur droit de la page ack-onepilot-ack-onepilot, cliquez sur Edit. Ensuite, dans la section Environment Variables, ajoutez ONE_PILOT_ACCESSKEY et ONE_PILOT_ACCESSKEY_SECRET, définissez leurs valeurs en référençant le Secret, puis cliquez sur OK.

    Définissez le secret référencé pour les deux variables sur ack-onepilot-aksk. Définissez la clé pour ONE_PILOT_ACCESSKEY sur ak et la clé pour ONE_PILOT_ACCESSKEY_SECRET sur sk.

Clusters ACK serverless (ASK) et clusters intégrés à ECI

Effectuez l'autorisation sur la page Resource Access Authorization, puis redémarrez tous les pods du composant ack-onepilot.

Étape 2 : Installer le composant ack-onepilot

  1. Connectez-vous à la console ACK. Sur la page Clusters, cliquez sur le nom du cluster.

  2. Dans le volet de navigation de gauche, cliquez sur Component Management et recherchez ack-onepilot.

    Important

    Assurez-vous que la version d'ack-onepilot est 3.2.0 ou ultérieure.

  3. Cliquez sur Install sur la carte ack-onepilot.

    Remarque

    Par défaut, le composant ack-onepilot prend en charge 1 000 pods. Pour chaque tranche supplémentaire de 1 000 pods dans le cluster, ajoutez 0,5 cœur de CPU et 512 Mo de mémoire pour le composant.

  4. Dans la boîte de dialogue qui s'affiche, configurez les paramètres et cliquez sur OK. Nous vous recommandons d'utiliser les valeurs par défaut.

    Remarque

    Après avoir installé ack-onepilot, vous pouvez le mettre à niveau, le configurer ou le désinstaller sur la page Add-ons.

Étape 3 : Compiler l'image de l'application Go

  1. (Facultatif) Si votre projet inclut un répertoire vendor, ajoutez -mod=vendor après go build.

  2. Utilisez la commande wget pour télécharger l'outil de compilation instgo, et sélectionnez l'adresse de téléchargement correspondant à votre environnement de compilation et à la région de votre machine de compilation.

    Notez qu'instgo se met automatiquement à jour lors de la compilation. Enregistrez instgo dans un répertoire où l'utilisateur de build dispose des autorisations d'écriture.

    Remarque
    • Instgo est un outil de build fourni par ARMS pour les applications Go. Après avoir compilé votre projet Go à l'aide d'instgo, ARMS peut surveiller votre application Go.

    • L'outil de build est identique dans toutes les régions. Si votre réseau public peut accéder à l'URL OSS, vous pouvez télécharger l'outil depuis le point de terminaison public de la région Chine (Hangzhou) qui correspond à votre système d'exploitation et à votre architecture.

    Afficher les commandes de téléchargement

    Linux (AMD64)

    URL publique

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-amd64" -O instgo

    Linux (ARM64)

    URL publique

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-linux-arm64" -O instgo

    Mac (ARM64)

    URL publique

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-arm64" -O instgo

    Mac (AMD64)

    URL publique

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-darwin-amd64" -O instgo

    Windows (AMD64)

    URL publique

    wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/instgo/instgo-windows-amd64.exe" -O instgo.exe

  3. Accordez les autorisations d'exécution à l'outil de build.

    Linux et Mac

    # Grant execute permission
    chmod +x instgo

    Windows

    Sous Windows, il n'est pas nécessaire d'accorder des autorisations d'exécution.

  4. (Facultatif) Configurez l'UID en tant que paramètre de build.

    Important

    Si vous ignorez cette étape, instgo installe par défaut la dernière version de l'agent ARMS.

    Utilisez la commande set pour configurer l'UID ou la clé de licence en tant que paramètre de build.

    instgo set --uid={YourAliyunUid} // You must use instgo 1.4.5 or a later version. The uid is the UID of your primary Alibaba Cloud account.
  5. Préfixez votre commande de build originale avec instgo.

    instgo go build {arg1} {arg2} {arg3}

    Cette méthode s'applique également si vous utilisez go install.

  6. Construisez une image en utilisant le fichier binaire généré à l'étape précédente.

Étape 4 : Activer la surveillance ARMS pour les applications Go

Le modèle YAML suivant présente un exemple complet de création d'une application stateless (Deployment) et d'activation de la surveillance des applications ARMS :

Afficher le fichier YAML d'exemple complet (Go)

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: otel-go-client
  name: otel-go-client
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: otel-go-client
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        aliyun.com/app-language: golang
        armsPilotAutoEnable: 'on'
        armsPilotCreateAppName: otel-go-client
        app: otel-go-client
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/private-mesh/hellob:otel-client-arms-go-test-0.0.1
          imagePullPolicy: Always
          name: client
          resources:
            requests:
              cpu: 250m
              memory: 300Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

---

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: otel-go-server
  name: otel-go-server
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: otel-go-server
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: otel-go-server
        aliyun.com/app-language: golang
        armsPilotAutoEnable: 'on'
        armsPilotCreateAppName: otel-go-server
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/private-mesh/hellob:otel-server-arms-go-test-0.0.1
          imagePullPolicy: Always
          name: server
          resources:
            requests:
              cpu: 250m
              memory: 300Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

---

apiVersion: v1
kind: Service
metadata:
  labels:
    app: otel-go-server
  name: otel-server
  namespace: default
spec:
  internalTrafficPolicy: Cluster
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: http
      port: 9000
      protocol: TCP
      targetPort: 9000
  selector:
    app: otel-go-server
  sessionAffinity: None
  type: ClusterIP
  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. En haut de la page Clusters, sélectionnez le groupe de ressources et la région où se trouve le cluster cible, puis cliquez sur le nom du cluster cible. Dans le volet de navigation de gauche, cliquez sur Workloads et sélectionnez Stateless, StatefulSets ou DaemonSets.

  3. Recherchez l'application cible et choisissez image > Edit YAML dans la colonne Actions.

    Pour créer une nouvelle application, cliquez sur Create Resources in YAML.

  4. Dans le fichier YAML, ajoutez les labels suivants au niveau spec.template.metadata.

    labels:
      aliyun.com/app-language: golang # Required for Go applications. This indicates that this is a Go application.
      armsPilotAutoEnable: 'on'
      armsPilotCreateAppName: "<YOUR-DEPLOYMENT-NAME>"    # Replace <YOUR-DEPLOYMENT-NAME> with your application name.
  5. Cliquez sur Update.

Résultats

Au bout d'environ une minute, l'agent est connecté si votre application Go apparaît sur la page Application Monitoring > Application List de la console ARMS et transmet des données.