docs(ms-ai-architect): KB-refresh LOW 23/52 — logging-analytics-ai-traffic: KQL ModelDeploymentName→DeploymentName, subscription/bruker-spørringer join mot ApiManagementGatewayLogs på CorrelationId

This commit is contained in:
Kjell Tore Guttormsen 2026-06-24 12:15:37 +02:00
commit 2a77e7f606

View file

@ -1,6 +1,6 @@
# Logging & Analytics for AI Traffic in APIM
**Last updated:** 2026-02
**Last updated:** 2026-06-24
**Status:** GA
**Category:** API Management & AI Gateway
@ -197,7 +197,7 @@ ApiManagementGatewayLlmLog
TimeGenerated,
CorrelationId,
OperationName,
ModelDeploymentName,
DeploymentName,
PromptTokens,
CompletionTokens,
TotalTokens,
@ -209,21 +209,28 @@ ApiManagementGatewayLlmLog
PromptTokens = max(PromptTokens),
CompletionTokens = max(CompletionTokens),
TotalTokens = max(TotalTokens)
by TimeGenerated, CorrelationId, OperationName, ModelDeploymentName
by TimeGenerated, CorrelationId, OperationName, DeploymentName
| where isnotempty(Input) and isnotempty(Output)
```
### KQL: Token-forbruk per applikasjon per dag
```kusto
// Per-applikasjon krever join mot ApiManagementGatewayLogs (ApimSubscriptionId)
// på CorrelationId — ApiManagementGatewayLlmLog har ingen subscription-kolonne.
ApiManagementGatewayLlmLog
| where TimeGenerated > ago(30d)
| join kind=leftouter (
ApiManagementGatewayLogs
| where TimeGenerated > ago(30d)
| distinct CorrelationId, ApimSubscriptionId
) on CorrelationId
| summarize
TotalPromptTokens = sum(PromptTokens),
TotalCompletionTokens = sum(CompletionTokens),
TotalTokens = sum(TotalTokens),
RequestCount = count()
by bin(TimeGenerated, 1d), SubscriptionName = tostring(split(OperationName, "/")[0])
by bin(TimeGenerated, 1d), ApimSubscriptionId
| order by TimeGenerated desc
```
@ -236,14 +243,14 @@ ApiManagementGatewayLlmLog
PromptTokens = sum(PromptTokens),
CompletionTokens = sum(CompletionTokens),
Requests = count()
by ModelDeploymentName
by DeploymentName
| extend EstimatedCostUSD =
case(
ModelDeploymentName contains "gpt-4o",
DeploymentName contains "gpt-4o",
(PromptTokens / 1000000.0 * 2.5) + (CompletionTokens / 1000000.0 * 10.0),
ModelDeploymentName contains "gpt-4o-mini",
DeploymentName contains "gpt-4o-mini",
(PromptTokens / 1000000.0 * 0.15) + (CompletionTokens / 1000000.0 * 0.60),
ModelDeploymentName contains "gpt-4",
DeploymentName contains "gpt-4",
(PromptTokens / 1000000.0 * 30.0) + (CompletionTokens / 1000000.0 * 60.0),
0.0
)
@ -321,13 +328,19 @@ APIM tilbyr et innebygd Azure Monitor-basert dashboard under **Monitoring > Anal
### KQL: Topp-brukere etter token-forbruk
```kusto
// Brukeridentitet ligger i ApiManagementGatewayLogs — join på CorrelationId.
ApiManagementGatewayLlmLog
| where TimeGenerated > ago(7d)
| join kind=leftouter (
ApiManagementGatewayLogs
| where TimeGenerated > ago(7d)
| distinct CorrelationId, ApimSubscriptionId
) on CorrelationId
| summarize
TotalTokens = sum(TotalTokens),
Requests = count(),
AvgTokensPerRequest = avg(TotalTokens)
by SubscriptionId
by ApimSubscriptionId
| order by TotalTokens desc
| take 20
```