Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Configure tracing data export from ASM

Dernière mise à jour :Aug 11, 2026

Alibaba Cloud Service Mesh (ASM) vous permet d'exporter les données de traçage vers Managed Service for OpenTelemetry ou un système auto-géré. Cette rubrique explique comment configurer cette exportation dans la console ASM.

Prérequis

Exporter les données de traçage vers Managed Service for OpenTelemetry

Sélectionnez l'onglet correspondant à la version de votre instance ASM. Pour mettre à niveau votre instance, consultez la section Mettre à niveau une instance ASM.

Versions antérieures à 1.17.2.35

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez ASM Instance > Base Information.

  3. Sur la page Base Information, cliquez sur Settings. Dans le panneau Settings Update, sélectionnez Enable Tracing Analysis, définissez le Sampling Percentage, définissez la Sampling Method sur Managed Service for OpenTelemetry, puis cliquez sur OK.

  4. Dans le volet de navigation de gauche, choisissez Observability Management Center > Tracing Analysis. Vous êtes redirigé vers la console Managed Service for OpenTelemetry. Une fois la configuration terminée, vous pouvez vous connecter à la console Managed Service for OpenTelemetry et consulter les métriques de surveillance telles que le nombre de requêtes, les temps de réponse et le nombre de spans pour vos applications sur la page Overview Analysis.

    Pour plus d'informations sur le traçage, consultez la section Qu'est-ce que Managed Service for OpenTelemetry ?

Remarque

Pour désactiver cette fonctionnalité, décochez l'option Enable Tracing Analysis dans le panneau Settings Update, puis cliquez sur OK.

Versions 1.17.2.35 à antérieures à 1.18.0.124

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez Observability Management Center > Tracing Analysis.

  3. Sur la page Tracing Analysis, cliquez sur Collect ASM Tracing Data to Managed Service for OpenTelemetry, puis dans la boîte de dialogue Confirm, cliquez sur OK.

  4. Cliquez sur Open the Managed Service for OpenTelemetry Console pour afficher les données de traçage.

    Pour plus d'informations sur le traçage, consultez la section Qu'est-ce que Managed Service for OpenTelemetry ? Une fois la configuration terminée, vous pouvez vous connecter à la console Managed Service for OpenTelemetry et consulter les métriques de surveillance telles que le nombre de requêtes, les temps de réponse et le nombre de spans pour vos applications sur la page Overview Analysis.

Remarque

Si vous n'avez plus besoin de cette fonctionnalité, sur la page Tracing Analysis, cliquez sur Disable Collection, puis dans la boîte de dialogue Confirm, cliquez sur OK.

Versions 1.18.0.124 à antérieures à 1.22.6.89

Pour ces versions d'instance, vous ne pouvez pas configurer l'exportation vers Managed Service for OpenTelemetry directement dans la console. Vous devez plutôt déployer et configurer manuellement un collecteur OpenTelemetry.

Étape 1 : Déployer l'opérateur OpenTelemetry

  1. Dans l'environnement kubeconfig de votre cluster ACK, exécutez la commande suivante pour créer le namespace opentelemetry-operator-system :

    kubectl create namespace opentelemetry-operator-system
  2. Exécutez la commande suivante pour installer l'opérateur OpenTelemetry dans le namespace opentelemetry-operator-system à l'aide de Helm :

    helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
    helm install --namespace=opentelemetry-operator-system opentelemetry-operator open-telemetry/opentelemetry-operator \
      --set "manager.collectorImage.repository=otel/opentelemetry-collector-k8s" \
      --set admissionWebhooks.certManager.enabled=false \
      --set admissionWebhooks.autoGenerateCert.enabled=true
  3. Exécutez la commande suivante pour vérifier si l'opérateur OpenTelemetry fonctionne correctement :

    kubectl get pod -n opentelemetry-operator-system

    Sortie attendue :

    NAME                                      READY   STATUS    RESTARTS   AGE
    opentelemetry-operator-854fb558b5-pvllj   2/2     Running   0          1m

    Un statut STATUS indiquant Running signifie que l'opérateur OpenTelemetry est en cours d'exécution.

Étape 2 : Créer le collecteur OpenTelemetry

  1. Créez un fichier nommé collector.yaml avec le contenu suivant.

    Dans le fichier YAML, remplacez ${ENDPOINT} par le point d'accès VPC gRPC et ${TOKEN} par le jeton d'authentification. Pour obtenir le point d'accès et le jeton d'authentification pour Managed Service for OpenTelemetry, consultez la section Accès et authentification.

    Collector.yaml

    apiVersion: opentelemetry.io/v1alpha1
    kind: OpenTelemetryCollector
    metadata:
      labels:
        app.kubernetes.io/managed-by: opentelemetry-operator
      name: default
      namespace: opentelemetry-operator-system
      annotations:
        sidecar.istio.io/inject: "false"
    spec:
      config: |
        extensions:
          zpages:
            endpoint: 0.0.0.0:55679 
        receivers:
          otlp:
            protocols:
              grpc:
                endpoint: 0.0.0.0:4317
        exporters:
          debug:
            verbosity: detailed
          otlp:
            endpoint: ${ENDPOINT}
            tls:
              insecure: true
            headers:
              Authentication: ${TOKEN}
        service:
          extensions: [zpages]
          pipelines:
            traces:
              receivers: [otlp]
              processors: []
              exporters: [otlp, debug]
      ingress:
        route: {}
      managementState: managed
      mode: deployment
      observability:
        metrics: {}
      podDisruptionBudget:
        maxUnavailable: 1
      replicas: 1
      resources: {}
      targetAllocator:
        prometheusCR:
          scrapeInterval: 30s
        resources: {}
      upgradeStrategy: automatic
    
  2. Dans l'environnement kubeconfig de votre cluster ACK, exécutez la commande suivante pour déployer le collecteur dans le cluster :

    kubectl apply -f collector.yaml
  3. Exécutez la commande suivante pour vérifier si le collecteur a démarré correctement :

    kubectl get pod -n opentelemetry-operator-system

    Sortie attendue :

    NAME                                      READY   STATUS    RESTARTS   AGE
    opentelemetry-operator-854fb558b5-pvllj   2/2     Running   0          3m
    default-collector-5cbb4497f4-2hjqv        1/1     Running   0          30s

    Cette sortie indique que le collecteur a démarré avec succès.

  4. Exécutez la commande suivante pour vérifier si le service a été créé :

    kubectl get svc -n opentelemetry-operator-system

    Sortie attendue :

    opentelemetry-operator           ClusterIP   172.16.138.165   <none>        8443/TCP,8080/TCP   3m
    opentelemetry-operator-webhook   ClusterIP   172.16.127.0     <none>        443/TCP             3m
    default-collector              ClusterIP   172.16.145.93    <none>        4317/TCP   30s
    default-collector-headless     ClusterIP   None             <none>        4317/TCP   30s
    default-collector-monitoring   ClusterIP   172.16.136.5     <none>        8888/TCP   30s

    La sortie indique que le service a été créé avec succès.

Étape 3 : Activer le traçage dans la console ASM

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez Observability Management Center > Observability Settings.

  3. Sur la page Observability Settings, dans la section Tracing Analysis Settings, définissez le Sampling Percentage sur 100 et cliquez sur Submit.

  4. Dans le volet de navigation de gauche, choisissez Observability Management Center > Tracing Analysis. Définissez l'Adresse/Domaine du service OpenTelemetry sur default-collector.opentelemetry-operator-system.svc.cluster.local et le OpenTelemetry Service Port sur 4317. Ensuite, cliquez sur Collect ASM Tracing Data to Custom Managed Service for OpenTelemetry.

Versions 1.22.6.89 et ultérieures

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez Observability Management Center > Tracing Analysis.

  3. Sur la page Tracing Analysis, dans la section Export to Alibaba Cloud Observable Link, sélectionnez une Export Method, telle que Zipkin. Dans la section Fill in the configuration, saisissez les informations requises et cliquez sur Submit.

  4. Cliquez sur Go to Managed Service for OpenTelemetry console pour afficher les données de traçage. Pour plus d'informations sur le traçage, consultez la section Qu'est-ce que Managed Service for OpenTelemetry ?

    Remarque

    Si vous n'avez plus besoin de cette fonctionnalité, sur la page Tracing Analysis, cliquez sur Export, puis dans la boîte de dialogue Confirm, cliquez sur OK.

Exporter les données de traçage vers un système auto-géré

La méthode d'exportation pour un système auto-géré dépend de la version de votre instance ASM. Sélectionnez l'onglet correspondant à la version de votre instance.

Versions antérieures à 1.18.0.124

  • Pour les instances ASM antérieures à la version 1.17.2.28 : Connectez-vous à la console ASM. Sur la page Base Information de l'instance cible, cliquez sur Settings, sélectionnez Enable Tracing Analysis, configurez les paramètres selon vos besoins, puis cliquez sur OK.

  • Pour les instances ASM de version 1.17.2.28 ou ultérieure mais antérieure à 1.18.0.124 : Pour savoir comment activer le traçage, consultez la section Paramètres de traçage.

Versions 1.18.0.124 à antérieures à 1.22.6.89

Pour cette plage de versions, configurez l'exportation vers un système auto-géré sur la page Observability Management Center > Tracing Analysis de l'instance cible dans la console ASM.

Paramètres

|
**Paramètre**
|
**Description**
| | --- | --- | |
**OpenTelemetry Domain Name (FQDN)**
|
Le nom de domaine complet (FQDN) de votre service de système auto-géré. Exemple : `otel.istio-system.svc.cluster.local`.
| |
**OpenTelemetry Service Port**
|
Le port de service du système auto-géré. Exemple : `8090`.
|











Versions 1.22.6.89 et ultérieures

Sur la page OpenTelemetry Domain Name (FQDN) > OpenTelemetry Service Port de votre instance dans la console ASM, sélectionnez et configurez votre système de traçage auto-géré.

Important

Lors de l'exportation des données de traçage vers un système auto-géré, assurez-vous qu'il s'agit d'un service au sein du maillage. Si le système se trouve en dehors du maillage de services, vous pouvez l'enregistrer auprès du maillage en créant un ServiceEntry. Pour plus d'informations, consultez la section ServiceEntry.

Paramètres

Exporter vers OpenTelemetry

Paramètre

Description

Observability Management Center

Le FQDN du service de système auto-géré. Exemple : otel.istio-system.svc.cluster.local.

Tracing Analysis

Le port de service du système auto-géré. Exemple : 8090.

Exportation via gRPC

Service domain name (full FQDN)

Facultatif. Le délai d'attente de la requête en secondes pour l'exportation des données de traçage. Exemple : 1. Cette fonctionnalité est désactivée par défaut.

Service Port

Facultatif. En-têtes de requête à inclure lors de l'exportation des données de traçage. Exemple : authentication: token-xxx. Ce champ est vide par défaut.

Exportation via HTTP

Timeout

Le chemin de requête pour l'exportation des données de traçage. Exemple : /api/v2/spans. La valeur par défaut est /.

Request Header

Facultatif. Le délai d'attente de la requête en secondes pour l'exportation des données de traçage. Exemple : 1. Cette fonctionnalité est désactivée par défaut.

Request path

Facultatif. En-têtes de requête à inclure lors de l'exportation des données de traçage. Exemple : authentication: token-xxx. Ce champ est vide par défaut.

Exporter vers Zipkin

|
**Paramètre**
|
**Description**
| | --- | --- | |
**Domain name of Zipkin**
|
Le FQDN du service de système auto-géré. Exemple : `zipkin.istio-system.svc.cluster.local`.
| |
**Request Port**
|
Le port de service du système auto-géré. Exemple : `8090`.
| |
**Request Path**
|
Le chemin de requête pour l'exportation des données de traçage. La valeur par défaut est `/api/v2/spans`.
|















Exporter vers SkyWalking

|
**Paramètre**
|
**Description**
| | --- | --- | |
**Skywalking service domain name**
|
Le FQDN du service de système auto-géré. Exemple : `skywalking.istio-system.svc.cluster.local`.
| |
**Request Port**
|
Le port de service du système auto-géré. Exemple : `8090`.
|











Vérifier l'exportation des données

Déployer des applications

  1. Déployez l'application exemple Bookinfo.

    1. Créez le fichier bookinfo.yaml avec le contenu suivant.

      Développer pour afficher le contenu YAML

      apiVersion: v1
      kind: Service
      metadata:
        name: details
        labels:
          app: details
          service: details
      spec:
        ports:
        - port: 9080
          name: http
        selector:
          app: details
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: bookinfo-details
        labels:
          account: details
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: details-v1
        labels:
          app: details
          version: v1
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: details
            version: v1
        template:
          metadata:
            labels:
              app: details
              version: v1
          spec:
            serviceAccountName: bookinfo-details
            containers:
            - name: details
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-details-v1:1.20.1
              imagePullPolicy: IfNotPresent
              ports:
              - containerPort: 9080
      ---
      ##################################################################################################
      # Ratings service
      ##################################################################################################
      apiVersion: v1
      kind: Service
      metadata:
        name: ratings
        labels:
          app: ratings
          service: ratings
      spec:
        ports:
        - port: 9080
          name: http
        selector:
          app: ratings
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: bookinfo-ratings
        labels:
          account: ratings
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: ratings-v1
        labels:
          app: ratings
          version: v1
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: ratings
            version: v1
        template:
          metadata:
            labels:
              app: ratings
              version: v1
          spec:
            serviceAccountName: bookinfo-ratings
            containers:
            - name: ratings
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-ratings-v1:1.20.1
              imagePullPolicy: IfNotPresent
              ports:
              - containerPort: 9080
      ---
      ##################################################################################################
      # Reviews service
      ##################################################################################################
      apiVersion: v1
      kind: Service
      metadata:
        name: reviews
        labels:
          app: reviews
          service: reviews
      spec:
        ports:
        - port: 9080
          name: http
        selector:
          app: reviews
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: bookinfo-reviews
        labels:
          account: reviews
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: reviews-v1
        labels:
          app: reviews
          version: v1
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: reviews
            version: v1
        template:
          metadata:
            labels:
              app: reviews
              version: v1
          spec:
            serviceAccountName: bookinfo-reviews
            containers:
            - name: reviews
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-reviews-v1:1.20.1
              imagePullPolicy: IfNotPresent
              env:
              - name: LOG_DIR
                value: "/tmp/logs"
              ports:
              - containerPort: 9080
              volumeMounts:
              - name: tmp
                mountPath: /tmp
              - name: wlp-output
                mountPath: /opt/ibm/wlp/output
            volumes:
            - name: wlp-output
              emptyDir: {}
            - name: tmp
              emptyDir: {}
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: reviews-v2
        labels:
          app: reviews
          version: v2
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: reviews
            version: v2
        template:
          metadata:
            labels:
              app: reviews
              version: v2
          spec:
            serviceAccountName: bookinfo-reviews
            containers:
            - name: reviews
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-reviews-v2:1.20.1
              imagePullPolicy: IfNotPresent
              env:
              - name: LOG_DIR
                value: "/tmp/logs"
              ports:
              - containerPort: 9080
              volumeMounts:
              - name: tmp
                mountPath: /tmp
              - name: wlp-output
                mountPath: /opt/ibm/wlp/output
            volumes:
            - name: wlp-output
              emptyDir: {}
            - name: tmp
              emptyDir: {}
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: reviews-v3
        labels:
          app: reviews
          version: v3
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: reviews
            version: v3
        template:
          metadata:
            labels:
              app: reviews
              version: v3
          spec:
            serviceAccountName: bookinfo-reviews
            containers:
            - name: reviews
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-reviews-v3:1.20.1
              imagePullPolicy: IfNotPresent
              env:
              - name: LOG_DIR
                value: "/tmp/logs"
              ports:
              - containerPort: 9080
              volumeMounts:
              - name: tmp
                mountPath: /tmp
              - name: wlp-output
                mountPath: /opt/ibm/wlp/output
            volumes:
            - name: wlp-output
              emptyDir: {}
            - name: tmp
              emptyDir: {}
      ---
      ##################################################################################################
      # Productpage services
      ##################################################################################################
      apiVersion: v1
      kind: Service
      metadata:
        name: productpage
        labels:
          app: productpage
          service: productpage
      spec:
        ports:
        - port: 9080
          name: http
        selector:
          app: productpage
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: bookinfo-productpage
        labels:
          account: productpage
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: productpage-v1
        labels:
          app: productpage
          version: v1
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: productpage
            version: v1
        template:
          metadata:
            annotations:
              prometheus.io/scrape: "true"
              prometheus.io/port: "9080"
              prometheus.io/path: "/metrics"
            labels:
              app: productpage
              version: v1
          spec:
            serviceAccountName: bookinfo-productpage
            containers:
            - name: productpage
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-productpage-v1:1.20.1
              imagePullPolicy: IfNotPresent
              ports:
              - containerPort: 9080
              volumeMounts:
              - name: tmp
                mountPath: /tmp
            volumes:
            - name: tmp
              emptyDir: {}
      ---
    2. Déployez l'application Bookinfo dans le cluster du plan de données.

      kubectl --kubeconfig=${DATA_PLANE_KUBECONFIG} apply -f bookinfo.yaml
  2. Déployez l'application sleep.

    1. Créez un fichier nommé sleep.yaml avec le contenu suivant.

      Sleep.yaml

      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: sleep
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: sleep
        labels:
          app: sleep
          service: sleep
      spec:
        ports:
        - port: 80
          name: http
        selector:
          app: sleep
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: sleep
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: sleep
        template:
          metadata:
            labels:
              app: sleep
          spec:
            terminationGracePeriodSeconds: 0
            serviceAccountName: sleep
            containers:
            - name: sleep
              image: registry.cn-hangzhou.aliyuncs.com/acs/curl:8.1.2
              command: ["/bin/sleep", "infinity"]
              imagePullPolicy: IfNotPresent
              volumeMounts:
              - mountPath: /etc/sleep/tls
                name: secret-volume
            volumes:
            - name: secret-volume
              secret:
                secretName: sleep-secret
                optional: true
      ---
    2. Déployez l'application sleep.

      kubectl --kubeconfig=${DATA_PLANE_KUBECONFIG} apply -f sleep.yaml

Envoyer des requêtes de test

Exécutez la commande suivante pour envoyer des requêtes de test :

 kubectl exec -it deploy/sleep -- sh -c 'for i in $(seq 1 100); do curl -s productpage:9080/productpage > /dev/null; done'

Afficher les données exportées

Les étapes suivantes montrent le résultat de l'exportation des données vers Managed Service for OpenTelemetry.

  1. Connectez-vous à la console Managed Service for OpenTelemetry.

  2. Dans le volet de navigation de gauche, cliquez sur Application List. Vous pouvez voir les données exportées.

    La page Application List affiche les données de surveillance pour chaque service, y compris son Name (tel que sleep.default, details.default, productpage.default, reviews.default et ratings.default), Health, Today's Requests, Today's Errors, Response Time et la tendance Response Time (Last 30 Min).