Tüm Ürünler
Search
Belge Merkezi

Cloud Monitor:Python uygulamalarını Live-Debug Agent Skill ile tanılama

Son Güncelleme:Oct 05, 2026

Live-Debug Agent Skill, iş kodunu değiştirmeden, yeni bir sürüm yayınlamadan veya işlemi yeniden başlatmadan Application Real-Time Monitoring Service (ARMS) bağlantılı Python uygulamalarında çalışma zamanı tanılaması yapmanıza olanak tanır. Tanılama amacınızı doğal dilde belirtirsiniz; AI Agent, agent oluşturma, Simple Log Service (SLS) aracılığıyla sonuç sorgulama ve Cloud Monitor (CMS) ServiceTask API üzerinden agent temizleme işlemlerini otomatik olarak koordine eder.

Hedeflenen yöntem çağrıldığında dinamik günlükler, yöntem anlık görüntüleri, geçici ölçümler ve izleme bilgilerini toplayabilirsiniz.

Önemli

AI Agent'lar büyük dil modelleriyle çalıştırılır ve hedef modül veya yöntem tanımlamasında yanlılık ya da hatalı ifadeler gibi riskler içerebilir. Bir agent oluşturmadan önce, Agent tarafından gösterilen yapılandırmayı ve hedef kaynağı dikkatlice doğrulayın. Üretim ortamında kullanmadan önce agent'ın performans ve kararlılık üzerindeki etkisini test ortamında kontrol edin. Tanılama işlemi tamamlandığında, kalıntı oluşmasını önlemek için agent'ı hemen silin.

Senaryolar


Tanılama gereksinimi


Önerilen yetenek


Tipik ifade


Bir işlevin çağrılıp çağrılmadığını ve giriş parametrelerinin beklentileri karşılayıp karşılamadığını onaylama


Dinamik günlük (LOG)


"X işlevinin çıkışına dinamik günlük ekle"


Parametreleri, dönüş değerlerini, yerel değişkenleri ve çağrı yığınını görüntüleme


Yöntem anlık görüntüsü (SNAPSHOT)


"X işlevinden anlık görüntü al, ... yakala"


Bir özel durum oluştuğunda senaryoyu otomatik olarak yakalama


Yöntem anlık görüntüsü (özel durum)


"X işlevi özel durum fırlattığında anlık görüntü yakala"


İş hacmini veya gecikme süresi dağılımını geçici olarak gözlemleme


Dinamik ölçüm (METRIC)


"X işlevine ... ölçümü ekle"


Geçici olarak span ekleme veya mevcut span'i iş nitelikleriyle etiketleme


SPAN/SPAN_TAG


"Span ekle / Mevcut span'i ... ile etiketle"

Desteklenen tanılama yetenekleri


Yetenek


Agent türü


taskType


Açıklama


Dinamik günlük


LOG


live_debug_log_probe


Şablona dayalı tanılama günlüklerini çıktılar. Nesne grafiklerini veya çağrı yığınlarını yakalamaz.


Yöntem anlık görüntüsü


SNAPSHOT


live_debug_snapshot_probe


ARGS, RETURN, LOCALS, STACK ve diğer verileri yakalar.


Dinamik ölçüm


METRIC


live_debug_metric_probe


COUNTER, GAUGE, HISTOGRAM ve SUMMARY ölçüm türlerini destekler.


Dinamik span


SPAN


live_debug_span_probe


İşlev düzeyinde OTel span oluşturur.


Span etiketleme


SPAN_TAG


live_debug_span_tag_probe


Mevcut etkin span'e nitelikler ekler.

İş akışı

Skill'in bir tanılama oturumunu nasıl koordine ettiği aşağıda açıklanmıştır:

  1. Tanılama gereksinimini (hangi işlevin gözlemleneceği, neyin yakalanacağı ve isteğe bağlı filtre koşulları ile süre) belirtirsiniz.

  2. Agent, komut satırı arabirimi (CLI) ortamını kontrol eder ve .arms-info dosyasını okur (dosya eksikse sorar).

  3. Agent bir agent yapılandırması oluşturur, görevi yaratır ve bir taskId döndürür.

  4. İlgili hizmet trafiğini tetiklersiniz.

  5. Agent, kurulum durumunu ve toplama sonuçlarını sorgular ve yorumlar.

  6. Tanılamanın tamamlandığını onayladığınızda, Agent agent'ı siler (veya tüm agent'ları temizler).

Ön koşullar


Koşul


Açıklama


Alibaba Cloud hesabı


Hedef çalışma alanı ve uygulama üzerinde Live-Debug (CMS ServiceTask) ve Simple Log Service sorgu izinlerine sahiptir.


Hedef uygulama


Bir Python uygulaması ARMS'a bağlanmış ve Live-Debug etkinleştirilmiştir.


Alibaba Cloud CLI

aliyun configure aracılığıyla yüklenmiş ve kimlik doğrulaması yapılmıştır. cms2 (CMS CLI eklentisi aliyuncms2) ve sls çağrılabilmelidir. Kurulum talimatları için aşağıdaki 1. Adım bölümüne bakın.


AI Agent


QoderWork, Cursor, Claude Code veya Agent Skills destekleyen başka bir araç yüklüdür. Skill kurulum talimatları için aşağıdaki 2. Adım bölümüne bakın.


Uygulama bağlantı bilgileri

workspace, serviceId, regionId ve slsProject hazırdır (3. Adım bölümüne bakın).

1. Adım: Alibaba Cloud CLI'yı yükleme ve yapılandırma

Live-Debug Skill, CMS'i (görevleri oluşturmak, listelemek ve silmek için aliyun cms2 apm service-task) ve Simple Log Service'i (toplama sonuçlarını sorgulamak için) aliyun CLI aracılığıyla çağırır. Önce CLI kurulumunu ve kimlik bilgisi yapılandırmasını tamamlayın.

CLI'yı yükleme

CLI yüklü değilse Alibaba Cloud CLI'yı Yükleme konusuna bakın ve işletim sisteminiz (Linux, macOS veya Windows) için uygun kurulum yöntemini seçin.

Kurulumdan sonra CLI'nın kullanılabilir olduğunu doğrulayın:

aliyun version

Erişim kimlik bilgilerini yapılandırma

aliyun configure

AccessKey ID, AccessKey secret ve varsayılan bölgeyi istendiğinde girin. Bir RAM kullanıcı kullanın ve hedef Simple Log Service projesi üzerinde CMS ServiceTask ile okuma/yazma/sorgu izinlerini verin. Daha fazla bilgi için Kimlik bilgilerini yapılandırma ve yönetme konusuna bakın.

Not

Live-Debug sonuçları sorgularken .arms-info dosyasından alınan regionId değerini açıkça belirtir. Varsayılan bölgeyi aliyun configure içindeki tek kaynak olarak kabul etmeyin. Varsayılan bölge Simple Log Service projesiyle eşleşmezse ProjectNotExist hatası oluşabilir.

CMS CLI'yı (aliyuncms2) yükleme ve kullanılabilirliği doğrulama

CMS ServiceTask yetenekleri aliyuncms2 ikili dosyası tarafından sağlanır. aliyuncms2 dosyasını edinin ve ~/.aliyun/ dizinine (veya PATH'e) yerleştirin. Ardından aliyun cms2 üzerinden çağırabilirsiniz; kimlik bilgileri aliyun configure yapılandırmasından yeniden kullanılır.

# Verify CMS ServiceTask capabilities
aliyun cms2 apm service-task --help

# Verify SLS query availability
aliyun sls --help

Eğer cms2 kullanılamıyorsa aliyuncms2 ikili dosyasının ~/.aliyun/ dizininde (veya PATH'te) bulunduğundan ve yürütme iznine sahip olduğundan emin olun:

ls -l ~/.aliyun/aliyuncms2
chmod +x ~/.aliyun/aliyuncms2
aliyun cms2 apm service-task --help

Sorun devam ederse Alibaba Cloud CLI'yı yükseltip yeniden deneyin:

aliyun upgrade -y

2. Adım: Live-Debug agent skill'i yükleme

  1. Live-Debug Agent Skill'i edinin ve tek tıklamayla alibabacloud-livedebug bağlantısı üzerinden AI Agent'ınıza yükleyin.

  2. Skill'i QoderWork, Cursor, Claude Code veya başka bir ortama yüklemek için AI aracınızın talimatlarını izleyin.

  3. Yüklemeden sonra AI asistanını yeniden başlatın veya bir konuşma yoluyla Skill'in yüklendiğini onaylayın (örneğin, "Live-Debug Skill'i yükledin mi?" diye sorun).

Aşağıdaki bölümlerde ${LIVE_DEBUG_SKILL_ROOT} ifadesi Skill kurulum kök dizinini temsil eder. Yardımcı betikler ${LIVE_DEBUG_SKILL_ROOT}/scripts/ konumunda bulunur.

3. Adım: Uygulama bağlantı bilgilerini hazırlama

Agent'ın otomatik olarak okuyabilmesi için tanılanacak projenin kök dizininde .arms-info dosyasını (key=value biçiminde) oluşturun. Aynı bilgileri konuşma sırasında doğrudan da sağlayabilirsiniz.

workspace=default-cms-xxxxxxxxxxxxxxxxxx-cn-hangzhou
serviceId=ggxw4lnjuz@f2fd3a6265a254a052afb
regionId=cn-hangzhou
targetIp=*
slsProject=proj-xtrace-xxxxxxxxxxxxxxxxxxxxxx-cn-hangzhou


Parametre


Zorunlu mu?


Açıklama


workspace


Evet


ARMS çalışma alanı ID'si.


serviceId


Evet


Uygulama veya hizmet ID'si.


regionId


Evet


Erişim bölgesi, örneğin cn-hangzhou.


slsProject


Evet


Live-Debug sonuçlarını depolayan Simple Log Service projesi.


targetIp


Hayır


Hedef örnek IP adresi. Varsayılan değer: * (tüm örnekler).

4. Adım: Doğal dil kullanarak tanılama başlatma

Proje kodunuzu Qoder gibi bir AI Kodlama aracıyla açmanız, çevrimiçi uygulamanıza karşılık gelen dalı seçmeniz ve ardından AI Kodlama aracında doğal dil kullanarak tanılama başlatmanız önerilir. Tanılama gereksinimini açıklarken aşağıdaki bilgileri dahil edin (Agent eksik olup olmadığını soracaktır):


Bilgi


Zorunlu mu?


Örnek


Hedef konum


Evet

app.service.order içindeki OrderService.create_order veya belirli bir dosyanın N. satırı.


Gözlem zamanlaması


Önerilir


Giriş, çıkış, özel durumda veya belirli bir satırda (varsayılan genellikle çıkıştır).


Gözlemlenecek içerik


Evet


Giriş parametreleri, dönüş değeri, gecikme süresi, yerel değişkenler veya çağrı yığını.


Filtre koşulu


Hayır

Yalnızca amount > 10000 olduğunda.


Süre veya sayı


Hayır


30 dakika veya 50 yakalamadan sonra durdur.

Görev oluşturulduktan sonra Agent bir taskId döndürür. Hedef modülün, yöntemin, location alanının, şablonun veya capture alanlarının doğru olduğunu doğrulamak için Referans yapılandırmalar bölümündeki referans yapılandırmalarla karşılaştırın ve ardından hizmet trafiğini tetikleyin.

5. Adım: Trafiği tetikleme, sonuçları doğrulama ve temizleme

  1. Yapılandırmayı doğrulayın: Agent tarafından gönderilen taskConfig değerinin hedef konum ve toplama içeriği açısından referans yapılandırmalarla eşleştiğini onaylayın.

  2. Hizmet trafiğini tetikleyin: Hedef kod yoluna ulaşan bir arayüze bir veya daha fazla istek gönderin.

  3. Sonuçları sorgulayın: Agent'a şunu söyleyin:

    Query the collection results for the taskId from just now, and help me interpret whether the agent is installed and what was captured.
    • Görev Durumu: Agent'ın başarıyla kurulup kurulmadığı, huni ölçümleri ve diğer durum bilgileri.

    • Yakalama Sonuçları: Günlükler ve anlık görüntüler gibi fiilen toplanan içerik.

  4. Temizleme (bu adımı her zaman gerçekleştirin):

    Delete the agent from just now.
    Clear all Live-Debug agents for the current service.
    Show me what Live-Debug agents are still attached to the current service.

Referans yapılandırmalar

Agent'ın oluşturduğu taskConfig değerini doğrulamak için aşağıdaki referans yapılandırmaları kullanın. Her alt bölüm, Desteklenen tanılama yetenekleri tablosundaki bir agent türüne karşılık gelir.

Dinamik günlük (LOG)

Örnek ifade:

Use the /alibabacloud-livedebug Skill to add a dynamic log at the exit of OrderService.create_order in app.service.order, print order_id, amount, return value, and latency. Keep it for 30 minutes.

Referans yapılandırma:taskType = live_debug_log_probe

{
  "probeType": "LOG",
  "language": "python",
  "target": {
    "typeName": "app.service.order",
    "methodName": "OrderService.create_order",
    "location": "exit",
    "instanceIds": ["*"]
  },
  "action": {
    "type": "LOG",
    "template": "create_order id={order_id} amount={amount} ret={@return} cost={@duration}ms"
  },
  "ttl": "30m",
  "captureCount": 100
}

Koşullu satır düzeyi:

Add a log at line 42 of app/service/order.py. Only output the order ID and amount when amount >= 1000.

Referans yapılandırma:taskType = live_debug_log_probe

{
  "probeType": "LOG",
  "language": "python",
  "target": {
    "sourceFile": "app/service/order.py",
    "location": "line:42",
    "instanceIds": ["*"]
  },
  "trigger": {
    "condition": "amount >= 1000"
  },
  "action": {
    "type": "LOG",
    "template": "big order id={order_id} amount={amount}"
  },
  "ttl": "30m"
}

Yöntem anlık görüntüsü (SNAPSHOT)

Örnek ifade:

Use the /alibabacloud-livedebug Skill to take a snapshot at the exit of OrderService.create_order. Capture input parameters, local variables, return value, and call stack. Capture up to 20 times.

Referans yapılandırma:taskType = live_debug_snapshot_probe

{
  "probeType": "SNAPSHOT",
  "language": "python",
  "target": {
    "typeName": "app.service.order",
    "methodName": "OrderService.create_order",
    "location": "exit",
    "instanceIds": ["*"]
  },
  "action": {
    "type": "SNAPSHOT",
    "capture": ["ARGS", "LOCALS", "RETURN", "STACK"],
    "captureConfig": {
      "maxDepth": 3,
      "maxCollectionSize": 100,
      "maxStringLength": 1024
    }
  },
  "ttl": "30m",
  "captureCount": 20
}

Özel alanlarla koşullu filtreleme:

Take a snapshot at the exit of create_order. Trigger only when the return value is empty or the amount is greater than 10000. Focus on order_id, amount * count, self.user_id, and the return value.

Referans yapılandırma:taskType = live_debug_snapshot_probe

{
  "probeType": "SNAPSHOT",
  "language": "python",
  "target": {
    "typeName": "app.service.order",
    "methodName": "OrderService.create_order",
    "location": "exit",
    "instanceIds": ["*"]
  },
  "trigger": {
    "condition": "@return is None or amount > 10000"
  },
  "action": {
    "type": "SNAPSHOT",
    "capture": ["ARGS"],
    "captureExpressions": [
      "order_id",
      "amount * count",
      "self.user_id",
      "@return"
    ]
  },
  "ttl": "30m",
  "captureCount": 50
}

Özel durum yakalama:

Capture a snapshot when PaymentService.process_payment throws an exception. Include input parameters, exception information, and call stack. Keep it for 2 hours.

Referans yapılandırma:taskType = live_debug_snapshot_probe

{
  "probeType": "SNAPSHOT",
  "language": "python",
  "target": {
    "typeName": "app.service.payment",
    "methodName": "PaymentService.process_payment",
    "location": "exception",
    "instanceIds": ["*"]
  },
  "action": {
    "type": "SNAPSHOT",
    "capture": ["ARGS", "EXCEPTION", "STACK", "LOCALS"]
  },
  "ttl": "2h",
  "captureCount": 100
}

Dinamik ölçüm (METRIC)

Örnek ifade:

Use the /alibabacloud-livedebug Skill to add an amount histogram metric to create_order. Include a tag indicating whether the user is a VIP. Keep it for 1 hour.

Referans yapılandırma:taskType = live_debug_metric_probe

{
  "probeType": "METRIC",
  "language": "python",
  "target": {
    "typeName": "app.service.order",
    "methodName": "OrderService.create_order",
    "location": "exit",
    "instanceIds": ["*"]
  },
  "action": {
    "type": "METRIC",
    "metricName": "livedebug.order.amount",
    "metricType": "HISTOGRAM",
    "valueExpression": "amount",
    "tags": {
      "is_vip": "str(user_id == 'vip')"
    }
  },
  "ttl": "1h"
}

Dinamik span (SPAN)

Örnek ifade:

Use the /alibabacloud-livedebug Skill to temporarily add a span on OrderService.create_order named dyn.create_order. Include the order ID and amount as span attributes.

Referans yapılandırma:taskType = live_debug_span_probe

{
  "probeType": "SPAN",
  "language": "python",
  "target": {
    "typeName": "app.service.order",
    "methodName": "OrderService.create_order",
    "location": "enter",
    "instanceIds": ["*"]
  },
  "action": {
    "type": "SPAN",
    "spanName": "dyn.create_order",
    "spanTags": {
      "order.id": "str(order_id)",
      "order.amount": "str(amount)"
    }
  },
  "ttl": "1h"
}

Span etiketleme (SPAN_TAG)

Örnek ifade:

At the exit of create_order, use the /alibabacloud-livedebug Skill to tag the current span with order.id and order.result (use the return value). Do not create a new span.

Referans yapılandırma:taskType = live_debug_span_tag_probe

{
  "probeType": "SPAN_TAG",
  "language": "python",
  "target": {
    "typeName": "app.service.order",
    "methodName": "OrderService.create_order",
    "location": "exit",
    "instanceIds": ["*"]
  },
  "action": {
    "type": "SPAN_TAG",
    "tags": [
      {"key": "order.id", "value": "str(order_id)"},
      {"key": "order.result", "value": "str(@return)"}
    ]
  },
  "ttl": "1h"
}

5. Adım: Trafiği tetikleme, sonuçları doğrulama ve temizleme

  1. Yapılandırmayı doğrulayın: Agent tarafından gönderilen taskConfig değerinin hedef konum ve yakalanacak içerik açısından referans yapılandırma ile eşleştiğini onaylayın.

  2. Trafiği tetikleyin: Hedef kod yolunu yürüten API'ye bir veya daha fazla istek gönderin.

  3. Sonuçları sorgulayın: Aşağıdaki sonuçları almak için agent'ı sorgulayın:

    Show me the capture results for the last task ID, and tell me if the probe was installed and what was captured.
    • Görev Durumu: Bu durum, probun başarıyla kurulup kurulmadığını belirtir ve huni ölçümleri ile diğer ayrıntıları sağlar.

    • Yakalama Sonuçları: Bu, günlükler ve anlık görüntüler gibi yakalanan içeriği içerir.

  4. Temizleme (Zorunlu):

    Delete the previous probe.
    Delete all Live-Debug probes in the current service.
    Show me which Live-Debug probes are still active in the current service.

Senaryo hızlı başvurusu


Tanılama ihtiyacı


Diğer deyişle


İlgili taskType


Bir işlev çağrısını hızla onaylama


"X işlevinin çıkışına dinamik günlük ekle ve ... yazdır"


live_debug_log_probe


Parametreleri, dönüş değerlerini veya yığını inceleme


"X işlevinden anlık görüntü al ve ... topla"


live_debug_snapshot_probe


Yalnızca özel durumlarda bağlamı yakalama


"X işlevi özel durum fırlattığında anlık görüntü yakala"


live_debug_snapshot_probe


Belirli bir satır yakınındaki değişkenleri görüntüleme


"X dosyasında, N. satırda günlük ekle veya anlık görüntü al"


live_debug_log_probe / live_debug_snapshot_probe


Geçici ölçüm


"X işlevine ... ölçümü ekle"


live_debug_metric_probe


Ad-hoc geri doldurma ve etiketleme


"X işlevine Span ekle veya mevcut Span'e ... etiketi ekle"


live_debug_span_probe / live_debug_span_tag_probe


Sonuçları görüntüleme


"taskId=... için sonuçları sorgula ve yorumla"


— (SLS Sorgulama)


Temizleme


"Bu agent'ı sil" veya "Tüm agent'ları sil"


— (Silme)

SSS

Agent, cms2 veya aliyun komutunun kullanılamadığını bildiriyor

Neden: Alibaba Cloud CLI yüklü değil, sürüm çok eski veya aliyuncms2 eklenti ikili dosyası hazır değil.

Çözüm:

aliyun version
aliyun upgrade -y
ls -l ~/.aliyun/aliyuncms2   # Confirm the CMS CLI plugin binary exists and is executable
aliyun cms2 apm service-task --help
aliyun sls --help

AccessKey çiftini yapılandırmak için aliyun configure komutunu çalıştırdığınızdan emin olun.

Görev başarıyla oluşturuldu ancak yakalama sonucu görünmüyor

Sorun giderme işlemini aşağıdaki sırayla gerçekleştirin:

  1. Agent'a öncelikle Görev Durumu'nu kontrol ettirin ve agent'ın başarıyla kurulup kurulmadığını onaylayın.

  2. typeName ve methodName değerlerinin çalışma zamanı modülü adı ve __qualname__ ile eşleştiğini doğrulayın. Ana modülün __main__ olması gerekip gerekmediğini kontrol edin.

  3. Hedef işleve ulaşan bir isteği tetiklediğinizden emin olun. Filtre koşulunun çok katı olup olmadığını kontrol edin.

  4. .arms-info dosyasındaki regionId değerinin slsProject bölgesiyle eşleştiğini onaylayın.

  5. Sorgu zaman penceresini artırın ve yeniden deneyin.

Agent'a şunu da söyleyebilirsiniz: "Veri yakalanmadı. Durumun ve hedef konumun doğru olup olmadığını kontrol etmeme yardım et."

SLS, ProjectNotExist hatası bildiriyor

Neden: Sorgu için kullanılan bölge, Simple Log Service projesinin bölgesiyle eşleşmiyor.

Çözüm: .arms-info dosyasına doğru regionId değerini girin ve Agent'ın LIVE_DEBUG_REGION_ID değerini dışa aktardığından emin olun. Yalnızca CLI varsayılan bölgesine güvenmeyin.

Agent'ların temizlendiğini nasıl onaylarım?

Show me what Live-Debug agents are still attached to the current service. If there are any, delete all of them.

Python uygulamaları iş parçacığı, bellek veya ters derleme tanılaması yapabilir mi?

Hayır. Bunlar yalnızca Java/JVM uygulamaları için desteklenen Command yetenekleridir. Python uygulamaları için bunun yerine günlük, anlık görüntü, ölçüm veya span tanılama yöntemlerini kullanın.

Başvurular