Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leert u welke telemetrie Azure API Management verzendt voor verkeer naar MCP-servers, hoe u payloadlogboekregistratie inschakelt voor hulpprogrammaargumenten en resultaten en hoe u query's uitvoert op de gegevens in Azure Monitor.
Prerequisites
Een API Management-exemplaar met ten minste één MCP-server. Zie Een REST API beschikbaar maken als een MCP-server of een bestaande MCP-server beschikbaar maken.
Een Application Insights-resource die is gekoppeld aan uw API Management-exemplaar. Zie Application Insights configureren voor Azure API Management voor meer informatie.
Standaardtelemetrie voor MCP-servers
Voor elke MCP-aanvraag schrijft API Management een Application Insights-aanvraagrij met MCP-specifieke dimensies en stelt het standaardduurveld in. U kunt latentie per hulpprogramma weergeven zonder dat u een configuratie hoeft te wijzigen. Zie de sectie MCP-telemetriereferentie verderop in dit artikel voor meer informatie.
Note
MCP-telemetrie volgt de semantische OpenTelemetry-conventies voor generatieve AI, waarmee standaardnamen van telemetriekenmerken worden gedefinieerd (bijvoorbeeld gen_ai.*) zodat gegevens consistent zijn in verschillende hulpprogramma's.
Payloadregistratie inschakelen voor argumenten en resultaten
Api Management legt standaard niet de argumenten en resultaten van hulpprogramma-aanroepen vast. Om opname voor een MCP-server in te schakelen:
Navigeer in de Azure portal naar uw API Management-instantie.
Selecteer API's>MCP-servers en selecteer vervolgens de MCP-server die u wilt registreren.
Selecteer Instellingen>Diagnostische logboeken.
Logboekregistratie van front-end- en back-endpayloads inschakelen. Selecteer Opslaan.
Waarschuwing
Hulpprogrammaargumenten en -resultaten kunnen vragen, klantgegevens of geheimen bevatten. Schakel payloadlogboekregistratie alleen in voor de MCP-servers en -omgevingen waar u deze nodig hebt. Pas scrubbing of claim allowlists toe vóór de brede implementatie.
Query's uitvoeren op MCP-verkeer met KQL
Hier volgen voorbeelden van Kusto-query's die u in Azure Monitor kunt uitvoeren om MCP-verkeer te analyseren. Vervang in deze voorbeelden indien sales-mcp van toepassing door de naam van uw MCP-server.
De laatste 50 hulpprogramma-aanroepen weergeven op een bepaalde MCP-server
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
Top MCP-clients op basis van het aantal toolaanroepen
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
p50- en p95-latentie per hulpprogramma gedurende de afgelopen 24 uur
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
Foutpercentage per hulpprogramma in de loop van de tijd
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
Argumenten controleren die naar een specifiek hulpprogramma zijn verzonden
Zorg er in dit scenario voor dat payloadlogboekregistratie is ingeschakeld voor de MCP-server.
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"]
Aangepaste dimensies toevoegen met het traceringsbeleid
Als u gegevens wilt vastleggen die zich niet in het ingebouwde schema bevinden, bijvoorbeeld een aangepaste x-agent-id header, een JWT-claim of een correlatie-id, gebruikt u het traceringsbeleid binnen het bereik van de MCP-server.
Warning
Open context.Response.Body niet vanuit beleidsregels die aan het MCP-bereik zijn gekoppeld. MCP-antwoorden worden gestreamd en het lezen van de hoofdtekst breekt de stroom af.
MCP-telemetriereferentie
De volgende dimensies worden weergegeven op elke MCP-aanvraag:
| Property | Beschrijving |
|---|---|
gen_ai.operation.name |
JSON-RPC methode (hulpprogramma's/lijsten of hulpprogramma's/aanroepen). |
gen_ai.conversation.id |
MCP-sessie-id. |
network.protocol.name |
Protocolnaam (MCP). |
network.protocol.version |
Protocolversie. |
auth.type |
Methode voor binnenkomende verificatie. |
user_agent.name |
MCP-clientnaam (bijvoorbeeld vscode of claude-desktop). |
user_agent.version |
MCP-clientversie. |
service.name |
MCP-servernaam. |
service.version |
MCP-serverversie. |
api.type |
Api-typediscriminatie (Mcp). |
error.message |
Foutmelding, indien een fout optreedt. |
error.type |
Foutcategorie bij een fout. |
Aanvullende velden in hulpprogramma's/lijsten
| Metrisch | Beschrijving |
|---|---|
ToolCount |
Het aantal hulpprogramma's dat in het antwoord is geretourneerd. |
Aanvullende velden bij tools/aanroep
| Property | Beschrijving |
|---|---|
gen_ai.tool.name |
Hulpprogramma dat de agent heeft aangeroepen. |
gen_ai.tool.type |
Hulpprogrammatype. |
gen_ai.tool.call.arguments |
JSON-argumenten Alleen aanwezig wanneer payloadlogging is ingeschakeld. |
gen_ai.tool.call.result |
JSON-resultaat Alleen aanwezig wanneer payload-logging is ingeschakeld. |