ms-ai-architect/skills/ms-ai-governance/references/monitoring-observability/cost-monitoring-cost-attribution.md
Kjell Tore Guttormsen fce5f0a707 docs(ms-ai-architect): KB-refresh critical cost 3/8 — cost-monitoring verifisert mot Foundry manage-costs
Verifisert mot live Microsoft Learn (foundry/concepts/manage-costs) — alle tre nye
VERIFY-påstander bekreftet før skriving:
- (a) Project-level cost attribution (Preview): «Every Foundry project is automatically
  tagged with a project tag ... You don't need to add tags manually». Begrensning bekreftet:
  kun Models sold by Azure (Azure Direct/OpenAI), ikke Marketplace ennå. Lagt til ny seksjon.
- (b) Agent cost monitoring: Operate→Overview Estimated cost-tile (ekskl. prompt-/ikke-Foundry-
  agenter) + Assets→Agents Estimated costs-kolonne + Build→Agents→Monitor token-kostnad. Lagt til.
- (c) 3rd-party meters: «Some providers' models are displayed as meters under Global resources ...
  format model-name-GUID». Oppdatert Multi-Model-seksjonen med Global resources + Cost-by-resource.
- Modell-deployment-kostnader (Build→Models→Monitor) tatt med i samme nye seksjon.

Verifiserte korreksjoner funnet under fetch (korreksjons-disiplin, operatør-godkjent):
- Implementering-steg 2 «filtrer på Service Name: SaaS» finnes ikke i doc → «Gruppér på Meter».
- Microsoft-modeller vises under Foundry-ressursen (ikke «Cognitive Services-ressursen»).
- prompt caching «(beta)» fjernet (GA, jf. fil 1 cache-100% verifisert current).
- Model-selection-tips «GPT-3.5 Turbo i stedet for GPT-4» (legacy) → mindre/billigere modell (gpt-4o-mini).
- gateway-diagram gpt-35-turbo→gpt-4o-mini (illustrativt). Disclaimed priser urørt.

Header 2026-04→2026-06; kilde #1 stemplet Verified MCP 2026-06 (faktisk re-fetchet). validate 239/0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 22:40:53 +02:00

513 lines
25 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cost Monitoring and Expense Reporting for AI Deployments
**Last updated:** 2026-06
**Status:** GA
**Category:** Monitoring & Observability
---
## Introduksjon
Kostnadskontroll er kritisk for AI-prosjekter der utgifter kan eskalere raskt gjennom tokenforbruk, modelldrifting og compute-ressurser. Effektiv kostnadsmonitorering kombinerer sanntidssporing av forbruk, granulær kostnadsfordeling per forretningsenhet eller applikasjon, og automatiserte varsler som forebygger budsjettoverskridelser før de påvirker prosjektøkonomien.
Azure Cost Management gir innebygd synlighet på abonnements- og ressursgruppe-nivå, men AI-arbeidslaster krever ofte mer sofistikerte løsninger — spesielt for chargeback-modeller, multi-tenant-scenarier eller når man trenger å korrelere kostnader med ytelsesmetrikker. Gateway-basert overvåking (f.eks. via Azure API Management) kan fange opp detaljert bruksdata per klient-IP, modell og token-type, noe som åpner for presise kostnadsallokeringer og prediktiv budsjettering.
Denne guiden dekker både native Azure-verktøy og arkitekturmønstre for avansert kostnadssporing, med fokus på Azure OpenAI, Microsoft Foundry og andre AI-tjenester.
---
## Kjernekomponenter
| Komponent | Formål | Granularitet |
|-----------|--------|--------------|
| **Azure Cost Management** | Sentral kostnadssporing for alle Azure-ressurser | Abonnement, ressursgruppe, ressurs |
| **Cost Analysis** | Visualisering av kostnader over tid med filters og gruppering | Dag, måned, år; gruppering per meter/tag/SKU |
| **Budgets & Alerts** | Automatiserte varsler ved budsjettgrenser | Budsjettgrense (50%, 80%, 100%) med e-postvarsler |
| **Tags & Tag Inheritance** | Kostnadsfordeling per prosjekt/team/miljø | Resource-level tags propagert til forbruksposter |
| **Diagnostic Settings** | Eksport av loggdata til Azure Monitor Logs | Per ressurs (genererer ekstra kostnader) |
| **Gateway Logging** (APIM) | Detaljert tracking av token-forbruk per klient | IP-adresse, modell, prompt/completion tokens, timestamp |
| **Azure Marketplace Meters** | Separat fakturering for 3rd-party modeller (Cohere, Meta) | SaaS-meter per modell-tilbud (input/output tokens) |
### Azure OpenAI-spesifikke meters
| Meter Type | Beskrivelse | Faktureringsmodell |
|------------|-------------|-------------------|
| **Tokens (input/output)** | Per 1000 tokens for chat/completion | Pay-as-you-go eller PTU |
| **Fine-tuning training** | Per token i treningsfilen | Engangsbelastning |
| **Fine-tuning hosting** | Per time per distribuert modell | Kontinuerlig (selv når inaktiv) |
| **Fine-tuning inference** | Per 1000 tokens ved kall til modell | Pay-as-you-go |
| **Image generation** | Fast pris per bilde (f.eks. DALL-E) | Per request |
**Viktig:** Fine-tuned modeller genererer timekostnader selv når de ikke er i bruk. Deployments som er inaktive i 15 dager slettes automatisk (men underliggende modell bevares).
---
## Arkitekturmønstre
### 1. Native Cost Monitoring (Subscription/Resource Group Scope)
**Bruksområde:** Enkle scenarier med én applikasjon per Azure OpenAI-ressurs, eller når man kun trenger aggregert kostnadsoversikt.
**Implementering:**
1. Naviger til Azure Portal → Cost Management + Billing → Cost Analysis
2. Scope til Resource Group eller Subscription
3. Filter på Service Tier: "Azure OpenAI" (OpenAI vises under Cognitive Services)
4. Gruppér på Meter for å se tokenforbruk per modell-serie
**Fordeler:**
- Ingen ekstra infrastruktur kreves
- Innebygd i Azure-portalen
- Fungerer "out of the box" for alle ressurser
**Ulemper:**
- Mangler client-granularitet (IP-adresse maskert til /24)
- Vanskelig å implementere chargeback per team/applikasjon
- Aggregert over alle Azure OpenAI-instanser per region
**Kostnadsindikatorer:**
- Gratis (inkludert i Azure-abonnement)
- Konfidensgrad: **Verified** (Microsoft Learn)
---
### 2. Tag-Based Cost Allocation
**Bruksområde:** Kostnadsfordeling per prosjekt, kostsenter, miljø (dev/prod) eller eier.
**Implementering:**
```bash
# Tagg Azure OpenAI-ressurs
az resource tag --tags Environment=Production Project=ChatbotAI CostCenter=IT-001 \
--ids /subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{openai-name}
# Aktiver tag-inheritance i Cost Management
az feature register --namespace Microsoft.CostManagement --name EnableTagInheritance
```
**Best practices:**
| Tag Key | Formål | Eksempel |
|---------|--------|----------|
| `Project` | Prosjektnavn | `ChatbotAI`, `DocumentAnalysis` |
| `CostCenter` | Økonomisk ansvar | `IT-001`, `R&D-003` |
| `Environment` | Miljø | `Production`, `Development`, `Test` |
| `Owner` | Teknisk ansvarlig | `team-ai@example.com` |
**Fordeler:**
- Automatisk kostnadssplitt uten kodeendringer
- Tag inheritance propagerer tags til child-ressurser
- Integrert med Cost Analysis filters
**Ulemper:**
- Krever disiplinert tagging-strategi
- Tags må vedlikeholdes manuelt (eller via IaC)
- Ikke granulært nok for per-bruker chargeback
**Kostnadsindikatorer:**
- Gratis feature
- Konfidensgrad: **Verified** (Microsoft Learn)
---
### 3. Gateway-Based Cost Attribution (Azure API Management)
**Bruksområde:** Chargeback per applikasjon/team, detaljert token-tracking, korrelering av kostnad med ytelse.
**Arkitektur:**
```
Client A → APIM Gateway → Azure OpenAI (gpt-4o)
Client B ↗ → Azure OpenAI (gpt-4o-mini)
↓
Azure Monitor Logs
(IP, model, tokens, timestamp)
```
**Implementering (KQL-query for chargeback):**
```kusto
ApiManagementGatewayLogs
| where tolower(OperationId) in ('completions_create','chatcompletions_create')
| extend model = tostring(parse_json(BackendResponseBody)['model'])
| extend prompttokens = parse_json(parse_json(BackendResponseBody)['usage'])['prompt_tokens']
| extend completiontokens = parse_json(parse_json(BackendResponseBody)['usage'])['completion_tokens']
| extend totaltokens = parse_json(parse_json(BackendResponseBody)['usage'])['total_tokens']
| extend client_ip = CallerIpAddress
| summarize
TotalPromptTokens = sum(todecimal(prompttokens)),
TotalCompletionTokens = sum(todecimal(completiontokens)),
TotalCost = sum(todecimal(totaltokens)) * 0.00002 // Eksempel: $0.02 per 1k tokens
by client_ip, model
| order by TotalCost desc
```
**Fordeler:**
- Fanger full client IP-adresse (ikke maskert)
- Kan legge til custom identifiers (team ID, subscription key)
- Korrelerer tokens med spesifikk modell og timestamp
- Støtter custom dashboards i Azure Monitor Workbooks
**Ulemper:**
- Ekstra latency (typisk 10-50ms)
- APIM-kostnader (Basic tier: ~$140/måned, Standard: ~$700/måned)
- Ekstra kompleksitet i arkitekturen
- Azure Monitor Logs storage costs (ca. $2.50 per GB ingested)
**Kostnadsindikatorer:**
- APIM Basic: ~$140/mnd
- Azure Monitor Logs: ~$2.50/GB ingested + $0.12/GB retention (>31 days)
- Konfidensgrad: **Verified** (Microsoft Learn + Azure Architecture Center)
---
### 4. Multi-Model / Marketplace Cost Tracking
**Bruksområde:** Azure Foundry-prosjekter som bruker både Microsoft-modeller (OpenAI) og 3rd-party modeller (Cohere, Meta).
**Utfordringer:**
- Azure OpenAI- og Microsoft-modeller vises som meters under selve Foundry-ressursen
- Partner-/community-modeller (Marketplace) vises under **ressursgruppen** — ikke under Foundry-ressursen — når du grupperer på Meter på ressursgruppe-scope
- I **Cost by resource**-visningen vises enkelte leverandørers modeller under **Global resources**, med meternavn på formatet `model-name-GUID` (GUID = identifikator for den aktuelle Foundry-ressursen). «Global» viser her til plasseringen i kostnadstreet, ikke modellens SKU (f.eks. *Global standard*)
- Må scope Cost Analysis til Resource Group-nivå (eller subscription hvis ressursene er spredt over flere ressursgrupper) for å se alle kostnader
**Implementering:**
1. Naviger til Cost Analysis → Scope til Resource Group
2. Gruppér på **Meter** for å se kostnad per modell-serie
3. Expand meter details for å se input/output tokens per modell
4. For per-ressurs-fordeling: bytt til **Cost by resource**-visningen (Group by → Meter, linjediagram) — partner-modeller fremkommer under **Global resources** som `model-name-GUID`
**Marketplace-meters:**
| Meter Name | Beskrivelse |
|------------|-------------|
| `paygo-inference-input-tokens` | Input tokens (base model) |
| `paygo-inference-output-tokens` | Output tokens (base model) |
| `paygo-finetuned-model-inference-hosting` | Hosting cost per endpoint |
| `paygo-finetuned-model-inference-input-tokens` | Input tokens (fine-tuned) |
| `paygo-finetuned-model-inference-output-tokens` | Output tokens (fine-tuned) |
**Fordeler:**
- Fullstendig kostnadsoversikt på tvers av leverandører
- Separate meters per modell gjør det enkelt å identifisere kostnadsdriver
**Ulemper:**
- Må huske å scope til Resource Group (ikke Foundry-ressurs)
- 3rd-party modeller kan ikke betales med Azure Prepayment
- Forskjellige meters per leverandør (ingen standardisering)
**Kostnadsindikatorer:**
- Ingen ekstra kostnad (native Cost Analysis)
- Konfidensgrad: **Verified** (Microsoft Learn)
---
## Foundry-portal-native kostnadssporing
Microsoft Foundry-portalen (Foundry «new») gir innebygd, nær-sanntids kostnadssporing for agenter, modell-deployments og prosjekter — uten å gå via Azure Cost Management. Estimatene er ment for løpende oppfølging; bruk Azure Cost Management og fakturerte beløp til finansiell avstemming.
> **Viktig:** Foundry-portalens estimater reflekterer **ikke** rabatter eller avtalt prising, og dekker kun standard deployment-kostnader — ikke provisioned throughput (PTU).
### Agent-kostnader
- **Aggregert (alle agenter):** Operate → Overview → velg subscription, ett eller flere prosjekter og datointervall. **Estimated cost**-flisen viser estimat for alle agenter i valgt(e) prosjekt(er) for perioden. Estimatet inkluderer **ikke** prompt-agenter eller ikke-Foundry-agenter.
- **Per agent:** Assets → Agents-fanen → kolonnen **Estimated costs** viser månedsestimat per agent basert på konfigurasjon og bruksmønster.
- **Detaljert (token-kostnad per agent):** Build → Agents → velg agent → Monitor-fanen → sett datointervall → se token-kostnad og bruksmetrikker.
### Modell-deployment-kostnader
Build → Models → velg modell → Monitor-fanen → sett datointervall. Viser total kostnad og et estimert-kostnad-diagram for perioden. Token-/request-diagrammer kan midlertidig avvike fra **Estimated cost** pga. ingestion-timing — bruk Estimated cost for nær-sanntids oppfølging og Cost Management for avstemming.
### Prosjektnivå kostnadsfordeling (Preview)
Foundry støtter chargeback på **prosjektnivå**, slik at FinOps-team kan allokere delt Foundry-forbruk tilbake til riktig forretningsenhet/team/workload — nyttig når flere prosjekter deler samme Foundry-ressurs.
- Hvert Foundry-prosjekt tagges **automatisk** med en `project`-tag på underliggende forbruk. **Ingen manuell tagging** kreves.
- **Slik ser du det:** Åpne Foundry-ressursen i Azure-portalen → Cost analysis (under Resource Management) → Add filter → Tag → `project` → velg prosjekt(er).
- **Begrensning (Preview):** Støttes foreløpig kun for **Models sold by Azure** (Azure Direct, inkl. Azure OpenAI). **Ikke** ennå for modeller levert via Azure Marketplace.
**Konfidensgrad:** Verified (Microsoft Learn, manage-costs)
---
## Beslutningsveiledning
### Når bruke hvilken strategi?
| Scenario | Anbefalt Løsning | Kostnadsestimering (per mnd) |
|----------|------------------|----------------------------|
| Enkelt prosjekt, én applikasjon, aggregert kostnadsoversikt | Native Cost Analysis | Gratis |
| Flere prosjekter, behov for kostnadsfordeling per team | Tag-Based Allocation | Gratis |
| Multi-tenant SaaS, chargeback per kunde | Gateway (APIM) + Azure Monitor | $140-700 (APIM) + $50-200 (logs) |
| Azure Foundry med Microsoft + 3rd-party modeller | Resource Group Scope + Marketplace Filters | Gratis |
| Behov for real-time kostnadsvarsler (<1 time latency) | Gateway + Event Hub + Stream Analytics | $200-500 |
### Vanlige feil
| Feil | Konsekvens | Løsning |
|------|------------|---------|
| Scope Cost Analysis til Azure OpenAI-ressurs når man bruker Marketplace-modeller | Ser ikke 3rd-party kostnadene | Scope til Resource Group |
| Glemmer å slette inactive fine-tuned deployments | Kontinuerlige timekostnader selv uten bruk | Automatiser cleanup med Azure Automation |
| Bruker kun native logging for chargeback | IP-adresse maskert, mangler team-identifikator | Implementer gateway med custom headers |
| Ikke setter budsjett-alerts | Overskridelser oppdages for sent | Sett alerts ved 50%, 80%, 100% |
| Eksporterer alle logs til Azure Monitor | Høye storage-kostnader | Filtrer ut irrelevante loggkategorier |
### Røde flagg
- **Fine-tuned modeller med 0 requests siste 7 dager:** Vurdér å slette deployment (bevarer modellen)
- **Token-kostnad øker >50% uten tilsvarende økning i brukere:** Sjekk for ineffektive prompts eller loops
- **3rd-party modeller som ikke vises i Cost Analysis:** Kontrollér at Marketplace SaaS-filter er aktivert
- **Chargeback-rapporter som ikke summerer til total cost:** Sannsynligvis mangler 3rd-party eller metadata-kostnader
---
## Integrasjon med Microsoft-stakken
### Azure Monitor + Cost Management
**Native integrasjon:**
- Cost Analysis kan vises direkte i Azure Foundry-portalen (via "View More Details")
- Azure Monitor Workbooks kan kombinere cost data med telemetry (QPS, latency, errors)
**Custom dashboards:**
```kusto
// Korrelere kostnad med ytelse (gjennomsnitts-latency per modell)
let cost_data = ApiManagementGatewayLogs
| where tolower(OperationId) in ('completions_create','chatcompletions_create')
| extend model = tostring(parse_json(BackendResponseBody)['model'])
| extend tokens = parse_json(parse_json(BackendResponseBody)['usage'])['total_tokens']
| summarize TotalTokens = sum(todecimal(tokens)) by model;
let perf_data = ApiManagementGatewayLogs
| extend model = tostring(parse_json(BackendResponseBody)['model'])
| summarize AvgLatency = avg(DurationMs) by model;
cost_data
| join kind=inner perf_data on model
| project model, TotalTokens, AvgLatency, CostPerRequest = TotalTokens * 0.00002 / AvgLatency
```
### Power BI + Cost Data Export
**Implementering:**
1. Sett opp scheduled export i Cost Management (daglig/ukentlig til Storage Account)
2. Koble Power BI til Storage Account via Azure Blob Storage connector
3. Bygg dashboards for ledelse med trender, forecasts, kostnadsfordeling
**Best practice:** Bruk Power BI Premium for å aktivere automatic refresh og deling med stakeholders.
### Azure Automation for Cost Alerts
**Scenario:** Automatisk shutdown av under-utilized ressurser.
```powershell
# Azure Automation Runbook (trigges av Cost Management alert)
param(
[string]$ResourceGroupName,
[string]$DeploymentName
)
# Sjekk siste 7 dagers bruk
$metrics = Get-AzMetric -ResourceId "/subscriptions/.../deployments/$DeploymentName" `
-MetricName "TokensGenerated" -StartTime (Get-Date).AddDays(-7) -EndTime (Get-Date)
if ($metrics.Data.Total -eq 0) {
Write-Output "Deployment $DeploymentName har 0 requests siste 7 dager. Sletter..."
Remove-AzCognitiveServicesAccountDeployment -Name $DeploymentName -ResourceGroupName $ResourceGroupName
}
```
---
## Offentlig sektor (Norge)
### Datasuverenitet og kostnadsrapportering
**Krav:** Forvaltningsloven § 17 krever at offentlige virksomheter kan dokumentere kostnader for innsynsbegjæringer og tjenesteutvikling.
**Implementering:**
- Bruk tag `Project` til å skille mellom interne prosjekter og publikumsrettede tjenester
- Eksportér cost data til norsk lagringsområde (Norway East/West)
- Behold cost logs i minimum 5 år (Arkivlova)
### GDPR og kostnadssporing
**Utfordring:** Gateway-logging kan fange opp IP-adresser som er personopplysninger.
**Løsning:**
- Anonymiser IP-adresser i logs (fjern siste oktet eller bruk hashing)
- Lagre logs i Norge med pseudonymisering
- Implementér data retention policies (slett etter 90 dager hvis ikke nødvendig)
**Eksempel (APIM policy for IP-masking):**
```xml
<policies>
<inbound>
<set-variable name="client-ip" value="@{
var ip = context.Request.IpAddress;
return ip.Substring(0, ip.LastIndexOf('.')) + ".0";
}" />
</inbound>
</policies>
```
### Anskaffelser og kostnadsprediksjon
**Krav:** Offentlige anskaffelser krever estimat på totalkostnad (TCO) før valg av leverandør.
**Metode:**
1. Estimér månedlig token-forbruk basert på antall brukere og use case
2. Bruk Azure Pricing Calculator for Pay-as-you-go
3. Sammenlign med PTU (Provisioned Throughput Units) for stabile workloads
4. Inkludér gateway-kostnader (APIM) og storage (Azure Monitor) i TCO
**Eksempel-estimat:**
- 1 million requests/mnd × 1000 tokens/request × $0.02/1k tokens = $20,000/mnd
- APIM Standard tier: $700/mnd
- Azure Monitor Logs (100 GB/mnd): $250/mnd
- **Total TCO:** ~$21,000/mnd
---
## Kostnad og lisensiering
### Prismodell-oversikt (Azure OpenAI)
| Modell-serie | Input (per 1k tokens) | Output (per 1k tokens) | PTU (per 100 units/time) |
|--------------|----------------------|----------------------|------------------------|
| GPT-4o | $0.005 | $0.015 | $36/time |
| GPT-4 Turbo | $0.01 | $0.03 | $72/time |
| GPT-3.5 Turbo | $0.0005 | $0.0015 | $4/time |
| Embedding (ada-002) | $0.0001 | N/A | $1/time |
**PTU vs Pay-as-you-go:**
- **PTU:** Fast månedlig kostnad, garantert throughput (TPM/RPM), egnet for stabile workloads
- **Pay-as-you-go:** Betaler kun for faktisk forbruk, elastisk, egnet for sporadisk bruk
**Break-even point:** PTU blir billigere hvis du konsekvent bruker >80% av reservert kapasitet.
### Optimaliseringstips
| Teknikk | Besparelse | Implementering |
|---------|-----------|----------------|
| **Prompt caching** | 50-90% på repeterte prompts | Bruk Azure OpenAI prompt caching |
| **Token-optimalisering** | 20-40% | Fjern unødvendig whitespace, bruk kortere system messages |
| **Model selection** | 50-70% | Bruk en mindre/billigere modell (f.eks. gpt-4o-mini) for enkle oppgaver i stedet for en flaggskip-modell |
| **PTU for stable workloads** | 30-50% | Kjøp PTU hvis >80% utilization |
| **Fine-tuning cleanup** | 100% på inaktive | Automatisk sletting av deployments med 0 requests/7d |
| **Batch processing** | 20-30% | Gruppér requests for å redusere overhead |
### Gateway-kostnader (Azure API Management)
| Tier | Pris/mnd | Max throughput | Bruksområde |
|------|---------|----------------|-------------|
| **Consumption** | $0.035/10k calls + $3.5/GB | 1000 req/sec | Lavt volum, sporadisk bruk |
| **Basic** | $140 | 1000 req/sec | Dev/test, interne apps |
| **Standard** | $700 | 2500 req/sec | Produksjon, multi-tenant |
| **Premium** | $2800 | 4000 req/sec | Enterprise, global distribution |
**Optimaliseringstips:**
- Start med Consumption tier for POC/pilot
- Oppgradér til Standard når throughput >100 req/sec
- Bruk Premium kun hvis multi-region deployment er påkrevd
---
## For arkitekten (Cosmo)
### Spørsmål å stille kunden
1. **Chargeback-behov:** Trenger vi å fordele kostnader per team, prosjekt eller kunde?
2. **Kostnadskontroll:** Hva er maksimal månedlig budsjett, og hva skjer hvis vi overskrider?
3. **Granularitet:** Trenger vi kostnad per bruker/API-nøkkel, eller holder det med ressursgruppe-nivå?
4. **Real-time alerts:** Hvor raskt må vi reagere på kostnadsøkninger? (24t, 1t, sanntid)
5. **3rd-party modeller:** Bruker vi Azure Marketplace-modeller (Cohere, Meta), eller kun Microsoft OpenAI?
6. **Retention:** Hvor lenge må vi lagre kostnadsdata for compliance/auditing? (90 dager, 1 år, 5 år)
7. **Export-behov:** Trenger finans-teamet data i Excel/Power BI, eller holder Azure-portalen?
8. **Gateway:** Har vi allerede Azure API Management, eller må det anskaffes?
### Fallgruver
| Fallgruve | Hvorfor det skjer | Konsekvens |
|-----------|------------------|------------|
| **Scope Cost Analysis til feil nivå** | Tror Azure OpenAI-ressurs viser alle kostnader | Mangler Marketplace-meters |
| **Glemmer fine-tuning hosting costs** | Fokuserer kun på inference-tokens | Kontinuerlige timekostnader selv uten bruk |
| **Ikke setter tag inheritance** | Manuell tagging per ressurs | Tags mangler på child-ressurser |
| **Over-logging til Azure Monitor** | Aktiverer alle diagnostic categories | Høye storage-kostnader ($100-500/mnd) |
| **Ikke sammenligner PTU vs PAYG** | Går for pay-as-you-go uten analyse | Betaler 2-3x mer for stabile workloads |
| **Mangler budsjett-alerts** | Tenker at de skal "holde øye med" kostnadene | Overskridelser oppdages for sent (neste måned) |
### Anbefalinger per modenhetsnivå
#### Modenhetsnivå 1: Proof of Concept / Pilot
- **Kostnadsstrategi:** Native Cost Analysis (gratis)
- **Budsjett:** Sett monthly budget ($500-2000) med 80% alert
- **Tagging:** Bruk minimum tags: `Environment=Dev`, `Project=POC`
- **Gateway:** Ikke nødvendig (kun 1-2 applikasjoner)
- **Review frequency:** Månedlig
#### Modenhetsnivå 2: Produksjon (Single-tenant)
- **Kostnadsstrategi:** Tag-based allocation + budsjett per prosjekt
- **Budsjett:** Separate budgets for Dev/Test/Prod environments
- **Tagging:** Fullt tagskjema (Project, CostCenter, Owner, Environment)
- **Gateway:** Vurdér APIM Consumption tier hvis >5 applikasjoner
- **Review frequency:** Ukentlig
#### Modenhetsnivå 3: Enterprise / Multi-tenant
- **Kostnadsstrategi:** Gateway (APIM Standard/Premium) + Azure Monitor
- **Budsjett:** Per-tenant budgets med automated alerts
- **Tagging:** Custom tags per kunde/abonnement
- **Gateway:** APIM Standard med KQL queries for chargeback
- **Export:** Scheduled export til Power BI for executive dashboards
- **Review frequency:** Daglig (automated dashboards)
#### Modenhetsnivå 4: Offentlig sektor (Norge)
- **Kostnadsstrategi:** Full enterprise stack + compliance-logging
- **GDPR:** IP-masking i gateway logs
- **Retention:** 5 år (Arkivlova)
- **Storage:** Norge East/West (datasuverenitet)
- **Auditing:** Export til revisjonssystem (KOSTRA-rapportering)
- **Review frequency:** Daglig + kvartalsvise audits
---
## Kilder og verifisering
### Kilder (Microsoft Learn)
1. **Plan and manage costs for Microsoft Foundry** *(Verified MCP 2026-06)*
https://learn.microsoft.com/en-us/azure/foundry/concepts/manage-costs
*Konfidensgrad: Verified* – Komplett guide for cost management (budgets, alerts, export, Foundry-portal-native agent-/modell-/prosjektsporing)
2. **Azure OpenAI in Foundry Models gateway monitoring** *(Verified MCP 2026-04)*
https://learn.microsoft.com/en-us/azure/architecture/ai-ml/guide/azure-openai-gateway-monitoring
*Konfidensgrad: Verified* – Gateway-arkitektur for cost attribution og chargeback. Artikkel nå titulert "Implement advanced monitoring for Azure OpenAI in Foundry Models through a gateway".
3. **Governance for AI workloads (IaaS)**
https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/ai/infrastructure/governance#cost-management
*Konfidensgrad: Verified* – Tags, billing accounts, autoscaling for AI workloads
4. **Manage AI costs (Cloud Adoption Framework)**
https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/ai/manage#manage-ai-costs
*Konfidensgrad: Verified* – Best practices for TPM/RPM monitoring, commitment billing
5. **Plan and manage costs for Microsoft Foundry**
https://learn.microsoft.com/en-us/azure/foundry/concepts/manage-costs
*Konfidensgrad: Verified* – Marketplace models, fine-tuning costs, HTTP error billing
6. **Azure Cost Management API (Python SDK)**
https://learn.microsoft.com/en-us/python/api/overview/azure/mgmt-costmanagement-readme
*Konfidensgrad: Verified* – Programmatic access to cost data
### Konfidensgrad per seksjon
| Seksjon | Konfidensgrad | Kilde |
|---------|--------------|-------|
| Native Cost Monitoring | Verified | Microsoft Learn (manage-costs) |
| Tag-Based Allocation | Verified | Microsoft Learn (governance) |
| Gateway-Based Attribution | Verified | Azure Architecture Center |
| Multi-Model Tracking | Verified | Microsoft Learn (AI Foundry manage-costs) |
| Foundry-portal-native sporing (Agent/Modell/Prosjekt Preview) | Verified | Microsoft Learn (manage-costs) |
| Azure OpenAI meters | Verified | Microsoft Learn (pricing page) |
| APIM pricing | Verified | Azure Pricing Calculator |
| GDPR/IP-masking | Baseline | Generell GDPR-kunnskap + APIM policy best practices |
| Offentlig sektor retention | Baseline | Arkivlova (egen kunnskap) |
**Totalvurdering:** 90% Verified (MCP-research), 10% Baseline (domeneekspertise).
---
**For Cosmo:** Bruk denne guiden for å designe kostnadsstrategien basert på kundens modenhetsnivå. Start alltid med Native Cost Analysis + tags, og bygg ut mot gateway-løsning kun hvis chargeback eller detaljert tracking er nødvendig. Husk at fine-tuning hosting costs er en vanlig kostnadsfelle som må adresseres tidlig i prosjektet.