All Products
Search
Document Center

Container Service for Kubernetes:Pemantauan aplikasi Python

Last Updated:Mar 27, 2026

Gunakan Application Real-Time Monitoring Service (ARMS) untuk memantau aplikasi Python yang diterapkan di kluster Alibaba Cloud Container Service for Kubernetes (ACK). Framework yang didukung mencakup Django, Flask, FastAPI, LlamaIndex, dan Langchain. ARMS menyediakan topologi aplikasi, analisis tracing, analisis panggilan API, deteksi anomali, serta tracing terperinci dari interaksi model bahasa besar (LLM).

Pilih jalur instalasi

ARMS mendukung dua cara untuk menginstrumentasi aplikasi Python Anda. Pilih salah satu berdasarkan versi ack-onepilot Anda:

Jalur Kapan digunakan Langkah yang diperlukan
Manual agent installation (halaman ini) versi ack-onepilot di bawah 5.0.0, atau Anda menginginkan kontrol penuh atas instalasi agen Langkah 1–5
Auto-instrumentation versi ack-onepilot lebih baru dari 5.0.0 dan Anda lebih memilih pengaturan tanpa perubahan Dockerfile Lewati Langkah 3. Di Langkah 4, tambahkan ketiga label berikut plus armsAutoInstrumentationEnable: "on". ack-onepilot secara otomatis mengunduh dan menyuntikkan agen Python.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Namespace di kluster ACK Anda. Panduan ini menggunakan namespace bernama arms-demo. Lihat Kelola namespace dan kuota sumber daya.

  • Python 3.8 atau versi yang lebih baru. ARMS tidak kompatibel dengan versi Python sebelumnya.

  • ARMS diaktifkan. Lihat Aktifkan ARMS.

Langkah 1: Instal add-on ack-onepilot

ack-onepilot menggantikan komponen arms-pilot yang sudah tidak digunakan lagi dan sepenuhnya kompatibel dengannya—tidak diperlukan perubahan konfigurasi aplikasi.

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

  2. Di halaman Clusters, klik nama kluster target. Di panel navigasi kiri, klik Add-ons.

  3. Di bagian Logs and Monitoring, temukan ack-onepilot dan klik Install. Di kotak dialog yang muncul, gunakan nilai default lalu klik OK.

Gunakan ack-onepilot versi 3.2.4 atau yang lebih baru. Secara default, ack-onepilot mendukung hingga 1.000 Pod. Untuk setiap tambahan 1.000 Pod, tingkatkan CPU ack-onepilot sebesar 0,5 core dan memori sebesar 512 MB.

Setelah instalasi, Anda dapat melakukan upgrade, mengonfigurasi, atau menguninstall ack-onepilot dari halaman Add-ons.

Untuk migrasi dari arms-pilot, lihat Bagaimana cara menguninstall arms-pilot dan menginstal ack-onepilot?

Langkah 2: Berikan otorisasi kepada ARMS untuk mengakses sumber daya

ARMS menggunakan addon.arms.token untuk otorisasi tanpa password. Sebagian besar kluster ACK yang dikelola sudah menyertakan rahasia ini secara default. Beberapa kluster lama mungkin belum memilikinya.

Periksa apakah kluster Anda memiliki token tersebut:

Periksa keberadaan rahasia addon.arms.token di kluster

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

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

  3. Pilih kube-system dari daftar drop-down Namespace dan periksa apakah addon.arms.token tersedia.

Jika token tidak tersedia, berikan izin secara manual:

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

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

  3. Di tab Basic Information, di bawah Cluster Resources, klik tautan di samping Worker RAM Role.

  4. Di tab Permissions, klik Grant Permission.

  5. Pilih kebijakan AliyunARMSFullAccess lalu klik Grant permissions.

Jika kluster Anda terhubung ke Elastic Container Instance (ECI), buka halaman RAM Quick Authorization dan selesaikan proses otorisasi. Kemudian restart Pod yang dibuat untuk ack-onepilot.

Langkah 3: Integrasikan agen Python ke dalam Dockerfile

Ubah Dockerfile Anda untuk menginstal dan menjalankan agen Python. Perubahan ini melibatkan tiga baris:

  • Instal aliyun-bootstrap dari PyPI — alat penginstal untuk agen Python ARMS.

  • Jalankan penginstal agen — mengunduh dan mengonfigurasi agen menggunakan ID wilayah Alibaba Cloud Anda.

  • Ubah perintah startup — bungkus aplikasi Anda dengan aliyun-instrument untuk mengaktifkan pemantauan.

Dockerfile sebelum modifikasi

# Gunakan image dasar Python 3.10.
FROM docker.m.daocloud.io/python:3.10

# Tetapkan direktori kerja.
WORKDIR /app

# Salin file requirements.txt ke direktori kerja.
COPY requirements.txt .

# Gunakan pip untuk menginstal dependensi.
RUN pip install --no-cache-dir -r requirements.txt

COPY ./app.py /app/app.py
# Buka port 8000 kontainer.
EXPOSE 8000
CMD ["python","app.py"]

Dockerfile yang telah dimodifikasi

# Gunakan image dasar resmi Python 3.10.
FROM docker.m.daocloud.io/python:3.10

# Tetapkan direktori kerja.
WORKDIR /app

# Salin file requirements.txt ke direktori kerja.
COPY requirements.txt .

# Gunakan pip untuk menginstal dependensi.
RUN pip install --no-cache-dir -r requirements.txt

# Instal agen Python ARMS.
# Ganti xxx dengan ID wilayah Alibaba Cloud Anda (misalnya, cn-hangzhou).
RUN pip3 install aliyun-bootstrap && ARMS_REGION_ID=xxx aliyun-bootstrap -a install

COPY ./app.py /app/app.py

# Buka port 8000 kontainer.
EXPOSE 8000
# Jalankan aplikasi dengan agen Python ARMS diaktifkan.
CMD ["aliyun-instrument","python","app.py"]
Untuk menginstal versi agen tertentu, jalankan aliyun-bootstrap -a install -v <version> alih-alih aliyun-bootstrap -a install. Untuk daftar versi yang tersedia, lihat Catatan rilis agen Python.

Setelah mengedit Dockerfile, build image Anda dan dorong ke registri Anda.

Langkah 4: Aktifkan pemantauan aplikasi ARMS

Tambahkan label ke templat Pod Deployment Anda untuk mengaktifkan pemantauan.

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

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

  3. Di halaman Deployments, klik image > Edit YAML untuk aplikasi target.

  4. Di bawah spec.template.metadata, tambahkan label berikut:

    labels:
      aliyun.com/app-language: python        # Wajib. Mengidentifikasi ini sebagai aplikasi Python.
      armsPilotAutoEnable: 'on'
      armsPilotCreateAppName: "deployment-name"    # Nama tampilan aplikasi di ARMS.

    Ganti deployment-name dengan nama yang ingin Anda tampilkan di konsol ARMS.

    image

Penting

Jika versi ack-onepilot Anda lebih baru dari 5.0.0, agen Python akan diunduh dan disuntikkan secara otomatis—tidak diperlukan perubahan Dockerfile. Jika Anda telah menginstal agen secara manual di kontainer (Langkah 3), nonaktifkan penyuntikan otomatis dengan menambahkan label berikut:

armsAutoInstrumentationEnable: "off"

Contoh YAML lengkap

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: arms-python-client
  name: arms-python-client
  namespace: arms-demo
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: arms-python-client
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: arms-python-client
        aliyun.com/app-language: python
        armsPilotAutoEnable: 'on'
        armsPilotCreateAppName: "arms-python-client"
    spec:
      containers:
        - image: registry.cn-hangzhou.aliyuncs.com/arms-default/python-agent:arms-python-client
          imagePullPolicy: Always
          name: client
          resources:
            requests:
              cpu: 250m
              memory: 300Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

---

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: arms-python-server
  name: arms-python-server
  namespace: arms-demo
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: arms-python-server
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: arms-python-server
        aliyun.com/app-language: python
        armsPilotAutoEnable: 'on'
        armsPilotCreateAppName: "arms-python-server"
    spec:
      containers:
        - env:
          - name: CLIENT_URL
            value: 'http://arms-python-client-svc:8000'
          image: registry.cn-hangzhou.aliyuncs.com/arms-default/python-agent:arms-python-server
          imagePullPolicy: Always
          name: server
          resources:
            requests:
              cpu: 250m
              memory: 300Mi
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30

---

apiVersion: v1
kind: Service
metadata:
  labels:
    app: arms-python-server
  name: arms-python-server-svc
  namespace: arms-demo
spec:
  internalTrafficPolicy: Cluster
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: http
      port: 8000
      protocol: TCP
      targetPort: 8000
  selector:
    app: arms-python-server
  sessionAffinity: None
  type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
  name: arms-python-client-svc
  namespace: arms-demo
spec:
  internalTrafficPolicy: Cluster
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: http
      port: 8000
      protocol: TCP
      targetPort: 8000
  selector:
    app: arms-python-client
  sessionAffinity: None
  type: ClusterIP

YAML berikut membuat dua Deployment (arms-python-client dan arms-python-server) serta dua Service di namespace arms-demo, dengan pemantauan ARMS diaktifkan.

Langkah 5: Lihat data pemantauan

Sekitar satu menit kemudian, aplikasi Anda akan muncul di konsol ARMS.

  1. Buka Konsol ARMS dan navigasikan ke Application Monitoring > Application List.

    image

  2. Klik nama aplikasi untuk melihat metrik terperinci. Untuk penjelasan lengkap halaman pemantauan, lihat Ikhtisar Aplikasi.

Pemecahan Masalah

Jika aplikasi Anda tidak muncul di konsol ARMS setelah satu menit, periksa hal berikut:

Verifikasi bahwa Pod sedang berjalan dan label telah diterapkan:

kubectl get pods -n arms-demo
kubectl describe pod <pod-name> -n arms-demo | grep -A 10 "Labels:"

Pastikan label Pod mencakup armsPilotAutoEnable: on dan aliyun.com/app-language: python.

Penyebab umum hilangnya data pemantauan:

Gejala Kemungkinan penyebab Perbaikan
Aplikasi tidak muncul di konsol ARMS Label tidak ada atau salah eja Periksa ulang nama label di YAML Deployment
Aplikasi terdaftar tetapi tidak ada data Versi Python di bawah 3.8 Upgrade ke Python 3.8 atau versi yang lebih baru
Aplikasi terdaftar tetapi tidak ada data Agen tidak diinstal (jalur manual) Verifikasi Dockerfile mencakup baris instalasi aliyun-bootstrap dan perintah CMD aliyun-instrument
Error otorisasi di log Pod addon.arms.token tidak tersedia Selesaikan Langkah 2 dan restart Pod yang terpengaruh

(Opsional) Lepaskan sumber daya

Untuk menghentikan pemantauan, uninstall agen Python. Lihat Uninstall agen Python.

Lanjutan