全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Konfigurasikan dan laporkan data tracing ASM

更新时间:Jul 06, 2025

Service Mesh (ASM) memungkinkan Anda melaporkan metrik ke Managed Service for OpenTelemetry dan sistem yang dikelola sendiri. Metrik ini dapat ditentukan di konsol Managed Service for OpenTelemetry. Topik ini menjelaskan cara mengumpulkan data tracing ASM ke Managed Service for OpenTelemetry dan sistem yang dikelola sendiri.

Prasyarat

Kumpulkan data tracing ASM ke Managed Service for OpenTelemetry

Ikuti langkah-langkah berikut sesuai dengan versi instance ASM Anda. Jika perlu memperbarui versi instance, lihat Perbarui Instance ASM.

Untuk instance ASM dengan versi lebih awal dari 1.17.2.35

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

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

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

  4. Di panel navigasi sisi kiri, pilih Observability Management Center > Tracing Analysis. Anda akan dialihkan ke konsol Managed Service for OpenTelemetry. Di konsol tersebut, Anda dapat menemukan data tracing ASM.链路追踪.png

    Untuk informasi lebih lanjut tentang Managed Service for OpenTelemetry, lihat Apa itu Managed Service for OpenTelemetry?

Catatan

Jika Anda tidak lagi membutuhkan fitur ini, hapus centang pada Enable Tracing Analysis di panel Settings Update dan klik OK.

Untuk instance ASM dengan versi 1.17.2.35 atau lebih baru dan lebih awal dari 1.18.0.124

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

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

  3. Di halaman Tracing Analysis, klik Collect ASM Tracing Data to Managed Service for OpenTelemetry. Di pesan Submit, klik OK.

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

    Untuk informasi lebih lanjut tentang Managed Service for OpenTelemetry, lihat Apa itu Managed Service for OpenTelemetry?链路追踪.png

Catatan

Jika Anda tidak lagi membutuhkan fitur ini, klik Disable Collection di halaman Tracing Analysis. Di pesan Submit, klik OK.

Untuk instance ASM dengan versi 1.18.0.124 atau lebih baru dan lebih awal dari 1.22.6.89

Dalam rentang versi ini, Anda tidak dapat mengekspor data tracing ASM ke Managed Service for OpenTelemetry di konsol. Anda dapat mengonfigurasi Collector di sistem menggunakan langkah-langkah berikut.

Langkah 1: Deploy Operator OpenTelemetry

  1. Gunakan kubectl untuk terhubung ke klaster ACK berdasarkan informasi dalam file kubeconfig. Kemudian, jalankan perintah berikut untuk membuat namespace opentelemetry-operator-system:

    kubectl create namespace opentelemetry-operator-system
  2. Jalankan perintah berikut untuk menggunakan Helm menginstal Operator OpenTelemetry di namespace opentelemetry-operator-system:

    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 Operator OpenTelemetry bekerja dengan benar:

    kubectl get pod -n opentelemetry-operator-system

    Output yang Diharapkan:

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

    Output menunjukkan bahwa STATUS adalah Running. Ini berarti Operator OpenTelemetry bekerja dengan benar.

Langkah 2: Buat OpenTelemetry Collector

  1. Buat file collector.yaml dengan konten berikut.

    Ganti ${ENDPOINT} di YAML dengan titik akhir akses jaringan VPC protokol gRPC, dan ${TOKEN} dengan token otentikasi. Untuk informasi tentang cara mendapatkan titik akhir dan token otentikasi untuk Alibaba Cloud Managed Service for OpenTelemetry, lihat Instruksi Akses dan Otentikasi.

    Perluas untuk Melihat 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 yang sesuai dengan klaster ACK, jalankan perintah berikut untuk menerapkan collector ke klaster.

    kubectl apply -f collector.yaml
  3. Jalankan perintah berikut untuk memeriksa apakah collector telah dimulai dengan benar.

    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 yang diharapkan menunjukkan bahwa collector telah dimulai dengan benar.

  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 yang diharapkan menunjukkan bahwa layanan berhasil dibuat.

Langkah 3: Aktifkan pelacakan link melalui konsol ASM

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

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

  3. Di halaman Observability Configuration, dalam bagian Link Tracking Settings, sesuaikan Sampling Percentage menjadi 100, lalu klik Submit.

  4. Di panel navigasi sisi kiri, pilih Observability Management Center > Link Tracking. Masukkan Opentelemetry Service Address/domain Name sebagai default-collector.opentelemetry-operator-system.svc.cluster.local, masukkan Opentelemetry Service Port sebagai 4317, lalu klik Collect Service Mesh Link Tracking Data To Opentelemetry.

Untuk instance ASM dengan versi 1.22.6.89 atau lebih baru

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

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

  3. Di halaman Tracing Analysis, pilih Export Method untuk Mengekspor ke Alibaba Cloud Observable link, pilih metode untuk mengirimkan data di bawah Fill in the configuration, seperti Zipkin, lalu klik Submission.

  4. Klik Go To Alibaba Cloud Observable link OpenTelemetry console untuk melihat data tracing ASM. Untuk informasi lebih lanjut, lihat Apa itu Managed Service for OpenTelemetry?.

    image

    Catatan

    Jika Anda tidak lagi membutuhkan fitur ini, klik Disable Collection di halaman Tracing Analysis. Di pesan Submit, klik OK.

Ekspor data tracing ASM ke sistem yang dikelola sendiri

Metode impor bervariasi dengan versi instance ASM. Ikuti langkah-langkah berikut sesuai dengan versi instance ASM Anda:

Untuk instance ASM dengan versi lebih awal dari 1.18.0.124

  • Untuk instance ASM dengan versi lebih awal dari 1.17.2.28: Masuk ke konsol ASM. Di halaman Basic Information, klik Settings, pilih Enable Tracing Analysis untuk mengonfigurasi item sesuai kebutuhan, lalu klik OK.

  • Untuk informasi lebih lanjut tentang cara mengaktifkan analisis tracing untuk instance ASM dengan versi 1.17.2.28 dan lebih baru serta lebih awal dari 1.18.0.124, lihat bagian Pengaturan Analisis Tracing di topik "Konfigurasikan Pengaturan Observabilitas".

Untuk instance ASM dengan versi 1.18.0.124 atau lebih baru dan lebih awal dari 1.22.6.89

Dalam rentang versi ini, Anda dapat melaporkan data tracing ASM ke Managed Service for OpenTelemetry di konsol. Masuk ke Konsol ASM. Di halaman Observability Management Center > Link Tracking, konfigurasikan parameter berikut.

Deskripsi konfigurasi

Item

Deskripsi

OpenTelemetry Domain Name (FQDN)

Nama domain sistem yang dikelola sendiri, yang harus berupa nama domain lengkap (FQDN). Contoh: otel.istio-system.svc.cluster.local.

OpenTelemetry Service Port

Port layanan sistem yang dikelola sendiri. Contoh: 8090.

Untuk instance ASM dengan versi 1.22.6.89 atau lebih baru

Masuk ke Konsol ASM. Di halaman Observability Management Center > Link Tracking, pilih dan konfigurasikan sistem yang dikelola sendiri.

Penting

Untuk mengimpor data tracing ASM ke sistem yang dikelola sendiri, pastikan sistem tersebut telah diterapkan di instance ASM. Jika belum, Anda perlu mendefinisikan sistem yang dikelola sendiri di registri layanan instance ASM dengan membuat ServiceEntry. Untuk informasi lebih lanjut, lihat ServiceEntry.

Deskripsi konfigurasi

Laporkan data ke Managed Service for OpenTelemetry

Item

Deskripsi

Service domain name (full FQDN)

Nama domain sistem yang dikelola sendiri, yang harus berupa FQDN. Contoh: otel.istio-system.svc.cluster.local.

Service Port

Port layanan sistem yang dikelola sendiri. Contoh: 8090.

Reporting via gRPC

Timeout

Opsional. Periode timeout permintaan untuk melaporkan data ke Managed Service for OpenTelemetry. Unit: detik. Contoh: 1. Dinonaktifkan secara default.

Request Header

Opsional. Header yang dibawa saat melaporkan data ke Managed Service for OpenTelemetry. Contoh: authentication: token-xxx. Kosong secara default.

Reporting via http

Request Path

Path permintaan untuk melaporkan data ke Managed Service for OpenTelemetry. Contoh: /api/v2/spans. Nilai default: /.

Timeout

Opsional. Periode timeout permintaan untuk melaporkan data ke Managed Service for OpenTelemetry. Unit: detik. Contoh: 1. Dinonaktifkan secara default.

Request Header

Opsional. Header yang dibawa saat melaporkan data ke Managed Service for OpenTelemetry. Contoh: authentication: token-xxx. Kosong secara default.

Laporkan data ke Zipkin

Item

Deskripsi

Service domain name (full FQDN)

Nama domain sistem yang dikelola sendiri, yang harus berupa FQDN. Contoh: zipkin.istio-system.svc.cluster.local.

Service Port

Port layanan sistem yang dikelola sendiri. Contoh: 8090.

Request Path

Path permintaan untuk melaporkan data ke Zipkin. Contoh: /api/v2/spans. Nilai default: /api/v2/spans.

Laporkan data ke Skywalking

Item

Deskripsi

Service domain name (full FQDN)

Nama domain sistem yang dikelola sendiri, yang harus berupa FQDN. Contoh: skywalking.istio-system.svc.cluster.local.

Service Port

Port layanan sistem yang dikelola sendiri. Contoh: 8090.

Verifikasi data tracing ASM yang dilaporkan

Deploy aplikasi

  1. Deploy aplikasi contoh.

    1. Buat file bernama bookinfo.yaml dan salin konten berikut ke dalam file tersebut.

      Perluas untuk Melihat Detail

      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. Deploy aplikasi Bookinfo ke klaster Kubernetes di bidang data:

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

    1. Buat file bernama sleep.yaml dan salin konten berikut ke dalam file tersebut.

      Perluas untuk Melihat Detail

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

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

Mulai pengujian

Jalankan perintah berikut untuk memulai pengujian.

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

Lihat data tracing ASM yang dilaporkan

Contoh berikut menunjukkan hasil pelaporan data tracing ASM ke Managed Service for OpenTelemetry.

  1. Masuk ke Konsol Managed Service for OpenTelemetry.

  2. Klik Application List di panel navigasi sisi kiri untuk melihat data seperti yang ditunjukkan pada gambar berikut.

    image