All Products
Search
Document Center

Alibaba Cloud Service Mesh:Konfigurasikan ekspor data tracing dari ASM

Last Updated:Jun 21, 2026

Service Mesh (ASM) Alibaba Cloud memungkinkan Anda mengekspor data tracing ke Managed Service for OpenTelemetry atau sistem yang dikelola sendiri. Topik ini menjelaskan cara mengonfigurasi ekspor tersebut di konsol ASM.

Prasyarat

Ekspor data tracing ke Managed Service for OpenTelemetry

Pilih tab yang sesuai dengan versi instans ASM Anda. Untuk meningkatkan instans Anda, lihat Tingkatkan instans ASM.

Versi sebelum 1.17.2.35

  1. Login ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih ASM Instance > Base Information.

  3. Pada halaman Base Information, klik Settings. Di panel Settings Update, pilih Enable Tracing Analysis, atur Sampling Percentage, atur Sampling Method menjadi Managed Service for OpenTelemetry, lalu klik OK.

  4. Di panel navigasi kiri, pilih Observability Management Center > Tracing Analysis. Anda akan diarahkan ke konsol Managed Service for OpenTelemetry. Setelah konfigurasi selesai, Anda dapat login ke konsol Managed Service for OpenTelemetry dan melihat metrik pemantauan seperti jumlah permintaan, waktu respons, dan jumlah rentang untuk aplikasi Anda di halaman Overview Analysis.

    Untuk informasi selengkapnya tentang tracing, lihat Apa itu Managed Service for OpenTelemetry?

Catatan

Untuk menonaktifkan fitur ini, hapus centang Enable Tracing Analysis di panel Settings Update, lalu klik OK.

Versi 1.17.2.35 hingga sebelum 1.18.0.124

  1. Login ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Observability Management Center > Tracing Analysis.

  3. Pada halaman Tracing Analysis, klik Collect ASM Tracing Data to Managed Service for OpenTelemetry, lalu di kotak dialog Confirm, klik OK.

  4. Klik Open the Managed Service for OpenTelemetry Console untuk melihat data tracing.

    Untuk informasi selengkapnya tentang tracing, lihat Apa itu Managed Service for OpenTelemetry? Setelah konfigurasi selesai, Anda dapat login ke konsol Managed Service for OpenTelemetry dan melihat metrik pemantauan seperti jumlah permintaan, waktu respons, dan jumlah rentang untuk aplikasi Anda di halaman Overview Analysis.

Catatan

Jika Anda tidak lagi memerlukan fitur ini, pada halaman Tracing Analysis, klik Disable Collection, lalu di kotak dialog Confirm, klik OK.

Versi 1.18.0.124 hingga sebelum 1.22.6.89

Untuk versi instans ini, Anda tidak dapat mengonfigurasi ekspor ke Managed Service for OpenTelemetry langsung di konsol. Sebagai gantinya, Anda harus menerapkan dan mengonfigurasi OpenTelemetry Collector secara manual.

Langkah 1: Terapkan OpenTelemetry Operator

  1. Di lingkungan kubeconfig untuk kluster ACK Anda, jalankan perintah berikut untuk membuat namespace opentelemetry-operator-system:

    kubectl create namespace opentelemetry-operator-system
  2. Jalankan perintah berikut untuk menginstal OpenTelemetry Operator di namespace opentelemetry-operator-system menggunakan 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. Jalankan perintah berikut untuk memeriksa apakah OpenTelemetry Operator berjalan dengan baik:

    kubectl get pod -n opentelemetry-operator-system

    Output yang diharapkan:

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

    STATUS bernilai Running menunjukkan bahwa OpenTelemetry Operator sedang berjalan.

Langkah 2: Buat OpenTelemetry Collector

  1. Buat file bernama collector.yaml dengan konten berikut.

    Dalam file YAML, ganti ${ENDPOINT} dengan titik akses gRPC VPC dan ${TOKEN} dengan token otentikasi. Untuk mendapatkan titik akses dan token otentikasi Managed Service for OpenTelemetry, lihat Akses dan otentikasi.

    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. Di lingkungan kubeconfig untuk kluster ACK Anda, jalankan perintah berikut untuk menerapkan collector ke kluster:

    kubectl apply -f collector.yaml
  3. Jalankan perintah berikut untuk memeriksa apakah collector berhasil dimulai:

    kubectl get pod -n opentelemetry-operator-system

    Output yang diharapkan:

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

    Output ini menunjukkan bahwa collector berhasil dimulai.

  4. Jalankan perintah berikut untuk memeriksa apakah layanan telah dibuat:

    kubectl get svc -n opentelemetry-operator-system

    Output yang diharapkan:

    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

    Output ini menunjukkan bahwa layanan berhasil dibuat.

Langkah 3: Aktifkan tracing di konsol ASM

  1. Login ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Observability Management Center > Observability Settings.

  3. Pada halaman Observability Settings, di bagian Tracing Analysis Settings, atur Sampling Percentage menjadi 100 dan klik Submit.

  4. Di panel navigasi kiri, pilih Observability Management Center > Tracing Analysis. Atur OpenTelemetry Service Address/Domain menjadi default-collector.opentelemetry-operator-system.svc.cluster.local dan OpenTelemetry Service Port menjadi 4317. Lalu, klik Collect ASM Tracing Data to Custom Managed Service for OpenTelemetry.

Versi 1.22.6.89 dan seterusnya

  1. Login ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Observability Management Center > Tracing Analysis.

  3. Pada halaman Tracing Analysis, di bagian Export to Alibaba Cloud Observable Link, pilih Export Method, seperti Zipkin. Di bagian Fill in the configuration, masukkan informasi yang diperlukan dan klik Submit.

  4. Klik Go to Managed Service for OpenTelemetry console untuk melihat data tracing. Untuk informasi selengkapnya tentang tracing, lihat Apa itu Managed Service for OpenTelemetry?

    Catatan

    Jika Anda tidak lagi memerlukan fitur ini, pada halaman Tracing Analysis, klik Export, lalu di kotak dialog Confirm, klik OK.

Ekspor data tracing ke sistem yang dikelola sendiri

Metode ekspor untuk sistem yang dikelola sendiri bergantung pada versi instans ASM Anda. Pilih tab yang sesuai dengan versi instans Anda.

Versi sebelum 1.18.0.124

  • Untuk instans ASM sebelum 1.17.2.28: Login ke konsol ASM. Pada halaman Base Information instans target, klik Settings, pilih Enable Tracing Analysis, konfigurasi parameter sesuai kebutuhan, lalu klik OK.

  • Untuk instans ASM versi 1.17.2.28 atau lebih baru tetapi sebelum 1.18.0.124: Untuk informasi tentang cara mengaktifkan tracing, lihat Pengaturan tracing.

Versi 1.18.0.124 hingga sebelum 1.22.6.89

Untuk rentang versi ini, konfigurasikan ekspor ke sistem yang dikelola sendiri di halaman Observability Management Center > Tracing Analysis instans target di Konsol ASM.

Parameter

Parameter

Deskripsi

OpenTelemetry Domain Name (FQDN)

Nama domain lengkap (FQDN) layanan sistem yang dikelola sendiri Anda. Contoh: otel.istio-system.svc.cluster.local.

OpenTelemetry Service Port

Port layanan sistem yang dikelola sendiri. Contoh: 8090.

Versi 1.22.6.89 dan seterusnya

Di halaman Observability Management Center > Tracing Analysis instans Anda di Konsol ASM, pilih dan konfigurasikan sistem tracing yang dikelola sendiri Anda.

Penting

Saat mengekspor data tracing ke sistem yang dikelola sendiri, pastikan sistem tersebut merupakan layanan di dalam mesh. Jika sistem berada di luar service mesh, Anda dapat mendaftarkannya ke mesh dengan membuat ServiceEntry. Untuk informasi selengkapnya, lihat ServiceEntry.

Parameter

Ekspor ke OpenTelemetry

Parameter

Deskripsi

Service domain name (full FQDN)

FQDN layanan sistem yang dikelola sendiri. Contoh: otel.istio-system.svc.cluster.local.

Service Port

Port layanan sistem yang dikelola sendiri. Contoh: 8090.

Ekspor melalui gRPC

Timeout

Opsional. Timeout permintaan dalam detik untuk mengekspor data tracing. Contoh: 1. Fitur ini dinonaktifkan secara default.

Request Header

Opsional. Header permintaan yang disertakan saat mengekspor data tracing. Contoh: authentication: token-xxx. Bidang ini kosong secara default.

Ekspor melalui HTTP

Request path

Jalur permintaan untuk mengekspor data tracing. Contoh: /api/v2/spans. Nilai default adalah /.

Timeout

Opsional. Timeout permintaan dalam detik untuk mengekspor data tracing. Contoh: 1. Fitur ini dinonaktifkan secara default.

Request Header

Opsional. Header permintaan yang disertakan saat mengekspor data tracing. Contoh: authentication: token-xxx. Bidang ini kosong secara default.

Ekspor ke Zipkin

Parameter

Deskripsi

Domain name of Zipkin

FQDN layanan sistem yang dikelola sendiri. Contoh: zipkin.istio-system.svc.cluster.local.

Request Port

Port layanan sistem yang dikelola sendiri. Contoh: 8090.

Request Path

Jalur permintaan untuk mengekspor data tracing. Nilai default adalah /api/v2/spans.

Ekspor ke SkyWalking

Parameter

Deskripsi

Skywalking service domain name

FQDN layanan sistem yang dikelola sendiri. Contoh: skywalking.istio-system.svc.cluster.local.

Request Port

Port layanan sistem yang dikelola sendiri. Contoh: 8090.

Verifikasi ekspor data

Terapkan aplikasi

  1. Terapkan aplikasi Bookinfo contoh.

    1. Buat file bookinfo.yaml dengan konten berikut.

      Perluas untuk melihat konten 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. Terapkan aplikasi Bookinfo ke kluster bidang data.

      kubectl --kubeconfig=${DATA_PLANE_KUBECONFIG} apply -f bookinfo.yaml
  2. Terapkan aplikasi sleep.

    1. Buat file bernama sleep.yaml dengan konten berikut.

      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. Terapkan aplikasi sleep.

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

Kirim permintaan uji

Jalankan perintah berikut untuk mengirim permintaan uji:

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

Lihat data yang diekspor

Langkah-langkah berikut menunjukkan hasil ekspor data ke Managed Service for OpenTelemetry.

  1. Login ke Konsol Managed Service for OpenTelemetry.

  2. Di panel navigasi kiri, klik Application List. Anda dapat melihat data yang diekspor.

    Halaman Application List menampilkan data pemantauan untuk setiap layanan, termasuk Nama (seperti sleep.default, details.default, productpage.default, reviews.default, dan ratings.default), Kesehatan, Permintaan Hari Ini, Kesalahan Hari Ini, Waktu Respons, dan tren Waktu Respons (30 Menit Terakhir).