Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Python application monitoring

Son Güncelleme:Oct 06, 2026

Django, Flask ve FastAPI gibi çerçevelerle oluşturulan web uygulamaları veya LlamaIndex ve Langchain kullanılarak geliştirilen yapay zeka ve büyük dil modeli (LLM) uygulamaları dahil olmak üzere ACK kümelerinde dağıtılan Python uygulamalarının performansını izlemek için Application Real-Time Monitoring Service (ARMS) hizmetini kullanabilirsiniz. İzlemeyi etkinleştirmek için ack-onepilot bileşenini yükleyin ve Dockerfile dosyanızı değiştirin. Bu sayede uygulama topolojisi, izleme, API çağrısı analizi, anormallik algılama ve büyük model etkileşimlerinin ayrıntılı takibi gibi özelliklerden yararlanabilirsiniz.

Ön koşullar

Adım 1: ack-onepilot bileşenini yükleyin

Önemli

Eski arms-pilot bileşeni artık desteklenmemektedir. ack-onepilot bunun yerine geçen bileşendir ve tamamen uyumludur; geçiş işlemi için uygulamanızın yapılandırmasında değişiklik yapmanız gerekmez. Geçiş adımları için bkz. arms-pilot öğesini kaldırma ve ack-onepilot yükleme.

  1. ACK konsolu oturumunu açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Components and Add-ons seçeneğine tıklayın.

  3. Günlükler ve İzleme bölümünde ack-onepilot eklentisini bulun ve eklenti kartında Install seçeneğine tıklayın.

    Not

    ack-onepilot sürümünün 3.2.4 veya üzeri olduğundan emin olun. Varsayılan olarak ack-onepilot bileşeni en fazla 1.000 pod'u destekler. Bu sınırın her 1.000 podluk aşımı için ack-onepilot CPU kaynaklarını 0,5 çekirdek ve bellek kaynaklarını 512 MB artırın.

    Yükleme tamamlandıktan sonra Add-ons sayfasından ack-onepilot eklentisini yükseltebilir, yapılandırabilir veya kaldırabilirsiniz.

Adım 2: ARMS'nin kaynaklara erişmesine izin verin

ARMS, şifresiz yetkilendirme için addon.arms.token anahtarını kullanır. Çoğu ACK yönetilen kümesi bu gizli diziyi varsayılan olarak içerir. Bazı eski kümelerde bu bulunmayabilir.

Kümenizde belirtecin olup olmadığını kontrol edin:

Kümedeki addon.arms.token gizli dizisini kontrol etme

  1. ACK konsolu oturumunu açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Configurations > Secrets seçeneğini belirleyin.

  3. Namespace açılır listesinden kube-system seçeneğini belirleyin ve addon.arms.token gizli dizisinin var olup olmadığını kontrol edin.

Belirteç eksikse izinleri manuel olarak verin:

  1. ACK konsolu oturumunu açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında hedef kümenin adına tıklayın. Sol gezinme bölmesinde Cluster Information seçeneğine tıklayın.

  3. Basic Information sekmesinde Cluster Resources altında Worker RAM Role yanındaki bağlantıya tıklayın.

  4. Permissions sekmesinde Grant Permission seçeneğine tıklayın.

  5. AliyunARMSFullAccess ilkesini seçin ve Grant permissions seçeneğine tıklayın.

Kümeniz bir Elastic Container Instance (ECI) ile bağlantılıysa RAM Hızlı Yetkilendirme sayfasına gidin ve yetkilendirmeyi tamamlayın. Ardından ack-onepilot için oluşturulan pod'ları yeniden başlatın.

Adım 3: ARMS Python aracısını Dockerfile dosyanıza entegre edin

ARMS Python aracısını entegre etmek ve Python uygulamanızı başlatmak için Dockerfile dosyanızı değiştirin.

  1. Aracı yükleyiciyi PyPI'dan yükleyin:

       RUN pip3 install aliyun-bootstrap
  2. Aracıyı yükleyin. <region-id> değerini Alibaba Cloud bölge kimliğinizle (örneğin cn-hangzhou) değiştirin:

    Not

    Belirli bir aracı sürümü yüklemek için şu komutu çalıştırın: aliyun-bootstrap -a install -v <version> Yayınlanan tüm sürümler için bkz. Python aracı sürüm notları.

       RUN ARMS_REGION_ID=<region-id> aliyun-bootstrap -a install
  3. Başlatma komutunu aliyun-instrument ön ekiyle kullanacak şekilde güncelleyin:

       CMD ["aliyun-instrument", "python", "app.py"]
  4. Görüntüyü oluşturun.

Aşağıda eksiksiz bir Dockerfile örneği verilmiştir:

Önce:

FROM docker.m.daocloud.io/python:3.10

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY ./app.py /app/app.py
EXPOSE 8000
CMD ["python", "app.py"]

Sonra (ARMS aracısı ile):

FROM docker.m.daocloud.io/python:3.10

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Install the ARMS Python agent
RUN pip3 install aliyun-bootstrap \
    && ARMS_REGION_ID=<region-id> aliyun-bootstrap -a install

COPY ./app.py /app/app.py
EXPOSE 8000

# Start the application with the ARMS agent
CMD ["aliyun-instrument", "python", "app.py"]

Adım 4: ARMS izlemeyi etkinleştirin

  1. ACK konsolu oturumunu açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Workloads > Deployments seçeneğine tıklayın.

  3. Deployments sayfasında uygulamanızı bulun ve İşlemler sütununda image > Edit YAML seçeneğine tıklayın.

  4. spec.template.metadata altına aşağıdaki etiketleri ekleyin: <app-name> değerini uygulamanız için açıklayıcı bir adla (örneğin my-python-service) değiştirin.

    Önemli

    ack-onepilot 5.0.0'dan sonraki bir sürümü kullanıyorsanız ancak aracıyı Dockerfile dosyanızda zaten manuel olarak yüklediyseniz aşağıdaki etiketi ekleyerek otomatik enjeksiyonu devre dışı bırakın: ``yaml armsAutoInstrumentationEnable: "off" ``

       labels:
         aliyun.com/app-language: python       # Required. Identifies this as a Python application.
         armsPilotAutoEnable: 'on'             # Enables ARMS monitoring.
         armsPilotCreateAppName: "<app-name>"  # Display name in the ARMS console.

    Aşağıdaki kod, bir Dağıtım oluşturmak ve uygulama izlemeyi etkinleştirmek için eksiksiz bir YAML şablonu sağlar:

    Eksiksiz YAML örneği

    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 # Required. Specifies the application language as Python.
            armsPilotAutoEnable: 'on'
            armsPilotCreateAppName: "arms-python-client"    # The application's display name in the ARMS console.
        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 # Required. Specifies the application language as Python.
            armsPilotAutoEnable: 'on'
            armsPilotCreateAppName: "arms-python-server"    # The application's display name in the ARMS console.
        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
    

Adım 5: İzleme ayrıntılarını görüntüleyin

  1. Yaklaşık bir dakika sonra ARMS konsolu oturumunu açın. Sol gezinme bölmesinde Application Monitoring > Applications seçeneğini belirleyerek Python uygulamanızı ve raporlanan verilerini görüntüleyin.

    Uygulama listesinde bağlı olan arms-python-client uygulamasını ve saniye başına istek sayısı, hata oranı ve ortalama yanıt süresi gibi ölçümlerini görebilirsiniz.

  2. ARMS konsolundaki uygulama izleme sayfasına gitmek ve ayrıntılı izleme bilgilerini görüntülemek için Application Name seçeneğine tıklayın. Daha fazla bilgi için bkz. Uygulamaya genel bakış.

(İsteğe bağlı) Adım 6: Kaynakları serbest bırakın

Python uygulamanızı ARMS ile izlemenize artık ihtiyaç duymuyorsanız izlemeyi durdurmak için ARMS Python aracısını kaldırabilirsiniz. Daha fazla bilgi için bkz. Python aracısını kaldırma.