Tüm Ürünler
Search
Belge Merkezi

Cloud Monitor:Live-Debug ServiceTask API Referansı

Son Güncelleme:Oct 05, 2026

Cloud Monitor (CMS) ServiceTaskController API'si (sürüm 2024-03-30) aracılığıyla Python uygulamaları için dinamik kod araştırma görevlerini yönetir. Beş araştırma türü (LOG, SNAPSHOT, METRIC, SPAN ve SPAN_TAG) desteklenir ve yakalama sonuçları Simple Log Service (SLS) içinde saklanır.

Ön Koşullar

  • Alibaba Cloud CLI — Bu konudaki cms2 ve sls komutları Alibaba Cloud CLI (komut satırı arayüzü) gerektirir.

  • Workspace ID — Application Real-Time Monitoring Service (ARMS) workspace kimliği; örneğin default-cms-xxx-cn-hangzhou.

  • Service ID — Uygulama veya hizmet kimliği; örneğin ggxw4lnjuz@f2fd3a6265a254a052afb.

  • SLS project — Uygulama için SLS projesi; örneğin proj-xtrace-...-cn-hangzhou.

  • Region — CLI'ın varsayılan bölgesine güvenmemek amacıyla hem CMS hem de SLS komutları için --region parametresini açıkça belirtin.

Not

Bu konu yalnızca Python uygulamalarını (Araştırma görevleri) kapsar.

API İşlemleri


İşlem


HTTP Yöntemi


Yol


CLI Komutu


Görev oluşturma


POST


/serviceTask/{workspace}/{serviceId}/task


aliyun cms2 apm service-task create


Görevleri listeleme


GET


/serviceTask/{workspace}/{serviceId}/tasks


aliyun cms2 apm service-task list


Görev sorgulama


GET


/serviceTask/{workspace}/{serviceId}/task/{taskId}


aliyun cms2 apm service-task get


Görev silme


DELETE


/serviceTask/{workspace}/{serviceId}/task/{taskId}


aliyun cms2 apm service-task delete


Yakalama sonuçlarını sorgulama


SLS get-logs-v2


(CMS işlemi değil)


aliyun sls get-logs-v2

Yol Parametreleri


Parametre


Tür


Gerekli


Açıklama


workspace


dize


Evet


ARMS workspace kimliği; örneğin default-cms-xxx-cn-hangzhou.


serviceId


dize


Evet


Uygulama veya hizmet kimliği; örneğin ggxw4lnjuz@f2fd3a6265a254a052afb.


taskId


dize


Evet (Get/Delete)


Oluşturma işlemi tarafından döndürülen görev kimliği.

Ortak CLI Parametreleri


Parametre


Açıklama


Varsayılan


--region


Bölge. CLI'ın varsayılan bölgesine güvenmemek amacıyla hem CMS hem de SLS komutları için bu parametreyi açıkça belirtin.


Alibaba Cloud CLI yapılandırmasındaki varsayılan bölge


--endpoint


CMS uç noktası. Bölgeden türetilen uç noktayı geçersiz kılar.


cms.${regionId}.aliyuncs.com


-o json


Girintili JSON çıktısı verir. Varsayılan text modu kompakt tek satırlık JSON çıktısı verir.


text

CreateServiceTask

Bir Live-Debug araştırma görevi oluşturur.

İstek

POST /serviceTask/{workspace}/{serviceId}/task
Content-Type: application/json

Gövde Parametreleri


Parametre


Tür


Gerekli


Açıklama


type


dize


Evet


Görev türü (taskType). Geçerli değerler için bkz. Görev türü numaralandırması.


ip


dize


Evet


Hedef örnek IP adresi. Tüm örneklerle eşleşmesi için bu parametreyi * olarak ayarlayın.


taskConfig


dize (JSON metni)


Evet


Düz tek araştırma yapılandırma nesnesi. Sunucu bunu bir dize olarak saklar. CLI --task-config parametresi ham bir JSON nesnesini kabul eder ve otomatik olarak bir dizeye serileştirir.

CLI Örneği

aliyun cms2 apm service-task create \
  --workspace <workspace> --service-id <serviceId> \
  --type <taskType> --ip '<targetIp>' \
  --task-config '<taskConfigJson>' \
  --region <regionId> -o json
  • Tüm örneklerle eşleşmek için --ip parametresini * olarak ayarlayın.

  • Ham JSON nesnesini doğrudan --task-config parametresine iletin. JSON'u manuel olarak kaçış karakterleriyle düzenlemeniz gerekmez.

Yanıt

{
  "success": true,
  "data": {
    "requestId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "taskId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
  }
}


Alan


Açıklama


data.requestId


İstek kimliği.


data.taskId


Görev kimliği. SLS sorguları, Get ve Delete işlemleri için bu değeri kullanın.

HTTP Gövdesi Örneği (CLI Serileştirmesinden Sonra)

{
  "type": "live_debug_log_probe",
  "ip": "*",
  "taskConfig": "{\"probeType\":\"LOG\",\"language\":\"python\",\"target\":{\"typeName\":\"app.service.order\",\"methodName\":\"OrderService.create_order\",\"location\":\"exit\",\"instanceIds\":[\"*\"]},\"action\":{\"type\":\"LOG\",\"template\":\"id={order_id}\"},\"ttl\":\"30m\",\"captureCount\":100}"
}
Not

HTTP gövdesinde taskConfig kaçış karakterleri içeren bir JSON dizesidir. Parametreyi CLI --task-config üzerinden iletirken kaçış karakteri içermeyen JSON nesnesini iletin. Serileştirmeyi CLI halleder.

ListServiceTask

Live-Debug araştırma görevlerini listeler.

İstek

GET /serviceTask/{workspace}/{serviceId}/tasks?type={taskType}&maxResults={n}

Sorgu Parametreleri


Parametre


Tür


Gerekli


Açıklama


type


dize


Evet


Tam eşleşme filtrelemesi için görev türü; örneğin live_debug_log_probe.


maxResults


tamsayı


Hayır


Döndürülecek maksimum giriş sayısı. Varsayılan değer: 100. Maksimum değer: 100.

Yanıt Alanları

CLI, bir data.serviceTasks[] dizisi çıktılar. Her öğe aşağıdaki alanları içerir:


Alan


Açıklama


taskId


Görev kimliği.


type


Görev türü.


serviceId


Hizmet kimliği.


ip


Oluşturma sırasında belirtilen IP adresi veya *.


createTime


Görevin oluşturulduğu zaman.


updateTime


Görevin en son güncellendiği zaman.


taskConfig


Görev yapılandırması (düz araştırma nesnesi).

CLI Örneği

aliyun cms2 apm service-task list \
  --workspace <workspace> --service-id <serviceId> \
  --type <taskType> --max-results 100 \
  --region <regionId> -o json

GetServiceTask

Tek bir Live-Debug araştırma görevinin ayrıntılarını sorgular.

İstek

GET /serviceTask/{workspace}/{serviceId}/task/{taskId}?type={taskType}

Sorgu Parametreleri


Parametre


Tür


Gerekli


Açıklama


type


dize


Evet


Görev türü. Gerçek görev türüyle eşleşmelidir.

Yanıt

CLI, bir data.serviceTask nesnesi çıktılar. Alanlar, Liste yanıtındaki tek bir öğe ile aynıdır.

CLI Örneği

aliyun cms2 apm service-task get \
  --workspace <workspace> --service-id <serviceId> \
  --task-id <taskId> --type <taskType> \
  --region <regionId> -o json

DeleteServiceTask

Bir Live-Debug araştırma görevini siler. Silme işleminden sonra sunucu görevi kaldırır ve değişikliği yapılandırma sunucusuyla senkronize eder. Aracı tarafındaki ilgili araştırma etkinliğini yitirir.

Önemli

Dağıtılmış bir araştırmayı devre dışı bırakmak için ilgili görevi silin.

İstek

DELETE /serviceTask/{workspace}/{serviceId}/task/{taskId}?type={taskType}

Sorgu Parametreleri


Parametre


Tür


Gerekli


Açıklama


type


dize


Evet


Görev türü. Gerçek görev türüyle eşleşmelidir.

CLI Örneği

aliyun cms2 apm service-task delete \
  --workspace <workspace> --service-id <serviceId> \
  --task-id <taskId> --type <taskType> \
  --region <regionId> -o json

Toplu Silme Örneği

Bir hizmet için tüm araştırma görevlerini silmek amacıyla beş araştırma türünün her biri için görevleri listeleyin ve silin:

WS=<workspace>; SVC=<serviceId>; REGION=<regionId>
for t in live_debug_log_probe live_debug_snapshot_probe \
         live_debug_metric_probe live_debug_span_probe live_debug_span_tag_probe; do
  aliyun cms2 apm service-task list \
    --workspace "$WS" --service-id "$SVC" --type "$t" --region "$REGION" -o json |

  python3 -c 'import sys,json; [print(t["taskId"]) for t in (json.load(sys.stdin)["data"].get("serviceTasks") or [])]' |

  while read -r id; do
    aliyun cms2 apm service-task delete \
      --workspace "$WS" --service-id "$SVC" \
      --task-id "$id" --type "$t" --region "$REGION" -o json
  done
done

Yakalama Sonuçlarını Sorgulama (SLS)

Yakalama durumu ve sonuçları Simple Log Service (SLS) üzerine yazılır ve CMS Get işlemi tarafından döndürülmez.

CLI Örneği

Son 10 dakikadaki verileri sorgular. Oluşturma işlemi tarafından döndürülen görev kimliği ile <taskId> değerini değiştirin.

FROM=$(( $(date +%s) - 600 )); TO=$(date +%s)

# Task status (installation status, funnel metrics)
aliyun sls get-logs-v2 --region <regionId> --accept-encoding gzip \
  --project <slsProject> --logstore logstore-apm-logs \
  --from "$FROM" --to "$TO" \
  --query "* and \"<taskId>\" | SELECT content FROM log WHERE json_extract_scalar(attributes, '\$[\"livedebug.report_type\"]') = 'status'"

# Capture results (actual captured data)
aliyun sls get-logs-v2 --region <regionId> --accept-encoding gzip \
  --project <slsProject> --logstore logstore-apm-logs \
  --from "$FROM" --to "$TO" \
  --query "* and \"<taskId>\" | SELECT content FROM log WHERE json_extract_scalar(attributes, '\$[\"livedebug.report_type\"]') != 'status'"

Sorgu Parametreleri


Parametre


Gerekli


Açıklama


--project


Evet


Uygulama için SLS projesi; örneğin proj-xtrace-...-cn-hangzhou.


--logstore


Evet


Logstore adı. Varsayılan değer: logstore-apm-logs.


--from / --to


Evet


Unix zaman damgası (saniye) cinsinden sorgu zaman aralığı.


--region


Evet


SLS projesinin bölgesi. Proje bölgesiyle eşleşmelidir. Bu parametreyi açıkça belirtin.

Sorgu Türleri


Sorgu Türü


Filtre Koşulu


Açıklama


Görev durumu


livedebug.report_type = 'status'


Kurulum durumu ve huni ölçümleri.


Yakalama sonuçları


livedebug.report_type != 'status'


Gerçekten yakalanan veriler.

Önemli

SLS projeleri bölge bazında izole edilir. Yanlış bir region parametresi ProjectNotExist hatasına neden olur.

Görev Türü Numaralandırması

Aşağıdaki tabloda Python uygulamaları için desteklenen beş araştırma türü listelenmiştir. Adlandırma kuralı şöyledir: live_debug_ + küçük harfli araştırma anlamı + _probe.


taskType


Araştırma Türü


Açıklama


live_debug_log_probe


LOG


Hedef noktada dinamik günlükler çıktılar.


live_debug_snapshot_probe


SNAPSHOT


Yöntem anlık görüntülerini yakalar ve nesne grafiğini serileştirir.


live_debug_metric_probe


METRIC


Hedef noktada özel ölçümler yayımlar.


live_debug_span_probe


SPAN


Fonksiyon çalıştırması için bir OpenTelemetry span'i oluşturur.


live_debug_span_tag_probe


SPAN_TAG


Geçerli aktif span'e nitelikler ekler.

Araştırma taskConfig Yapısı

--task-config parametresine geçirilen düz nesne:

{
  "probeType": "LOG|SNAPSHOT|METRIC|SPAN|SPAN_TAG",
  "language": "python",
  "target": { },
  "action": { },
  "trigger": { },
  "rateLimit": { },
  "ttl": "1h",
  "captureCount": 100,
  "enabled": true
}

Üst Düzey Alanlar


Alan


Tür


Gerekli


Açıklama


probeType


dize


Evet


Araştırma türü. Geçerli değerler: LOG, SNAPSHOT, METRIC, SPAN, SPAN_TAG.


language


dize


Evet


Dil. Bu parametreyi python olarak ayarlayın.


target


nesne


Evet


Hedef yöntemi veya satırı konumlandırır.


action


nesne


Evet


Araştırma eylemi. Yapı probeType değerine göre değişir.


trigger


nesne


Hayır


Tetikleyici koşulu.


rateLimit


nesne


Hayır


Hız sınırlama yapılandırması.


ttl


dize


ttl veya captureCount alanlarından en az biri


Yaşam süresi. Desteklenen biçimler: 30s, 5m, 2h, 1d veya saniye cinsinden bir sayı. ms kullanmayın.


captureCount


tamsayı


ttl veya captureCount alanlarından en az biri


Maksimum yakalama sayısı. Görev, ttl veya captureCount değerlerinden hangisine önce ulaşıldığında sonlandırılır.


enabled


boolean


Hayır


Oluşturulurken tipik olarak true değerini alır. enabled: false ile görev oluşturmak mevcut bir araştırmayı devre dışı bırakmaz.

target — Hedefi Konumlandırma


Alan


Tür


Gerekli


Açıklama


typeName


dize


Fonksiyon düzeyindeki araştırmalar için önerilir


Modül adı (sys.modules anahtarı); örneğin app.service.order. Ana modül için bu parametreyi __main__ olarak ayarlayın.


methodName


dize


Fonksiyon düzeyindeki araştırmalar için önerilir


Fonksiyon __qualname__ değeri. Sınıf yöntemleri için ClassName.method_name biçimini kullanın. Düz fonksiyonlar için fonksiyon adını doğrudan kullanın.


sourceFile


dize


Hayır (satır düzeyindeki araştırmalar için önerilir)


Kaynak dosya adı veya yol soneki.


location


dize


Hayır


Hook noktası. Geçerli değerler: enter, exit, exception, line:N. Varsayılan değer: exit. SPAN araştırmaları yalnızca fonksiyon düzeyini destekler ve line kullanamaz.


instanceIds


dize[]


Kuvvetle tavsiye edilir


Araştırmanın etkili olduğu örnek kimliklerinin listesi. Bu parametreyi taskConfig üst düzeyinde değil, target içinde yerleştirin. Tüm örnekler için ["*"] olarak ayarlayın. Boş bırakılırsa araştırma etkili olmaz.


instanceIps


dize[]


Hayır


Araştırmanın etkili olduğu IP adreslerinin listesi. instanceIds ile VE mantığı kullanılarak birleştirilir.

Satır düzeyindeki araştırmalar öncelikle sourceFile + location:"line:N" kombinasyonuna dayanabilir.

trigger — Tetikleyici Koşulu (İsteğe Bağlı)


Alan


Tür


Varsayılan


Açıklama


condition


dize


-


Araştırma, bu ifade doğru olarak değerlendirildiğinde yalnızca veri yakalar.


callerPattern


dize


-


Çağıran filtresi (Python'da nadiren kullanılır).

Koşul örnekleri: amount > 10000 veya @return is None or amount > 10000

İfade kuralları:

  • Parametre adlarını, yerel değişkenleri veya modül düzeyindeki global değişkenleri doğrudan kullanın.

  • exit veya exception konumlarında @return, @duration (milisaniye) veya @exception kullanın.

  • OGNL, args[0], returnValue veya durationMs kullanmayın.

  • Koşul @return veya @exception değerlerine başvuruyorsa araştırma location değeri exit veya exception olmalıdır.

rateLimit — Hız Sınırlama (İsteğe Bağlı)


Alan


Tür


Varsayılan


Açıklama


maxExecutionsPerSecond


tamsayı


Araştırma türüne göre değişir (aşağıya bakın)


Saniye başına maksimum çalıştırma sayısı (token bucket).


samplingProbability


double


1.0


Rastgele geçiş olasılığı (0 ila 1).


executionTimeoutMs


tamsayı


100


Tek bir yakalama için milisaniye cinsinden zaman aşımı.

Varsayılan hız sınırları: LOG, METRIC, SPAN ve SPAN_TAG araştırmaları saniyede yaklaşık 5.000 çalıştırmaya izin verir. SNAPSHOT araştırmaları saniyede yaklaşık 1 çalıştırmaya izin verir. Satır düzeyindeki araştırmalar için saniyede yaklaşık 100 çalıştırma ek bir genel koruma sınırı bulunmaktadır.

Türe Göre Araştırma Eylemi

LOG (taskType: live_debug_log_probe)

Nesne grafiği serileştirmesi olmadan hedef noktada dinamik günlükler çıktılar.

action alanları


Alan


Tür


Gerekli


Açıklama


type


dize


Evet


"LOG" olarak ayarlayın.


template


dize


Evet


Günlük şablonu. Dinamik değerler için {expression} sözdizimini kullanın.

Not

LOG araştırmaları yalnızca şablonu işler ve capture boyutunu yok sayar. Parametreleri, dönüş değerlerini veya yığın izlerini yakalamak için SNAPSHOT araştırması kullanın.

Örnek

{
  "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
}

SNAPSHOT (taskType: live_debug_snapshot_probe)

Yöntem anlık görüntülerini yakalar ve nesne grafiğini serileştirir.

action alanları


Alan


Tür


Gerekli


Açıklama


type


dize


Evet


"SNAPSHOT" olarak ayarlayın.


capture


dize[]


Evet


Yakalama boyutları. Sağlanmazsa veya [] olarak ayarlanırsa hiçbir nesne grafiği yakalanmaz.


captureExpressions


dize[]


Hayır


Değerlendirilecek ek ifadeler.


captureConfig


nesne


Hayır


Nesne grafiği serileştirme sınırları.

capture enum değerleri


Değer


Açıklama


ARGS


Yöntem bağımsız değişkenlerini serileştirir.


RETURN


Dönüş değerini serileştirir.


THIS


Geçerli örneği serileştirir.


EXCEPTION


Özet istisna kaydeder.


LOCALS


Yerel değişkenleri yakalar (hata ayıklama bilgisi gerektirir).


STACK


Çağrı yığınını yakalar (opt-in, açıkça dahil edilmelidir).


EXECUTION_DETAIL


Yöntem gövdesindeki alt çağrıları toplar.

captureConfig


Alan


Varsayılan


Açıklama


maxDepth


3


Maksimum nesne serileştirme derinliği.


maxCollectionSize


100


Koleksiyonlarda veya dizilerdeki maksimum öğe sayısı.


maxStringLength


1024


Maksimum dize uzunluğu.


maxFieldCount


50


Nesne başına maksimum alan sayısı.


maxTotalSizeBytes


65536


Tek bir anlık görüntünün bayt cinsinden maksimum boyutu.


stackTraceDepth


50


Maksimum çağrı yığını derinliği.


redactedFieldPatterns


[".*password.*",".*token.*",".*secret.*"]


Alan adı gizleme için düzenli ifadeler.

captureExpressions

Sözdizimi trigger.condition ve LOG şablonlarıyla aynıdır (sınırlı eval). Sonuçlar context.evaluatedExpressions alanına yazılır. Her öğe aşağıdaki biçime sahiptir:

{"name": "order_id", "type": "...", "value": "...", "notCapturedReason": null}

Değerlendirme başarısız olursa value null olarak ayarlanır ve notCapturedReason nedeni kaydeder. Bu durum diğer boyutları etkilemez. captureExpressions ve capture birbirinden bağımsızdır.

Örnek

{
  "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"],
    "captureConfig": {
      "maxDepth": 3,
      "maxCollectionSize": 100,
      "maxStringLength": 1024
    }
  },
  "ttl": "30m",
  "captureCount": 50
}

METRIC (taskType: live_debug_metric_probe)

Hedef noktada özel ölçümler yayımlar.

action alanları


Alan


Tür


Gerekli


Açıklama


type


dize


Evet


"METRIC" olarak ayarlayın.


metricName


dize


Evet


Ölçüm adı; örneğin livedebug.order.amount.


metricType


dize


Evet


Ölçüm türü. Geçerli değerler: COUNTER, GAUGE, HISTOGRAM, SUMMARY.


valueExpression


dize


Evet


Ölçüm değerini değerlendiren bir Python ifadesi.


tags


nesne


Hayır


Etiket haritası. Değerler Python ifade dizeleridir.

Örnek

{
  "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"
}

SPAN (taskType: live_debug_span_probe)

Hedef fonksiyon çalıştırması için bir OpenTelemetry span'i oluşturur. Bir istisna oluşursa span'i ERROR olarak işaretler ve bir istisna olayı kaydeder. Yalnızca fonksiyon düzeyinde.

action alanları


Alan


Tür


Gerekli


Açıklama


type


dize


Evet


"SPAN" olarak ayarlayın.


spanName


dize


Evet


Span adı.


spanTags


nesne


Hayır


Özellik haritası. Değerler Python ifade dizeleridir.

Örnek

{
  "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_TAG (taskType: live_debug_span_tag_probe)

Geçerli aktif span'e nitelikler ekler. Aktif bir span yoksa sessizce atlar.

action alanları


Alan


Tür


Gerekli


Açıklama


type


dize


Evet


"SPAN_TAG" olarak ayarlayın.


tags


dizi


Evet


Etiket dizisi. Her öğe { "key": "...", "value": "<Python expression>" } biçimine sahiptir.

Örnek

{
  "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"
}

Hatalar ve Sorun Giderme


Belirti


Olası Neden


Çözüm


ProjectNotExist


SLS bölgesi yanlış.


aliyun sls --region kullanarak doğru bölgeyi belirtin. Bölge proje bölgesiyle eşleşmelidir.


Liste boş sonuçlar döndürür ancak görev mevcuttur


type parametresi gerçek görev türüyle eşleşmiyor.


Görevleri tam görev türüne göre listeleyin.


enabled:false ile görev oluşturmak aktif bir araştırmayı durdurmaz


Bu parametre dağıtılan görevleri etkilemez.


Araştırmaları devre dışı bırakmak için DeleteServiceTask kullanın.


Araştırma veri yakalamıyor


instanceIds boş, modül adı yanlış veya trafik tetiklenmedi.


instanceIds değerini ["*"] olarak ayarlayın, typeName ve methodName değerlerini doğrulayın ve durumu sorgulamadan önce trafik oluşturun.


SPAN oluşturma başarısız oluyor veya geçersiz


Konum olarak line:N kullanıldı.


Fonksiyon düzeyi enter veya exit olarak değiştirin.


TTL istisnası


ms birimi kullanıldı.


s, m, h, d veya saniye cinsinden bir sayı kullanın.

Tam İş Akışı Örneği (LOG Araştırması)

# 0. Environment variables
REGION=cn-hangzhou
SLS_PROJECT=proj-xtrace-xxxxxxxxxxxxxxxxxxxxxx-cn-hangzhou
WORKSPACE=default-cms-xxxxxxxxxxxxxxxxxx-cn-hangzhou
SERVICE_ID='ggxw4lnjuz@f2fd3a6265a254a052afb'

# 1. Create a task
RESP=$(aliyun cms2 apm service-task create \
  --workspace "$WORKSPACE" --service-id "$SERVICE_ID" \
  --type live_debug_log_probe --ip '*' \
  --task-config '{"probeType":"LOG","language":"python","target":{"typeName":"app.service.order","methodName":"OrderService.create_order","location":"exit","instanceIds":["*"]},"action":{"type":"LOG","template":"id={order_id} ret={@return}"},"ttl":"30m","captureCount":50}' \
  --region "$REGION" -o json)
echo "$RESP"
TASK_ID=$(echo "$RESP" | python3 -c 'import sys,json; print(json.load(sys.stdin)["data"]["taskId"])')

# 2. Verify the task
aliyun cms2 apm service-task get \
  --workspace "$WORKSPACE" --service-id "$SERVICE_ID" \
  --task-id "$TASK_ID" --type live_debug_log_probe \
  --region "$REGION" -o json

# 3. Generate traffic to the instrumented endpoint and query results (last 10 minutes)
FROM=$(( $(date +%s) - 600 )); TO=$(date +%s)
aliyun sls get-logs-v2 --region "$REGION" --accept-encoding gzip \
  --project "$SLS_PROJECT" --logstore logstore-apm-logs \
  --from "$FROM" --to "$TO" \
  --query "* and \"$TASK_ID\" | SELECT content FROM log WHERE json_extract_scalar(attributes, '\$[\"livedebug.report_type\"]') != 'status'"

# 5. Delete the task
aliyun cms2 apm service-task delete \
  --workspace "$WORKSPACE" --service-id "$SERVICE_ID" \
  --task-id "$TASK_ID" --type live_debug_log_probe \
  --region "$REGION" -o json