All Products
Search
Document Center

Container Service for Kubernetes:Pemantauan aplikasi Java

Last Updated:Sep 17, 2026

Application Real-Time Monitoring Service (ARMS) memantau aplikasi Java yang berjalan di kluster Container Service for Kubernetes (ACK) melalui add-on ack-onepilot. Instal dan otorisasi add-on tersebut untuk mendiagnosis masalah di lingkungan produksi secara signifikan lebih cepat.

Informasi latar belakang

Application Real-Time Monitoring Service (ARMS) adalah produk Alibaba Cloud untuk manajemen kinerja aplikasi (APM). Di Container Service for Kubernetes (ACK), instal dan otorisasi add-on ack-onepilot untuk memantau aplikasi Java dari ujung ke ujung tanpa mengubah kode apa pun.

Add-on ini secara otomatis menemukan topologi dan antarmuka aplikasi, serta menghasilkan peta topologi 3D. Add-on ini memantau antarmuka dan menangkap transaksi yang abnormal dan lambat. Gunakan data pemantauan ini untuk dengan cepat mengidentifikasi antarmuka bermasalah dan lambat, mereproduksi parameter panggilan, mendeteksi kebocoran memori, serta mengidentifikasi hambatan sistem. Untuk informasi selengkapnya tentang pemantauan aplikasi ARMS, lihat Apa itu pemantauan aplikasi?

Prasyarat

  • Sebuah namespace telah dibuat. Untuk informasi selengkapnya, lihat Kelola namespace dan kuota sumber daya. Topik ini menggunakan namespace arms-demo sebagai contoh.

  • Versi JDK didukung oleh Pemantauan Aplikasi. ARMS mendukung versi JDK berikut:

    • JDK 1.7.0+

      Penting

      Agen ARMS V3.0.X dan yang lebih baru tidak lagi mendukung Java 7. Jika Anda masih menggunakan Java 7, kami menyarankan agar Anda meningkatkan versi Java Anda. Untuk informasi selengkapnya, lihat Pemantauan Aplikasi tidak lagi mendukung Java 7.

    • JDK 1.8.0_25+

      Catatan
      • Jika Anda menerapkan aplikasi di kluster Kubernetes, kami menyarankan agar Anda menggunakan JDK V1.8.0_191 atau yang lebih baru.

      • Pastikan bahwa versi JDK bukan 1.8.0_25 atau 1.8.0_31. Jika tidak, agen ARMS mungkin gagal diinstal. Dalam kasus ini, kami menyarankan agar Anda meningkatkan JDK ke versi 1.8.X terbaru.

    • JDK 11.0.8+

    • JDK 17

  • ARMS telah diaktifkan.

Langkah 1: Instal add-on pemantauan aplikasi ARMS

Penting

Komponen lama arms-pilot tidak lagi dipelihara. ack-onepilot adalah penggantinya dan sepenuhnya kompatibel — migrasi tidak memerlukan perubahan pada konfigurasi aplikasi Anda. Untuk langkah-langkah migrasi, lihat Uninstal arms-pilot dan instal ack-onepilot.

Catatan

Secara default, add-on ack-onepilot mendukung hingga 1.000 Pod. Untuk setiap tambahan 1.000 Pod di kluster, tingkatkan sumber daya CPU untuk add-on sebesar 0,5 core dan memori sebesar 512 MB.

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

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Components and Add-ons .

  3. Di bagian Logs and Monitoring, temukan add-on ack-onepilot dan klik Install pada kartu add-on.

  4. Di kotak dialog, konfigurasikan parameter add-on. (Disarankan) Pertahankan nilai default. Klik OK untuk menyelesaikan instalasi.

Setelah instalasi selesai, Anda dapat melakukan peningkatan, mengonfigurasi, atau menguninstal add-on ack-onepilot di halaman Add-ons.

Langkah 2: Berikan izin untuk mengakses resource ARMS

Apakah Anda harus memberikan izin secara manual bergantung pada keberadaan Secret addon.arms.token di kluster. Jika Secret tersebut ada, tidak diperlukan otorisasi dan Anda dapat langsung melanjutkan ke Langkah 3. Jika Secret tersebut tidak ada, berikan izin kepada kluster untuk mengakses resource ARMS secara manual agar ARMS dapat memantau aplikasi di kluster tersebut.

Catatan

Saat sebuah kluster berisi Secret addon.arms.token, ARMS secara otomatis memberikan izin kepada kluster untuk mengakses resource ARMS tanpa kredensial. Sebagian besar kluster ACK yang dikelola menyertakan Secret ini secara default, tetapi kluster ACK yang dikelola yang dibuat sebelumnya mungkin tidak.

Periksa apakah Secret addon.arms.token ada

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

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Configurations > Secrets.

  3. Di halaman Secrets, pilih kube-system dari daftar drop-down Namespace, lalu periksa apakah Secret addon.arms.token terdaftar.

Berikan izin untuk mengakses resource ARMS secara manual

Lakukan langkah-langkah berikut hanya jika Secret addon.arms.token tidak ada di kluster.

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

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Cluster Information.

  3. Di tab Basic Information, temukan bagian Cluster Resources dan klik tautan di sebelah kanan Worker RAM Role.

  4. Di halaman Role, klik tab Permissions, lalu klik Add Permissions.

  5. Tetapkan izin menjadi AliyunARMSFullAccess, lalu klik OK.

Berikan izin untuk kluster yang terintegrasi dengan Elastic Container Instance (ECI)

Untuk memantau aplikasi di kluster ACK yang dikelola yang terintegrasi dengan ECI, berikan izin di halaman Otorisasi Cepat RAM, lalu restart semua Pod add-on ack-onepilot.

Langkah 3: Aktifkan pemantauan aplikasi ARMS untuk aplikasi Java

Aktifkan pemantauan aplikasi ARMS saat Anda membuat aplikasi Java. Langkah-langkah berikut membuat Deployment dari templat YAML di Konsol ACK.

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

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

  3. Di halaman Deployments, klik Create from YAML.

  4. Pilih Sampel Template, lalu tambahkan labels berikut ke bagian spec.template.metadata di bidang Template (format YAML):

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    # Ganti <your-deployment-name> dengan nama aplikasi yang sebenarnya.
      # armsSecAutoEnable: "on"    # Jika Anda ingin menghubungkan aplikasi ke Application Security, Anda harus mengonfigurasi parameter ini.

Label armsPilotAutoEnable: "on" dan armsPilotCreateAppName: "arms-k8s-demo" dalam templat Pod Deployment mengaktifkan pemantauan aplikasi ARMS. Cuplikan YAML berikut menunjukkan lokasi penambahan label dalam templat Pod:

apiVersion: v1
kind: Namespace
metadata:
  name: arms-demo
---
apiVersion: apps/v1 # untuk versi sebelum 1.8.0 gunakan apps/v1beta1
kind: Deployment
metadata:
  name: arms-springboot-demo
  namespace: arms-demo
  labels:
    app: arms-springboot-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo
  template:
    metadata:
      labels:
        app: arms-springboot-demo
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo"
    spec:
      containers:
        - resources:
            limits:
              # ...

File YAML contoh lengkap berikut membuat Deployment dan mengaktifkan pemantauan aplikasi ARMS:

apiVersion: v1
kind: Namespace
metadata:
  name: arms-demo
---
apiVersion: apps/v1 # untuk versi sebelum 1.8.0 gunakan apps/v1beta1
kind: Deployment
metadata:
  name: arms-springboot-demo
  namespace: arms-demo
  labels:
    app: arms-springboot-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo
  template:
    metadata:
      labels:
        app: arms-springboot-demo
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo"
        one-agent.jdk.version: "OpenJDK11"
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
          imagePullPolicy: Always
          name: arms-springboot-demo
          env:
            - name: SELF_INVOKE_SWITCH
              value: "true"
            - name: COMPONENT_HOST
              value: "arms-demo-component"
            - name: COMPONENT_PORT
              value: "6666"
            - name: MYSQL_SERVICE_HOST
              value: "arms-demo-mysql"
            - name: MYSQL_SERVICE_PORT
              value: "3306"
---
apiVersion: apps/v1 # untuk versi sebelum 1.8.0 gunakan apps/v1beta1
kind: Deployment
metadata:
  name: arms-springboot-demo-subcomponent
  namespace: arms-demo
  labels:
    app: arms-springboot-demo-subcomponent
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo-subcomponent
  template:
    metadata:
      labels:
        app: arms-springboot-demo-subcomponent
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo-subcomponent"
        one-agent.jdk.version: "OpenJDK11"
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
          imagePullPolicy: Always
          name: arms-springboot-demo-subcomponent
          env:
            - name: SELF_INVOKE_SWITCH
              value: "false"
            - name: MYSQL_SERVICE_HOST
              value: "arms-demo-mysql"
            - name: MYSQL_SERVICE_PORT
              value: "3306"
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: arms-demo-component
  name: arms-demo-component
  namespace: arms-demo
spec:
  ports:
    # port yang harus dilayani oleh service ini
    - name: arms-demo-component-svc
      port: 6666
      targetPort: 8888
  # kunci dan nilai label yang harus cocok agar menerima traffic untuk service ini
  selector:
    app: arms-springboot-demo-subcomponent
---
apiVersion: apps/v1 # untuk versi sebelum 1.8.0 gunakan apps/v1beta1
kind: Deployment
metadata:
  name: arms-demo-mysql
  namespace: arms-demo
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1
          name: mysql
          ports:
            - containerPort: 3306
              name: mysql
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: mysql
  name: arms-demo-mysql
  namespace: arms-demo
spec:
  ports:
    # port yang harus dilayani oleh service ini
    - name: arms-mysql-svc
      port: 3306
      targetPort: 3306
  # kunci dan nilai label yang harus cocok agar menerima traffic untuk service ini
  selector:
    app: mysql
---
Catatan

Setelah menyelesaikan langkah-langkah di atas, pemantauan aplikasi ARMS diaktifkan untuk aplikasi yang diterapkan di kluster ACK.

Langkah selanjutnya

Untuk melihat detail pemantauan aplikasi, buka halaman Deployments dan temukan aplikasi tersebut. Di kolom Actions, klik ikon image dan pilih ARMS Console. Untuk informasi selengkapnya, lihat ikhtisar aplikasi.

FAQ

Topik berikut menjawab pertanyaan umum tentang pemantauan aplikasi: