Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra quali dati di telemetria Gestione API di Azure generano per il traffico verso i server MCP, come abilitare la registrazione del payload per gli argomenti e i risultati degli strumenti e come eseguire query sui dati in Monitoraggio di Azure.
Prerequisites
Istanza di Gestione API con almeno un server MCP. Vedere Esporre un'API REST come server MCP o Esporre un server MCP esistente.
Una risorsa di Application Insights collegata all'istanza di Gestione API. Per altre informazioni, vedere Configurare Application Insights per Gestione API di Azure.
Telemetria predefinita per i server MCP
Per ciascuna richiesta MCP, API Management scrive una riga nelle richieste di Application Insights con dimensioni specifiche di MCP e imposta il campo standard relativo alla durata. È possibile tracciare la latenza per strumento senza modificare alcuna configurazione. Per ulteriori dettagli, vedere la sezione Informazioni di riferimento sulla telemetria MCP, più avanti in questo articolo.
Note
I dati di telemetria MCP seguono le convenzioni semantiche OpenTelemetry per l'intelligenza artificiale generativa, che definiscono nomi di attributi di telemetria standard (ad esempio, gen_ai.*) in modo che i dati vengano coerenti tra gli strumenti.
Abilitare la registrazione dei log del payload per argomenti e risultati
Per impostazione predefinita, Gestione API non acquisisce gli argomenti e i risultati delle chiamate agli strumenti. Per abilitare l'acquisizione per un server MCP:
Nel portale di Azure passare all'istanza di Gestione API.
Selezionare API server>MCP e quindi selezionare il server MCP da registrare.
Selezionare Impostazioni>Log di diagnostica.
Abilita la registrazione dei payload frontend e backend. Seleziona Salva.
Attenzione
Gli argomenti e i risultati degli strumenti possono includere prompt, dati dei clienti o informazioni riservate. Abilitare la registrazione del payload solo per i server e gli ambienti MCP in cui è necessario. Applicare gli elenchi di scrubbing o attestazione consentita prima dell'implementazione su larga scala.
Eseguire query sul traffico MCP con KQL
Di seguito sono riportate le query Kusto di esempio che è possibile eseguire in Monitoraggio di Azure per analizzare il traffico MCP. In questi esempi sostituire sales-mcp con il nome del server MCP, se applicabile.
Elencare le ultime 50 chiamate allo strumento in un determinato server MCP
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
Principali client MCP per volume di chiamate agli strumenti
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
latenza p50 e p95 per strumento nelle ultime 24 ore
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
Frequenza degli errori per strumento nel tempo
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
Esaminare gli argomenti inviati a uno strumento specifico
Per questo scenario, assicurarsi che la registrazione del payload sia abilitata per il server MCP.
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"]
Aggiungere dimensioni personalizzate con i criteri di traccia
Per acquisire dati non inclusi nello schema predefinito, ad esempio un'intestazione personalizzata x-agent-id , un'attestazione JWT o un ID di correlazione, usare i criteri di traccia nell'ambito del server MCP.
Avvertimento
Non accedere a context.Response.Body tramite i criteri associati all'ambito MCP. Le risposte MCP vengono trasmesse in streaming e la lettura del corpo della risposta interrompe il flusso.
Informazioni di riferimento sulla telemetria MCP
In ogni richiesta MCP vengono visualizzate le dimensioni seguenti:
| Property | Descrizione |
|---|---|
gen_ai.operation.name |
il metodo JSON-RPC (tools/list o tools/call). |
gen_ai.conversation.id |
ID della sessione MCP. |
network.protocol.name |
Nome del protocollo (MCP). |
network.protocol.version |
Versione del protocollo. |
auth.type |
Metodo di autenticazione in ingresso. |
user_agent.name |
Nome client MCP (ad esempio, vscode o claude-desktop). |
user_agent.version |
Versione del client MCP. |
service.name |
Nome del server MCP. |
service.version |
Versione del server MCP. |
api.type |
Discriminatore del tipo di API (Mcp). |
error.message |
Stringa di errore, in caso di malfunzionamento. |
error.type |
Categoria di errore, in caso di mancata riuscita. |
Campi aggiuntivi per strumenti/elenco
| Metrica | Descrizione |
|---|---|
ToolCount |
Numero di strumenti restituiti nella risposta. |
Campi aggiuntivi in strumenti/chiamate
| Property | Descrizione |
|---|---|
gen_ai.tool.name |
Strumento richiamato dall'agente. |
gen_ai.tool.type |
Tipo di strumento. |
gen_ai.tool.call.arguments |
Argomenti JSON. Presente solo quando la registrazione del payload è abilitata. |
gen_ai.tool.call.result |
Risultato JSON. Presente solo quando la registrazione del payload è abilitata. |