Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure API Management’in MCP sunucularına yönelik trafik için hangi telemetri verilerini yaydığını, araç bağımsız değişkenleri ve sonuçları için yüklerin günlüğe kaydedilmesini nasıl etkinleştireceğinizi ve verileri Azure İzleyici’de nasıl sorgulayacağınızı öğreneceksiniz.
Prerequisites
En az bir MCP sunucusuna sahip bir API Management örneği. Bkz. Bir REST API'sini MCP sunucusu olarak sunma veya mevcut bir MCP sunucusunu sunma.
API Management örneğinize bağlı bir Application Insights kaynağı. Daha fazla bilgi için bkz. Azure API Management için Application Insights'ı yapılandırma.
MCP sunucuları için varsayılan telemetri
HER MCP isteği için API Management, MCP'ye özgü boyutlara sahip bir Application Insights istek satırı yazar ve standart süre alanını ayarlar. Herhangi bir yapılandırmayı değiştirmeden araç başına gecikme süresi grafiği oluşturabilirsiniz. Ayrıntılar için bu makalenin devamında yer alan MCP telemetri başvurusu bölümüne bakın.
Note
MCP telemetrisi, verinin araçlar arasında tutarlı olması için standart telemetri öznitelik adlarını (örneğin) gen_ai.*tanımlayan, üretken yapay zeka için OpenTelemetry semantik kurallarını izler.
Bağımsız değişkenler ve sonuçlar için yük kaydını etkinleştir
API Management, varsayılan olarak araç çağrılarının parametrelerini ve sonuçlarını kaydetmez. BIR MCP sunucusu için yakalamayı etkinleştirmek için:
Azure portalında API Management örneğine gidin.
API'ler>MCP sunucuları'nı seçin, ardından günlüğe kaydetmek istediğiniz MCP sunucusunu seçin.
Ayarlar>Tanılama Günlükleri'ni seçin.
Ön uç ve arka uç yük kaydını etkinleştirin. Kaydetseçeneğini seçin.
Dikkat
Araç bağımsız değişkenleri ve sonuçları, istemler, müşteri verileri veya gizli bilgiler içerebilir. Yük günlüğünü yalnızca ihtiyacınız olan MCP sunucuları ve ortamları için etkinleştirin. Geniş kapsamlı dağıtımdan önce temizleme veya talep izin listelerini uygulayın.
KQL ile MCP trafiğini sorgulama
Aşağıda, MCP trafiğini analiz etmek için Azure İzleyici çalıştırabileceğiniz örnek Kusto sorguları yer alır. Bu örneklerde, uygun olan yerlerde sales-mcp öğesini MCP sunucunuzun adıyla değiştirin.
Belirli bir MCP sunucusundaki son 50 araç çağrısını listeleme
requests
| where customDimensions["api.type"] == "Mcp"
and customDimensions["service.name"] == "sales-mcp"
and customDimensions["gen_ai.operation.name"] == "tools/call"
| project timestamp,
tool = customDimensions["gen_ai.tool.name"],
session = customDimensions["gen_ai.conversation.id"],
client = strcat(customDimensions["user_agent.name"], "/",
customDimensions["user_agent.version"]),
durationMs = duration,
success
| order by timestamp desc
| take 50
Araç çağrısı hacmine göre en yüksek MCP istemcileri
requests
| where customDimensions["api.type"] == "Mcp"
and customDimensions["gen_ai.operation.name"] == "tools/call"
| summarize calls = count()
by client = strcat(customDimensions["user_agent.name"], "/",
customDimensions["user_agent.version"])
| top 10 by calls desc
Son 24 saat içinde araç başına p50 ve p95 gecikme süresi
requests
| where customDimensions["api.type"] == "Mcp"
and customDimensions["gen_ai.operation.name"] == "tools/call"
and timestamp > ago(24h)
| summarize p50 = percentile(duration, 50),
p95 = percentile(duration, 95),
calls = count()
by tool = tostring(customDimensions["gen_ai.tool.name"])
| order by p95 desc
Zaman içinde araç başına hata oranı
requests
| where customDimensions["api.type"] == "Mcp"
and customDimensions["gen_ai.operation.name"] == "tools/call"
| summarize total = count(),
failures = countif(success == false)
by bin(timestamp, 5m),
tool = tostring(customDimensions["gen_ai.tool.name"])
| extend errorRate = todouble(failures) / total
| render timechart
Belirli bir araca gönderilen argümanları inceleme
Bu senaryoda, MCP sunucusu için yük günlüğünün etkinleştirildiğinden emin olun.
requests
| where customDimensions["api.type"] == "Mcp"
and customDimensions["service.name"] == "sales-mcp"
and customDimensions["gen_ai.tool.name"] == "create_quote"
and timestamp > ago(1h)
| project timestamp,
session = customDimensions["gen_ai.conversation.id"],
args = customDimensions["gen_ai.tool.call.arguments"],
result = customDimensions["gen_ai.tool.call.result"]
İzleme ilkesiyle özel boyutlar ekleyin
Yerleşik şemada olmayan verileri (örneğin, özel x-agent-id üst bilgi, JWT talebi veya bağıntı kimliği) yakalamak için MCP sunucusunun kapsamında izleme ilkesini kullanın.
Warning
MCP kapsamına bağlı ilkelerden context.Response.Body öğesine erişmeyin. MCP yanıtları akış olarak iletilir ve yanıt gövdesinin okunması bu akışı bozar.
MCP telemetri referansı
Her MCP isteğinde aşağıdaki boyutlar görünür:
| Mülkiyet | Açıklama |
|---|---|
gen_ai.operation.name |
JSON-RPC yöntemi (tools/list veya tools/call). |
gen_ai.conversation.id |
MCP oturum kimliği. |
network.protocol.name |
Protokol adı (MCP). |
network.protocol.version |
Protokol sürümü. |
auth.type |
Gelen kimlik doğrulama yöntemi. |
user_agent.name |
MCP istemci adı (örneğin, vscode veya claude-desktop). |
user_agent.version |
MCP istemci sürümü. |
service.name |
MCP sunucu adı. |
service.version |
MCP sunucu sürümü. |
api.type |
API tür tanımlayıcısı (Mcp). |
error.message |
Hata dizesi, başarısızlık durumunda. |
error.type |
Hata kategorisi, başarısızlık durumunda. |
Araçlarda/listede ek alanlar
| Metric | Açıklama |
|---|---|
ToolCount |
Yanıtta döndürülen araç sayısı. |
Araçlarda/aramada ek alanlar
| Mülkiyet | Açıklama |
|---|---|
gen_ai.tool.name |
Ajanın çağırdığı araç. |
gen_ai.tool.type |
Araç türü. |
gen_ai.tool.call.arguments |
Argümanlar JSON. Yalnızca yük kaydı etkinleştirildiğinde bulunur. |
gen_ai.tool.call.result |
Sonuç JSON. Yalnızca yük kaydı etkinleştirildiğinde mevcuttur. |