All Products
Search
Document Center

Application Real-Time Monitoring Service:Monitor aplikasi multi-kontainer dalam satu Pod

Last Updated:Jun 22, 2026

Dalam skenario sidecar, satu Pod dapat menjalankan beberapa kontainer yang berisi aplikasi yang ditulis dalam berbagai bahasa pemrograman. Topik ini menjelaskan cara menggunakan komponen ack-onepilot untuk menginstrumentasi aplikasi poliglot tersebut.

Prasyarat

Versi ack-onepilot minimal 4.2.0.

Prosedur

  1. Instal ack-onepilot dan berikan izin akses ke resource yang diperlukan sebagaimana dijelaskan dalam salah satu topik berikut:

  2. Tambahkan label yang diperlukan ke workload.

    Contoh file YAML aplikasi

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: multicontainer          
      name: multicontainer
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: multicontainer
      strategy:
        rollingUpdate:
          maxSurge: 25%
          maxUnavailable: 25%
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: multicontainer
            apsara.apm/container.test-java.app-language: java
            apsara.apm/container.test-java.armsPilotAutoEnable: 'on'
            apsara.apm/container.test-java.armsPilotCreateAppName: multilanguage-java
            apsara.apm/container.test-go.app-language: golang
            apsara.apm/container.test-go.armsPilotAutoEnable: 'on'
            apsara.apm/container.test-go.armsPilotCreateAppName: multilanguage-go
            apsara.apm/container.test-python.app-language: python
            apsara.apm/container.test-python.armsPilotAutoEnable: 'on'
            apsara.apm/container.test-python.armsPilotCreateAppName: multilanguage-python
        spec:
          containers:
            - command:
                - sleep
                - '360000'
              image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest
                # Ganti dengan gambar aplikasi Java Anda yang sebenarnya.
              imagePullPolicy: Always
              name: test-java
              resources:
                requests:
                  cpu: 250m
                  memory: 512Mi
            - command:
                - sleep
                - '3600000'
              image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest
                # Ganti dengan gambar aplikasi Go Anda yang sebenarnya.
              imagePullPolicy: Always
              name: test-go
              resources:
                requests:
                  cpu: 500m
                  memory: 512Mi
            - command:
                - sleep
                - '3600000'
              image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest
                # Ganti dengan gambar aplikasi Python Anda yang sebenarnya.
              imagePullPolicy: Always
              name: test-python
              resources:
                requests:
                  cpu: 500m
                  memory: 512Mi

    File YAML di atas mendefinisikan aplikasi yang menggunakan Java, Go, dan Python dalam tiga kontainer terpisah: test-java, test-go, dan test-python.

    Untuk mengisolasi data pemantauan, instrumentasi setiap kontainer agar melaporkan data ke aplikasi ARMS yang terpisah. Ikuti langkah-langkah berikut:

    1. Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.

    2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

    3. Pada halaman Stateless, temukan aplikasi target Anda, lalu pilih image > Edit YAML di kolom Actions.

      Untuk membuat aplikasi baru, klik Create From YAML.

    4. Dalam file YAML, tambahkan labels berikut di bawah bagian spec.template.metadata, lalu klik Update.

      labels:
        # Ganti ${containerName} dengan nama kontainer yang sebenarnya.
        apsara.apm/container.${containerName}.app-language: java # Ganti dengan bahasa pemrograman aktual kontainer.
        apsara.apm/container.${containerName}.armsPilotAutoEnable: 'on'
        apsara.apm/container.${containerName}.armsPilotCreateAppName: "<your-deployment-name>"    # Ganti <your-deployment-name> dengan nama aplikasi Anda.
  3. Instrumentasi berhasil jika aplikasi Anda muncul di halaman Application Monitoring > Application List di ARMS console dan sedang melaporkan data.

    Di kotak pencarian, masukkan multilanguage- untuk memfilter ketiga aplikasi: multilanguage-go, multilanguage-java, dan multilanguage-python.