# SLA Monitoring and Availability Tracking for AI Services **Last updated:** 2026-05 **Status:** GA **Category:** Monitoring & Observability --- ## Introduksjon SLA-monitorering (Service Level Agreement monitoring) er en kritisk disiplin for å sikre at AI-tjenester oppfyller forventninger til tilgjengelighet, ytelse og pålitelighet. For Microsoft AI-stakken betyr dette å overvåke faktisk oppetid mot avtalt tilgjengelighetsprosent (typisk 99.9%), måle responstider, og automatisk varsle når tjenesten ikke møter kontraktsfestede krav. Azure OpenAI tilbyr SLA for både tilgjengelighet (Availability SLA) og latens (Latency SLA for Provisioned-Managed deployments). Effektiv SLA-monitorering krever ikke bare sanntids metrics, men også historisk dataanalyse, automatisert alerting, og integrasjon med incident management-systemer. Azure Monitor gir ut-av-boksen støtte for dette gjennom plattform-metrics, diagnostiske logger, og forhåndskonfigurerte dashboards. SLA-monitorering skiller seg fra generell ytelsesmonitorering ved at den er styrt av en kontraktsmessig forpliktelse — ikke bare optimalisering, men juridisk bindende garantier. Dette påvirker hva som måles, hvordan data lagres (for revisjonsformål), og hvordan brudd eskaleres. ## Kjernekomponenter ### SLA-definisjoner for Azure OpenAI | SLA-type | Garantert nivå | Gjelder for | Beregningsmåte | |----------|----------------|-------------|----------------| | **Availability SLA** | 99.9% uptime | Alle Azure OpenAI-ressurser | `((Total Time - Total Downtime) / Total Time) * 100` | | **Latency SLA** | Varierer per modell | Provisioned-Managed deployments | P95/P99 responstider under definerte vilkår | | **Throughput SLA** | Ikke standard | Kan avtales separat (custom) | Requests/second eller tokens/second over tid | **Viktig:** 99.9% tilgjengelighet tillater maksimalt **9 timer downtime per år**, eller ca. **10 minutter per uke**. ### Azure Monitor-komponenter for SLA-tracking | Komponent | Funksjon | SLA-relevans | |-----------|----------|--------------| | **Platform Metrics** | Automatisk innsamling av `AvailabilityRate`, `ModelAvailabilityRate` | Sanntids tilgjengelighetsprosent | | **Diagnostic Settings** | Rute metrics til Log Analytics for langtidslagring | Revisjonsbevis og historisk analyse | | **Metric Alerts** | Automatisk varsling ved SLA-brudd (f.eks. availability < 99.9%). Støtter dynamic thresholds og multi-resource. | Proaktiv incident management | | **Simple Log Search Alerts (preview)** | Evaluerer hver logg-rad individuelt (nær-sanntid). Raskere enn tradisjonelle log alerts. | Per-request SLA-brudd oppdaget nesten umiddelbart *(Verified MCP 2026-04)* | | **Workbooks/Dashboards** | Visuell fremstilling av SLA-status over tid | Executive reporting og trend-analyse | | **Azure Service Health** | Plattformvarsler om kjente utfall | Ekstern faktor-tracking (force majeure) | ### Viktige metrics for SLA-tracking | Metric (Azure Monitor) | Beskrivelse | SLA-tildeling | Aggregering | |------------------------|-------------|---------------|-------------| | `AvailabilityRate` | `(Total Calls - Server Errors) / Total Calls` (HTTP >=500) | **Availability SLA** | Average over 5 min | | `ModelAvailabilityRate` | Tilgjengelighet per modell-deployment | **Model-specific SLA** | Min/Max/Average | | `ModelRequests` | Totalt antall API-kall | Throughput-tracking | Sum | | `StatusCode` (dimension) | HTTP-statuskoder (200, 429, 500, 503) | Feiltype-analyse | Count per kode | | `TimeToFirstToken` | Latens til første token (streaming) | **Latency SLA** (PTU) | P95, P99 | | `ContextTokens` + `GeneratedTokens` | Total token-bruk | Ressursutnyttelse (indirekte SLA-påvirkning) | Sum | **Viktig for Azure OpenAI:** `AvailabilityRate` skal **ikke brukes** for OpenAI-tjenester — bruk `ModelAvailabilityRate` i stedet (per dokumentasjon). ## Arkitekturmønstre ### 1. Multi-tier SLA Monitoring (Recommended for Production) **Brukstilfelle:** Store organisasjoner med kritiske AI-applikasjoner som krever 99.9% SLA-dokumentasjon. **Arkitektur:** ``` Azure OpenAI Resource ↓ (Platform Metrics - auto) Azure Monitor Metrics Database ↓ (Diagnostic Settings) Log Analytics Workspace ↓ (KQL queries) Azure Workbooks (SLA dashboards) + Metric Alerts ↓ (Action Groups) Incident Management (ServiceNow, Linear, PagerDuty) ↓ (Monthly aggregation) SLA Reporting (PowerBI, Excel) ``` **Fordeler:** - Fullstendig revisjonslogg i Log Analytics (30-730 dager retention) - Automatisert alerting med eskalering - Historisk analyse for SLA-beregninger (credits/refunds) **Ulemper:** - Kostnader for Log Analytics ingestion og retention - Krever oppsett av diagnostiske settings manuelt **Konfigurasjon:** ```bash # Opprett diagnostic setting for SLA-logging az monitor diagnostic-settings create \ --name sla-monitoring \ --resource /subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{name} \ --logs '[{"category":"RequestResponse","enabled":true}]' \ --metrics '[{"category":"AllMetrics","enabled":true}]' \ --workspace /subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.OperationalInsights/workspaces/{workspace} ``` ### 2. Real-time Availability Alerting (Minimum Viable) **Brukstilfelle:** Mindre prosjekter som trenger SLA-overvåking uten langtidslagring. **Arkitektur:** ``` Azure OpenAI Resource ↓ (Platform Metrics) Metric Alert Rule (Availability < 99.9% over 1 hour) ↓ Action Group (Email, SMS, Webhook) ``` **Fordeler:** - Ingen ekstra lagringskostnader - Enkel oppsett (via Azure Portal) - Umiddelbar varsling **Ulemper:** - Ingen historisk data utover 93 dager (standard metrics retention) - Begrenset til Azure Monitor metrics (ikke custom logs) **Konfigurasjon (Azure CLI):** ```bash # Opprett metric alert for SLA-brudd az monitor metrics alert create \ --name "SLA-Breach-Alert" \ --resource-group myResourceGroup \ --scopes /subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{name} \ --condition "avg ModelAvailabilityRate < 99.9" \ --window-size 1h \ --evaluation-frequency 5m \ --action /subscriptions/{sub-id}/resourceGroups/{rg}/providers/microsoft.insights/actionGroups/sla-team ``` ### 3. Hybrid Approach: Hot + Warm + Cold Analysis **Brukstilfelle:** Enterprise-løsninger med både sanntidskrav og langtids compliance. | Analyse-type | Tidsperspektiv | Verktøy | SLA-bruk | |--------------|----------------|---------|----------| | **Hot** | < 5 minutter | Metric Alerts, Azure Monitor dashboards | Umiddelbar incident response | | **Warm** | 1 time - 7 dager | Log Analytics KQL queries | Root cause analysis, trend-spotting | | **Cold** | 30 dager - 2 år | Power BI over Log Analytics, Azure Storage export | SLA-rapportering, credit-beregninger | **Fordeler:** - Balanserer kostnad mot funksjonalitet - Overholder både operasjonelle og juridiske krav **Ulemper:** - Kompleksitet i oppsett og vedlikehold ## Beslutningsveiledning ### Når bruke hvilken tilnærming? | Scenario | Anbefalt mønster | Nøkkelkrav | |----------|------------------|------------| | Produksjon med betalende kunder | Multi-tier SLA Monitoring | Log Analytics + Alerts + Workbooks | | Pilotprosjekt/POC | Real-time Availability Alerting | Metric Alerts alene | | Regulert sektor (finans, helse) | Hybrid (hot + cold) | 2+ år log retention, revisjonsbevis | | Intern tjeneste uten SLA | Ingen dedikert SLA-monitorering | Standard ytelsesmonitorering tilstrekkelig | ### Vanlige feil | Feil | Konsekvens | Hvordan unngå | |------|------------|---------------| | **Bruke `AvailabilityRate` for Azure OpenAI** | Feil metric (gjelder ikke OpenAI) | Bruk `ModelAvailabilityRate` i stedet | | **Ikke aktivere Diagnostic Settings** | Kun 93 dagers metrics-retention | Sett opp Log Analytics-export fra dag 1 | | **Varsle på enkelthendelser i stedet for trender** | False positives (transiente feil) | Bruk `windowSize` >= 5 min og `evaluationFrequency` for å dempe støy. Bruk stateful alerts for infrastruktur-events (én alert per incident) *(Verified MCP 2026-04)* | | **Glemme å ekskludere planlagt vedlikehold** | Feilaktig SLA-beregning | Korreiger downtime for Azure Service Health-hendelser | | **Lagre SLA-data i samme workspace som debugging-logger** | Overfladisk støy i SLA-rapporter | Bruk dedikert Log Analytics workspace for SLA-metrics | ### Røde flagg (når SLA er i fare) | Indikator | Terskler | Handling | |-----------|----------|----------| | `ModelAvailabilityRate` < 99.9% over **1 time** | Immediate alert | Undersøk `StatusCode` dimensjoner (429, 500, 503) | | Økende `429` (rate limit) errors | > 5% av totale requests | Øk quota eller migrer til PTU | | `503` (Service Unavailable) | > 0.1% over 5 min | Sjekk Azure Service Health, vurder failover til annen region | | P95 latens > 2x baseline | Over 15 min | Undersøk token-størrelse, modell-deployment type (PTU vs PAYG) | **KQL-spørring for SLA-beregning:** ```kql AzureMetrics | where TimeGenerated > ago(30d) | where MetricName == "ModelAvailabilityRate" | summarize AvgAvailability = avg(Average), MinAvailability = min(Minimum), P95Availability = percentile(Average, 95) by bin(TimeGenerated, 1h), Resource | where AvgAvailability < 99.9 | project TimeGenerated, Resource, AvgAvailability, MinAvailability ``` ## Integrasjon med Microsoft-stakken ### Azure Monitor → Power Platform **Use case:** Automatisk incident-opprettelse i Dataverse når SLA brytes. ``` Metric Alert (SLA breach) → Action Group (Logic App webhook) → Power Automate flow → Dataverse (Case entity) → Power Apps (incident dashboard) ``` **Fordel:** Sømløs integrering med eksisterende IT Service Management (ITSM) i Power Platform. ### Azure OpenAI → Application Insights **Use case:** Korrelere SLA-metrics med applikasjonstelemetri (user impact). - Azure OpenAI sender metrics til Azure Monitor - Application Insights SDK logger samme `OperationId` per AI-request - Correlation i Log Analytics: ```kql union AzureDiagnostics, requests | where TimeGenerated > ago(1h) | where OperationName == "ChatCompletions_Create" | join kind=inner ( AzureMetrics | where MetricName == "ModelAvailabilityRate" ) on $left.TimeGenerated == $right.TimeGenerated | project TimeGenerated, OperationId, StatusCode, AvailabilityRate ``` ### Azure Monitor → Azure DevOps / Linear **Use case:** Automatisk logging av SLA-brudd som work items. ``` Metric Alert → Azure Function (HTTP trigger) → Linear API / Azure DevOps REST API → Opprett issue med SLA-breach data ``` ## Offentlig sektor (Norge) ### Juridiske krav | Regulering | Krav til SLA-dokumentasjon | Implikasjon | |------------|----------------------------|-------------| | **Anskaffelsesforskriften** | Dokumentere faktisk oppetid mot kontraktsvilkår | Log Analytics retention >= kontraktsperiode | | **Forvaltningsloven § 11** | Forsvarlig saksbehandling (inkl. tilgjengelighet) | SLA-brudd kan være grunnlag for klage | | **GDPR Art. 32** | Sikkerhet inkluderer tilgjengelighet (integrity/availability) | SLA-monitorering er del av teknisk sikkerhet | | **AI Act (EU)** | High-risk AI må ha robustness/resilience monitoring | SLA-tracking kan være compliance-bevis | ### Datasuverenitet og SLA **Problem:** Azure OpenAI i Europa kan ha SLA påvirket av cross-region latency. **Løsning:** - Bruk **Availability Zones** (hvis tilgjengelig i regionen) for zone-redundant deployment - Aktiver **Azure Service Health alerts** for regionen (Norway East/West) - Dokumenter i ADR: "SLA gjelder for europeisk region, med forbehold om Azure-plattformens tilgjengelighet" **Eksempel (ADR-snippet):** > **Decision:** Vi aksepterer Azure OpenAIs 99.9% SLA for Norway East-regionen, med forståelse av at force majeure (Azure platform outages) kan påvirke SLA-oppfyllelse. Mitigering: Multi-region failover til West Europe ved extended outages (>15 min). ### Anbefaling for offentlige virksomheter 1. **Opprett dedikert SLA-dashboard** (Azure Workbook) med månedlig uptime-rapport for ledergruppen 2. **Lagre SLA-data i minst 5 år** (typisk kontraktsperiode + 2 år) i Log Analytics eller Azure Storage 3. **Inkluder SLA-metrics i risikovurdering (ROS)** — lav tilgjengelighet = høy risiko for tjenesteavbrudd 4. **Automatiser rapportering** til IT-avdelingen (ukentlig/månedlig) via Power Automate + Excel/Power BI ## Kostnad og lisensiering ### Prismodell | Komponent | Prising | Estimat (produksjon) | |-----------|---------|----------------------| | **Platform Metrics** (Azure Monitor) | Gratis (inkludert i Azure OpenAI) | NOK 0 | | **Log Analytics ingestion** | ~USD 2.76/GB (Norway) | NOK 300-1500/mnd (avhengig av request volume) | | **Log Analytics retention** (> 30 dager) | ~USD 0.12/GB/måned | NOK 50-200/mnd for 1 år data | | **Metric Alerts** | Gratis for første 10 regler, deretter USD 0.10/regel/mnd | NOK 10-50/mnd | | **Action Groups** | Gratis for email/webhook, SMS NOK 5/melding | Variabelt | **Optimaliseringstips:** 1. **Bruk sampling for RequestResponse logs** (f.eks. 10% av requests) hvis volumet er høyt 2. **Eksporter cold data til Azure Storage** (Blob, Cold tier) etter 90 dager — reduserer Log Analytics-kostnader med 80% 3. **Konsolider SLA-metrics i en felles Log Analytics workspace** på tvers av AI-tjenester (OpenAI, Cognitive Services, AI Search) 4. **Bruk Azure Advisor** — får varsler om ubrukte metric alert rules (kan slettes) ### Lisensiering - **Ingen spesielle lisenser kreves** for SLA-monitorering — inkludert i Azure OpenAI-abonnementet - **Azure Monitor** er en plattformtjeneste (betaler per bruk, ikke per lisens) - **Power BI Pro/Premium** trengs kun hvis SLA-rapporter skal deles bredt i organisasjonen (ikke obligatorisk) ## For arkitekten (Cosmo) ### Spørsmål å stille kunden 1. **Hva er deres faktiske SLA-krav?** → Er 99.9% tilstrekkelig, eller kreves 99.95%+ (typisk for kritiske offentlige tjenester)? → Påvirker svaret valg av deployment-type (PTU gir bedre forutsigbarhet enn PAYG). 2. **Hvor lenge må SLA-data lagres?** → Compliance-krav (5 år for offentlig sektor?) vs. operasjonelle behov (90 dager). → Påvirker kostnader (Log Analytics vs. Azure Storage export). 3. **Hvem skal varsles ved SLA-brudd, og hvordan?** → IT-drift (24/7 PagerDuty), ledelse (email-sammendrag), eller begge? → Påvirker Action Group-konfigurasjon (SMS, webhook, ITSM-integrasjon). 4. **Hvordan skal SLA-brudd dokumenteres/rapporteres?** → Automatisert månedlig rapport (Power BI), ad-hoc KQL-queries, eller integrert i eksisterende ITSM? → Påvirker dashboard-design og integrasjonspunkter. 5. **Aksepterer de Azure-plattformens force majeure-klausuler?** → Hva skjer hvis hele Azure-regionen går ned (ekstremt sjeldent, men har skjedd)? → Påvirker beslutning om multi-region failover. 6. **Brukes AI-tjenesten til kritiske sanntidsoperasjoner?** → Eksempel: ChatGPT-basert kundeservice vs. batch-prosessering av dokumenter. → Påvirker alert-sensitivitet (5 min vs. 1 time window). 7. **Har de eksisterende SLA-rapporteringsrutiner for andre tjenester?** → Kan Azure OpenAI-metrics integreres i eksisterende dashboards (Operations Manager, Grafana)? → Påvirker verktøyvalg (Azure Monitor native vs. export til third-party). 8. **Hvordan håndteres planned maintenance i SLA-beregninger?** → Skal Azure Service Health-hendelser ekskluderes fra downtime-beregning? → Påvirker KQL-queries for SLA-rapportering (filter på `MaintenanceEvent`). ### Fallgruver | Fallgruve | Hvorfor kritisk | Mitigering | |-----------|----------------|------------| | **Ikke teste SLA-alerting** | Oppdager ikke feil før det er for sent (i prod outage) | Kjør monthly alert drills (simulate SLA breach) | | **Hardkode terskler (f.eks. 99.9%)** | SLA kan endres over tid (kontraktsfornyelse) | Bruk Azure Key Vault eller App Configuration for thresholds | | **Ignorer transiente feil (HTTP 429)** | Kan maskere underliggende capacity-problemer | Track 429-rate separat — signal om quota-behov | | **Blande availability med performance** | SLA-brudd kan skyldes långsomme svar, ikke bare downtime | Overvåk både `ModelAvailabilityRate` OG `TimeToFirstToken` | | **Glemme å korrelere med Azure Service Health** | Varsler for problemer utenfor din kontroll (Azure platform issues) | Join `AzureMetrics` med Service Health events i KQL | ### Anbefalinger per modenhetsnivå | Modenhetsnivå | Anbefaling | Verktøy | |---------------|-----------|---------| | **Pilot/POC** | Basic metric alerts (email on SLA breach). Vurder Simple Log Search Alerts (preview) for per-request visibility *(Verified MCP 2026-04)* | Azure Monitor alerts (native) | | **Produksjon (liten skala)** | Diagnostic settings + Log Analytics + Workbooks | 1 Log Analytics workspace, 3-5 alert rules | | **Produksjon (stor skala)** | Multi-tier monitoring + ITSM integration | Dedicated SLA workspace, Action Groups → ServiceNow/Linear | | **Enterprise** | Hybrid (hot/warm/cold) + automated reporting + capacity planning | Power BI + Azure DevOps integration + predictive analytics | | **Regulert sektor** | Full audit trail + multi-year retention + compliance dashboards | Log Analytics (5 år) + Azure Storage (cold), export til SIEM | **Golden rule:** Start enkelt (metric alerts), utvid gradvis (Log Analytics), og automatiser rapportering (Power BI) kun når volumet krever det. ## Kilder og verifisering ### Microsoft Learn (Verified via MCP) 1. **Monitor Azure OpenAI** https://learn.microsoft.com/en-us/azure/foundry-classic/openai/how-to/monitor-openai *Confidence: Verified* — Detaljert guide til Azure Monitor-integrasjon for OpenAI. 2. **Azure OpenAI monitoring data reference** https://learn.microsoft.com/en-us/azure/foundry/openai/monitor-openai-reference *Confidence: Verified* — Fullstendig liste over metrics (inkl. `ModelAvailabilityRate`). 3. **Monitoring and diagnostics guidance** https://learn.microsoft.com/en-us/azure/architecture/best-practices/monitoring *Confidence: Verified* — SLA monitoring best practices (generell Azure-arkitektur). Dekker: tilgjengelighetssporing, ytelsesovervåkning, SLA-etterlevelse, sikkerhet/personvern, regulatorisk audit, trend-deteksjon. Brukes i AI-kontekst for å sikre end-to-end synlighet i distribuerte AI-systemer. *(Verified MCP 2026-04)* 4. **Azure OpenAI FAQ - SLA** https://learn.microsoft.com/en-us/azure/foundry-classic/openai/faq#what-are-the-slas-service-level-agreements-in-azure-openai *Confidence: Verified* — Bekreftelse av 99.9% Availability SLA + Latency SLA for PTU. 5. **Supported metrics for Microsoft.CognitiveServices/accounts** https://learn.microsoft.com/en-us/azure/azure-monitor/reference/supported-metrics/microsoft-cognitiveservices-accounts-metrics *Confidence: Verified* — `AvailabilityRate` vs. `ModelAvailabilityRate` forskjeller. 6. **Azure Monitor alerts overview** https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-overview *Confidence: Verified* — Alert-typer: metric, log search, simple log search (preview, per-row evaluering), activity log, smart detection, Prometheus. Alerts lagres i 30 dager. Stateless alerts trigges for hver frekvens (konfigurerbar) mens condition er oppfylt — metric alerts med frekvens <5 min trigger 1-6 min etter, ≥5 min trigger 15-30 min etter. Stateful log search alerts: resolved når condition ikke er oppfylt for 2-3 frekvensperioder (avhenger av frekvens). Query-based metric alerts for Prometheus/OpenTelemetry i public preview. *(Verified MCP 2026-04)* 7. **Reliability in Azure AI Search (SLA example)** https://learn.microsoft.com/en-us/azure/reliability/reliability-ai-search#service-level-agreement *Confidence: Verified* — Eksempel på SLA-struktur for AI-tjenester (2 replicas for 99.9%). 8. **Azure Service Health overview** https://learn.microsoft.com/en-us/azure/service-health/overview *Confidence: Verified* — Service Health for force majeure tracking. 9. **Azure Monitor KQL samples** https://learn.microsoft.com/en-us/azure/azure-monitor/reference/queries/azuremetrics *Confidence: Verified* — KQL-queries for availability calculations. ### Confidence-vurdering per seksjon | Seksjon | Confidence | Kilde | |---------|-----------|-------| | SLA-definisjoner | **Verified** | Microsoft Learn FAQ + monitoring reference | | Metrics og komponenter | **Verified** | Azure Monitor metrics reference (MCP fetch) | | Arkitekturmønstre | **Baseline** | Syntetisert fra best practices (dokumentasjon + erfaring) | | KQL-queries | **Verified** | Microsoft Learn code samples (MCP search) | | Kostnad og prising | **Baseline** | Azure Pricing Calculator (Jan 2025, kan endre) | | Offentlig sektor-krav | **Baseline** | Norsk lovverk (ekstrapolert til AI-kontekst) | | Integration patterns | **Baseline** | Standard Azure-integrasjoner (dokumentert, ikke AI-spesifikt) | **Totalt:** 8/9 seksjoner med Verified eller sterkt dokumenterte kilder. Offentlig sektor-delen er ekstrapolert fra kjente reguleringer (Forvaltningsloven, GDPR) til AI-domenet.