Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Configure tracing data export from ASM

Última atualização: Sep 21, 2026

O Alibaba Cloud Service Mesh (ASM) permite exportar dados de rastreamento para o Managed Service for OpenTelemetry ou para um sistema autogerenciado. Neste tópico, configure essa exportação no console do ASM.

Pré-requisitos

Exportar dados de rastreamento para o Managed Service for OpenTelemetry

Selecione a aba correspondente à versão da sua instância do ASM. Se necessário, atualize sua instância; consulte Upgrade an ASM instance.

Versões anteriores a 1.17.2.35

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Instance Information > Base Information.

  3. Na página Base Information, clique em Settings. No painel Settings Update, selecione Enable Tracing Analysis, defina a Sampling Percentage, defina o Sampling Method como Managed Service for OpenTelemetry e clique em OK.

  4. No painel de navegação à esquerda, escolha Observability Management Center > Tracing Analysis. O sistema redireciona você para o console do Managed Service for OpenTelemetry. Após concluir a configuração, faça login no console do Managed Service for OpenTelemetry e visualize métricas de monitoramento, como a quantidade de requisições, tempo de resposta e quantidade de spans das suas aplicações na página Overview Analysis.

    Para mais informações sobre rastreamento, consulte What is Managed Service for OpenTelemetry?

Nota

Para desativar esse recurso, desmarque Enable Tracing Analysis no painel Settings Update e clique em OK.

Versões de 1.17.2.35 até anteriores a 1.18.0.124

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Observability Management Center > Tracing Analysis.

  3. Na página Tracing Analysis, clique em Collect ASM Tracing Data to Managed Service for OpenTelemetry e, na caixa de diálogo Confirm, clique em OK.

  4. Clique em Open the Managed Service for OpenTelemetry Console e visualize os dados de rastreamento.

    Para mais informações sobre rastreamento, consulte What is Managed Service for OpenTelemetry? Após concluir a configuração, faça login no console do Managed Service for OpenTelemetry e visualize métricas de monitoramento, como a quantidade de requisições, tempo de resposta e quantidade de spans das suas aplicações na página Overview Analysis.

Nota

Caso não precise mais desse recurso, na página Tracing Analysis, clique em Disable Collection e, na caixa de diálogo Confirm, clique em OK.

Versões de 1.18.0.124 até anteriores a 1.22.6.89

Nessas versões da instância, não é possível configurar a exportação para o Managed Service for OpenTelemetry diretamente no console. Em vez disso, implante e configure manualmente um OpenTelemetry Collector.

Etapa 1: Implantar o OpenTelemetry Operator

  1. No ambiente kubeconfig do seu cluster ACK, execute o seguinte comando e crie o namespace opentelemetry-operator-system:

    kubectl create namespace opentelemetry-operator-system
  2. Execute o seguinte comando e instale o OpenTelemetry Operator no namespace opentelemetry-operator-system usando o 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. Execute o seguinte comando e verifique se o OpenTelemetry Operator está executando corretamente:

    kubectl get pod -n opentelemetry-operator-system

    Saída esperada:

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

    O STATUS Running indica que o OpenTelemetry Operator está em execução.

Etapa 2: Criar o OpenTelemetry Collector

  1. Para começar, crie um arquivo chamado collector.yaml com o seguinte conteúdo.

    No arquivo YAML, substitua ${ENDPOINT} pelo endpoint vpc grpc e ${TOKEN} pelo token de autenticação. Para obter o endpoint e o token de autenticação do Managed Service for OpenTelemetry, consulte Access and authentication.

    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. No ambiente kubeconfig do seu cluster ACK, execute o seguinte comando para implantar o collector no cluster:

    kubectl apply -f collector.yaml
  3. Execute o seguinte comando para verificar se o collector iniciou corretamente:

    kubectl get pod -n opentelemetry-operator-system

    Saída esperada:

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

    Essa saída indica que o collector iniciou com sucesso.

  4. Execute o seguinte comando para verificar a criação do serviço:

    kubectl get svc -n opentelemetry-operator-system

    Saída esperada:

    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

    Essa saída confirma a criação do serviço. Por favor, confirme a criação do serviço.

Etapa 3: Ativar o rastreamento no console do ASM

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Observability Management Center > Observability Settings.

  3. Na página Observability Settings, na seção Tracing Analysis Settings, defina a Sampling Percentage como 100 e clique em Submit.

  4. No painel de navegação à esquerda, escolha Observability Management Center > Tracing Analysis. Defina OpenTelemetry Service Address/Domain como default-collector.opentelemetry-operator-system.svc.cluster.local e a OpenTelemetry Service Port como 4317. Em seguida, clique em Collect ASM Tracing Data to Custom Managed Service for OpenTelemetry.

Versões 1.22.6.89 e posteriores

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique no nome da instância do ASM. No painel de navegação à esquerda, escolha Observability Management Center > Tracing Analysis.

  3. Na página Tracing Analysis, na seção Export to Alibaba Cloud Observable Link, selecione um Export Method, como Zipkin. Na seção Fill in the configuration, insira as informações necessárias e clique em Submit.

  4. Clique em Acesse o console do Managed Service for OpenTelemetry e visualize os dados de rastreamento. Para mais informações sobre rastreamento, consulte What is Managed Service for OpenTelemetry?

    Nota

    Caso não precise mais desse recurso, na página Tracing Analysis, clique em Export e, na caixa de diálogo Confirm, clique em OK.

Exportar dados de rastreamento para um sistema autogerenciado

O método de exportação para um sistema autogerenciado depende da versão da sua instância do ASM. Selecione a aba correspondente à versão da sua instância.

Versões anteriores a 1.18.0.124

  • Para instâncias do ASM anteriores a 1.17.2.28: faça login no console do ASM. Na página Base Information da instância de destino, clique em Settings, selecione Enable Tracing Analysis, configure os parâmetros conforme necessário e clique em OK.

  • Para instâncias do ASM da versão 1.17.2.28 ou posterior, mas anterior a 1.18.0.124: para obter informações sobre como ativar o rastreamento, consulte Tracing settings.

Versões de 1.18.0.124 até anteriores a 1.22.6.89

Para esse intervalo de versões, configure a exportação para um sistema autogerenciado na página Observability Management Center > Tracing Analysis da instância de destino no console do ASM.

Parâmetros

Parâmetro

Descrição

OpenTelemetry Domain Name (FQDN)

O nome de domínio totalmente qualificado (FQDN) do serviço do seu sistema autogerenciado. Exemplo: otel.istio-system.svc.cluster.local.

OpenTelemetry Service Port

A porta de serviço do sistema autogerenciado. Exemplo: 8090.

Versões 1.22.6.89 e posteriores

Na página Observability Management Center > Tracing Analysis da sua instância no console do ASM, selecione e configure seu sistema de rastreamento autogerenciado.

Importante

Ao exportar dados de rastreamento para um sistema autogerenciado, certifique-se de que ele seja um serviço dentro do mesh. Se o sistema estiver fora do service mesh, registre-o no mesh criando um ServiceEntry. Para mais informações, consulte ServiceEntry.

Parâmetros

Exportar para OpenTelemetry

Parâmetro

Descrição

Service domain name (full FQDN)

O FQDN do serviço do sistema autogerenciado. Exemplo: otel.istio-system.svc.cluster.local.

Service Port

A porta de serviço do sistema autogerenciado. Exemplo: 8090.

Exportar via grpc

Timeout

Opcional. O tempo limite da requisição em segundos para exportar dados de rastreamento. Exemplo: 1. Esse recurso está desativado por padrão.

Request Header

Opcional. Cabeçalhos de requisição a serem incluídos ao exportar dados de rastreamento. Exemplo: authentication: token-xxx. Esse campo está vazio por padrão.

Exportar via HTTP

Request path

O caminho da requisição para exportar dados de rastreamento. Exemplo: /api/v2/spans. O valor padrão é /.

Timeout

Opcional. O tempo limite da requisição em segundos para exportar dados de rastreamento. Exemplo: 1. Esse recurso está desativado por padrão.

Request Header

Opcional. Cabeçalhos de requisição a serem incluídos ao exportar dados de rastreamento. Exemplo: authentication: token-xxx. Esse campo está vazio por padrão.

Exportar para Zipkin

Parâmetro

Descrição

Domain name of Zipkin

O FQDN do serviço do sistema autogerenciado. Exemplo: zipkin.istio-system.svc.cluster.local.

Request Port

A porta de serviço do sistema autogerenciado. Exemplo: 8090.

Request Path

O caminho da requisição para exportar dados de rastreamento. O valor padrão é /api/v2/spans.

Exportar para SkyWalking

Parâmetro

Descrição

Skywalking service domain name

O FQDN do serviço do sistema autogerenciado. Exemplo: skywalking.istio-system.svc.cluster.local.

Request Port

A porta de serviço do sistema autogerenciado. Exemplo: 8090.

Agora, verifique a exportação de dados

Implantar aplicações

  1. Implante a aplicação de exemplo Bookinfo.

    1. Crie o arquivo bookinfo.yaml com o seguinte conteúdo.

      Expandir para visualizar o conteúdo 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. Implante a aplicação Bookinfo no cluster do plano de dados.

      kubectl --kubeconfig=${DATA_PLANE_KUBECONFIG} apply -f bookinfo.yaml
  2. Implante a aplicação sleep.

    1. Crie um arquivo chamado sleep.yaml com o seguinte conteúdo.

      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. Implante a aplicação sleep.

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

Enviar requisições de teste

Execute o seguinte comando para enviar requisições de teste:

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

Visualizar os dados exportados

As etapas a seguir mostram o resultado da exportação de dados para o Managed Service for OpenTelemetry.

  1. Faça login no console do Managed Service for OpenTelemetry.

  2. No painel de navegação à esquerda, clique em Application List. Você verá os dados exportados.

    A página Application List exibe dados de monitoramento para cada serviço, incluindo seu Name (como sleep.default, details.default, productpage.default, reviews.default e ratings.default), Health, Today's Requests, Today's Errors, Response Time e a tendência de Response Time (Last 30 Min).