Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Configurer l'exportation des données de traçage depuis ASM

Dernière mise à jour :Sep 21, 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 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, sélectionnez 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, sélectionnez Instance Information > Base Information.

  3. Sur la page Base Information, cliquez sur Settings. Dans le panneau Settings Update, cochez 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, sélectionnez Observability Management Center > Tracing Analysis. Vous êtes redirigé vers la console Managed Service for OpenTelemetry. Une fois la configuration terminée, connectez-vous à la console Managed Service for OpenTelemetry et consultez 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 Qu'est-ce que Managed Service for OpenTelemetry ?

Remarque

Pour désactiver cette fonctionnalité, décochez 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, sélectionnez 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, sélectionnez 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 Qu'est-ce que Managed Service for OpenTelemetry ? Une fois la configuration terminée, connectez-vous à la console Managed Service for OpenTelemetry et consultez 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 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

    Résultat attendu :

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

    Un 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 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

    Résultat attendu :

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

    Ce résultat 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

    Résultat attendu :

    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

    Le résultat 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, sélectionnez 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, sélectionnez 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, sélectionnez 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, sélectionnez 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, sélectionnez 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 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 vers 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, cochez 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 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 Observability Management Center > Tracing Analysis 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 dans le maillage en créant un ServiceEntry. Pour plus d'informations, consultez ServiceEntry.

Paramètres

Exporter vers OpenTelemetry

Paramètre

Description

Service domain name (full FQDN)

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

Service Port

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

Export via gRPC

Timeout

Facultatif. Le délai d'expiration 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 Header

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.

Export via HTTP

Request path

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

Timeout

Facultatif. Le délai d'expiration 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 Header

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 voir 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).