Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste artigo, vai aprender que telemetria o API Management do Azure emite relativamente ao tráfego para servidores MCP, como ativar o registo da carga útil dos argumentos e dos resultados das ferramentas e como consultar os dados no Azure Monitor.
Pré-requisitos
Uma instância de Gestão de API com pelo menos um servidor MCP. Veja Expor uma API REST como servidor MCP ou Expor um servidor MCP existente.
Um recurso Application Insights ligado à sua instância de Gestão de APIs. Para mais informações, consulte Configurar Application Insights para API Management do Azure.
Telemetria padrão para servidores MCP
Para cada pedido MCP, a API Management escreve uma linha de pedidos Application Insights com dimensões específicas do MCP e define o campo de duração padrão. Podes registar a latência por ferramenta sem mudar qualquer configuração. Para mais detalhes, consulte a secção de referência de telemetria MCP , mais adiante neste artigo.
Note
A telemetria MCP segue as convenções semânticas da OpenTelemetry para IA generativa, que definem nomes padrão de atributos de telemetria (por exemplo, gen_ai.*) para que os dados sejam consistentes entre as ferramentas.
Ativar o registo de dados para argumentos e resultados
Por defeito, a Gestão de APIs não capta os argumentos e resultados das chamadas de ferramenta. Para permitir a captura num servidor MCP:
No portal do Azure, vá para sua instância de Gerenciamento de API.
Selecione APIs,>servidores MCP e depois selecione o servidor MCP que quer logar.
Selecione Definições>Registos de diagnóstico.
Ativar o registo da carga útil do frontend e do backend. Selecione Guardar.
Atenção
Os argumentos e resultados da ferramenta podem incluir instruções, dados de cliente ou informação confidencial. Ative o registo de payload apenas para os servidores MCP e ambientes onde for necessário. Aplica o scrubbing ou declara listas de permissões antes de uma implementação abrangente.
Consultar o tráfego MCP com KQL
Seguem-se exemplos de consultas Kusto que pode executar no Azure Monitor para analisar o tráfego MCP. Nestes exemplos, substitua sales-mcp pelo nome do seu servidor MCP quando aplicável.
Liste as últimas 50 chamadas de ferramenta num dado servidor 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
Principais clientes MCP por volume de chamadas de ferramentas
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
Latência P50 e P95 por ferramenta nas últimas 24 horas
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
Taxa de erro por ferramenta ao longo do 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
Inspecionar argumentos enviados a uma ferramenta específica
Neste cenário, certifique-se de que o registo de payload está ativado para o servidor 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"]
Adicione dimensões personalizadas com a política de rastreamento
Para capturar dados que não estão no esquema integrado — por exemplo, um cabeçalho personalizado x-agent-id, uma declaração JWT ou um identificador de correlação — utilize a política trace ao nível do servidor MCP.
Warning
Não acedas context.Response.Body a partir de políticas associadas ao âmbito do MCP. As respostas do MCP são transmitidas por streaming, e ler o corpo da resposta interrompe o fluxo.
Referência de telemetria MCP
As seguintes dimensões aparecem em cada pedido MCP:
| Property | Description |
|---|---|
gen_ai.operation.name |
método JSON-RPC (tools/list ou tools/call). |
gen_ai.conversation.id |
ID da sessão MCP. |
network.protocol.name |
Nome do protocolo (MCP). |
network.protocol.version |
Versão do protocolo. |
auth.type |
Método de autenticação de entrada. |
user_agent.name |
Nome do cliente MCP (por exemplo, vscode ou claude-desktop). |
user_agent.version |
Versão cliente MCP. |
service.name |
Nome do servidor MCP. |
service.version |
Versão do servidor MCP. |
api.type |
Discriminador de tipo de API (Mcp). |
error.message |
Sequência de erro, em caso de falha. |
error.type |
Categoria de erro, em caso de falha. |
Campos adicionais nas ferramentas/listas
| Métrico | Description |
|---|---|
ToolCount |
Número de ferramentas devolvidas na resposta. |
Campos adicionais nas ferramentas/chamada
| Property | Description |
|---|---|
gen_ai.tool.name |
Ferramenta que o agente invocou. |
gen_ai.tool.type |
Tipo de ferramenta. |
gen_ai.tool.call.arguments |
Argumentos JSON. Só está presente quando o registo da carga útil está ativado. |
gen_ai.tool.call.result |
Resultado, JSON. Só está presente quando o registo da carga útil está ativado. |