Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, você aprenderá quais dados de telemetria o Gerenciamento de API do Azure emite para o tráfego destinado a servidores MCP, como habilitar o registro em log da carga útil para argumentos e resultados da ferramenta e como consultar os dados no Azure Monitor.
Pré-requisitos
Uma instância de Gerenciamento de API com pelo menos um servidor MCP. Consulte Expor uma API REST como um servidor MCP ou expor um servidor MCP existente.
Um recurso do Application Insights vinculado à instância de Gerenciamento de API. Para obter mais informações, consulte Configurar o Application Insights para Gerenciamento de API do Azure.
Telemetria padrão para servidores MCP
Para cada solicitação MCP, o Gerenciamento de API grava uma linha de solicitações do Application Insights com dimensões específicas do MCP e define o campo de duração padrão. Você pode mapear a latência por ferramenta sem alterar nenhuma configuração. Para obter detalhes, consulte a seção de referência de telemetria do MCP , mais adiante neste artigo.
Note
A telemetria mcp segue as convenções semânticas OpenTelemetry para IA gerativa, que definem nomes de atributo de telemetria padrão (por exemplo, gen_ai.*) para que os dados sejam consistentes entre as ferramentas.
Habilitar o registro em log de payload para argumentos e resultados
Por padrão, o Gerenciamento de API não captura os argumentos e os resultados das chamadas de ferramenta. Para habilitar a captura para um servidor MCP:
No portal do Azure, acesse sua instância de Gerenciamento de API.
Selecione APIs>Servidores MCP e, em seguida, selecione o servidor MCP que você deseja registrar em log.
Selecione Configurações>Logs de Diagnóstico.
Habilite o registro de payloads do Frontend e do Backend. Selecione Salvar.
Cuidado
Os argumentos e os resultados da ferramenta podem incluir prompts, dados do cliente ou segredos. Habilite o registro de payloads somente nos servidores MCP e nos ambientes em que isso for necessário. Aplique listas de permissões de anulação ou declaração antes da distribuição ampla.
Consultar o tráfego MCP com KQL
Veja a seguir exemplos de consultas Kusto que você pode executar em Azure Monitor para analisar o tráfego MCP. Nesses exemplos, substitua sales-mcp pelo nome do servidor MCP, quando aplicável.
Listar as últimas 50 chamadas de ferramenta em um determinado 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 de 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 erros 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 para uma ferramenta específica
Para esse cenário, certifique-se de que o registro de payload esteja habilitado no 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"]
Adicionar dimensões personalizadas com a política de rastreamento
Para capturar dados que não estão no esquema interno - por exemplo, um cabeçalho personalizado x-agent-id , uma declaração JWT ou uma ID de correlação - use a política de rastreamento no escopo do servidor MCP.
Warning
Não acesse context.Response.Body nas políticas vinculadas ao escopo do MCP. As respostas do MCP são transmitidas em fluxo, e a leitura do corpo causa uma disruptura nessa transmissão.
Referência de telemetria do MCP
As seguintes dimensões aparecem em cada solicitação MCP:
| Propriedade | Description |
|---|---|
gen_ai.operation.name |
método JSON-RPC (tools/list ou tools/call). |
gen_ai.conversation.id |
ID da sessão do 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 do cliente MCP. |
service.name |
Nome do servidor MCP. |
service.version |
Versão do servidor MCP. |
api.type |
Tipo de discriminador de API (Mcp). |
error.message |
Cadeia de caracteres de erro, em caso de falha. |
error.type |
Categoria de erro, em caso de falha. |
Campos adicionais na lista de ferramentas
| Metric | Description |
|---|---|
ToolCount |
Número de ferramentas retornadas na resposta. |
Campos adicionais nas ferramentas/chamadas
| Propriedade | Description |
|---|---|
gen_ai.tool.name |
Ferramenta que o agente invocou. |
gen_ai.tool.type |
Tipo de ferramenta. |
gen_ai.tool.call.arguments |
Argumentos em JSON. Presente somente quando o registro em log de payload estiver habilitado. |
gen_ai.tool.call.result |
Resultado em JSON. Presente somente quando o registro em log de payload estiver habilitado. |