- Critical bucket (9 files): substantive content updates basert på MCP-fetch - enterprise-governance: DSPM front door, AI-app-kategorier (3), single-tenant Entra ID - rag-cost-optimization, observability, ai-services-enterprise, multi-model-strategy: dato-bump - deterministic-cost: Copilot Credits offisiell common currency (2025-09-01), CCCU prepurchase - gpt5-gpt41-pricing: utvidet Copilot Studio modell-lineup (GPT-5.2, GPT-5.3, Claude 4.6, Grok 4.1) - vector-storage, request-batching: dato-bump (DS allerede dekkende) - High batch 1 (21 files, 10-30): Last updated 2026-04→2026-05 dato-bump Substantive Microsoft Learn-endringer var marginale per fetch — kosmetiske oppdateringer. Resterende: high batch 2 (filer 31-53, 23 filer) i ny sesjon. Se NEXT-SESSION-PROMPT.local.md.
593 lines
27 KiB
Markdown
593 lines
27 KiB
Markdown
# Alerting Strategies and Escalation Policies for AI Incidents
|
||
|
||
**Last updated:** 2026-05
|
||
**Status:** GA
|
||
**Category:** Monitoring & Observability
|
||
|
||
---
|
||
|
||
## Introduksjon
|
||
|
||
Effektive alerting-strategier og eskaleringsrutiner er kritiske for å sikre rask respons på AI-relaterte hendelser. I motsetning til tradisjonelle applikasjoner introduserer AI-systemer unike utfordringer: modeller kan degradere over tid (drift), prompt injection-angrep kan oppstå plutselig, og token-kostnader kan eksplodere uten varsel. En robust alerting-arkitektur må derfor kombinere reaktive varsler (noe gikk galt) med proaktive varsler (noe er i ferd med å gå galt).
|
||
|
||
Azure Monitor gir et omfattende rammeverk for alerting gjennom action groups, alert processing rules, og integrasjon med Azure Automation, Logic Apps, og ITSM-systemer. For AI-løsninger må denne infrastrukturen konfigureres med forståelse av både business impact og teknisk kompleksitet — en kritisk alert kan være en modell som returnerer bias-innhold, eller en Azure OpenAI-deployment som nærmer seg rate limit.
|
||
|
||
Eskaleringsrutiner må reflektere organisasjonens modenhetsnivå. En Minimum Viable Product (MVP)-løsning kan starte med e-postvarsler til et lite team, mens en produksjonsløsning for offentlig sektor krever Multi-tier escalation med clear ownership, automated incident response, og compliance logging for AI Act Article 72 (incident reporting).
|
||
|
||
---
|
||
|
||
## Kjernekomponenter
|
||
|
||
### Azure Monitor Alert Architecture
|
||
|
||
| Komponent | Beskrivelse | AI-relevans |
|
||
|-----------|-------------|-------------|
|
||
| **Alert Rules** | Definerer betingelser som trigger alerts (metrics, logs, activity log) | Token rate limits, model latency, failed requests |
|
||
| **Action Groups** | Samling av notifications og actions som kjøres når alert fires | Email, SMS, webhook, runbook, Logic App |
|
||
| **Alert Processing Rules** | Overstyr eller berik alert-oppførsel (suppression, tillegg av action groups, scheduling). Filtre støtter opptil 5 verdier per filter (logisk OR). Suppression har høyere prioritet enn Apply action groups. | Prevent alert fatigue under model redeployments; recurring maintenance windows *(Verified MCP 2026-04)* |
|
||
| **Common Alert Schema** | Uniform JSON payload på tvers av alle alert-typer | Forenkler webhook-integrasjoner og ITSM-connectors |
|
||
| **Severity Levels** | Sev 0 (Critical) til Sev 4 (Informational) | Map til business impact (Sev 0 = PII leak, Sev 4 = latency spike) |
|
||
|
||
### Notification Channels
|
||
|
||
| Channel | Bruksområde | Rate Limits | Global Resilience |
|
||
|---------|-------------|-------------|-------------------|
|
||
| **Email** | Standard notification (opptil 1000 mottakere per action group) | Best practices: Ikke send til personlige adresser, bruk distribution lists | ✅ Yes |
|
||
| **SMS** | Kritiske alerts (begrensede land) | 1 SMS per 5 min per nummer | ✅ Yes |
|
||
| **Voice Call** | Sev 0 incidents (natt/helg) | 1 call per 5 min per nummer | ✅ Yes |
|
||
| **Webhook** | Integration med eksterne systemer (PagerDuty, Slack) | Retry: 5 retries med 5-40s delay | ❌ Endpoint-dependent |
|
||
| **Azure App Push** | Mobile notifications til Azure-appen | Begrenset til Azure mobile app | ✅ Yes |
|
||
| **Event Hub** | Stream alerts til analytics/SIEM | Supports Private Link og NSP | ✅ Yes (regional) |
|
||
|
||
**Reusability:** Du kan legge til opptil 5 action groups per alert rule. Action groups kjøres concurrent (ingen bestemt rekkefølge). Multiple alert rules kan bruke samme action group. *(Verified MCP 2026-04)*
|
||
|
||
**Rate Limiting:** Azure Monitor rate-limiter notifications for å hindre spam. Hvis samme email/SMS/telefonnummer mottar for mange alerts, suspenderes notifications midlertidig. For AI-systemer som kan generere høy alert-volum (f.eks. per-request failures), bruk programmatic actions (Logic Apps, Automation Runbooks) i stedet.
|
||
|
||
### Action Types for AI Incidents
|
||
|
||
```json
|
||
{
|
||
"actionType": "AutomationRunbook",
|
||
"runbookName": "ScaleDownOpenAI",
|
||
"webhookResourceId": "/subscriptions/.../runbooktest/webhooks/Alert...",
|
||
"useCommonAlertSchema": true,
|
||
"isGlobalRunbook": false
|
||
}
|
||
```
|
||
|
||
| Action Type | AI Use Case | Authentication | Managed Identity | Cross-tenant Support |
|
||
|-------------|-------------|----------------|-----------------|---------------------|
|
||
| **Automation Runbook** | Auto-scale Azure OpenAI TPM, restart failing deployments | Managed Identity (Automation Contributor, Role ID: f353d9bd) | ✅ Yes | ❌ No |
|
||
| **Logic App** | Enrich alert med model metadata, post til Teams/Slack | Managed Identity (Logic App Contributor, Role ID: 87a39d53) | ✅ Yes | ❌ No |
|
||
| **Azure Function** | Custom logic (e.g., invoke model rollback API) | HTTP trigger med access key | ❌ No | ❌ No |
|
||
| **Webhook** | Invoke external incident mgmt (PagerDuty, ServiceNow) | Basic auth via URI eller secure webhook (Entra ID) | ❌ No | ✅ Yes (limited) |
|
||
| **Event Hub** | Stream til SIEM (Microsoft Sentinel) for correlation | Managed Identity (Event Hubs Data Sender, Role ID: 2b629674) | ✅ Yes | ✅ Yes (up to API 2023-09-01-preview) |
|
||
| **Secure Webhook** | Invoke protected API med Entra ID-auth | Microsoft Entra app registration | ❌ No | ✅ Yes |
|
||
| **ITSM Connector** | Create incidents i ServiceNow, Cherwell | ITSM connection credentials | ❌ No | ❌ No |
|
||
|
||
*(Verified MCP 2026-04)*
|
||
|
||
**Managed Identity Best Practice (preview):** Managed Identity-støtte for Action Groups er nå tilgjengelig i **preview**. For Automation Runbooks, Logic Apps og Event Hubs, bruk managed identity i stedet for service principals. Azure Function, Webhook, Secure Webhook og ITSM støtter ikke managed identity — bruk HTTP trigger access key respektive secure webhook med Entra ID. Azure Portal legger automatisk til role assignments ved konfigurasjon. For PowerShell/CLI/SDK må du manuelt tildele roller (se tabell over). *(Verified MCP 2026-04)*
|
||
|
||
---
|
||
|
||
## Arkitekturmønstre
|
||
|
||
### 1. Multi-Tier Escalation for AI Incidents
|
||
|
||
**Bruk når:** Produksjonsløsninger med SLA-krav og 24/7 support.
|
||
|
||
**Implementering:**
|
||
|
||
```plaintext
|
||
Tier 1: On-Call Developer (Email + SMS)
|
||
├─ Sev 3-4 alerts → Respond within 4 hours
|
||
└─ Auto-escalate to Tier 2 if no ACK within 30 min
|
||
|
||
Tier 2: AI Platform Team (Voice Call + PagerDuty)
|
||
├─ Sev 1-2 alerts → Respond within 30 min
|
||
└─ Auto-escalate to Tier 3 if no resolution within 2 hours
|
||
|
||
Tier 3: Management + Legal (Email + Teams)
|
||
└─ Sev 0 alerts → Data breach, AI Act violation, PII leak
|
||
```
|
||
|
||
**Azure Monitor Implementering:**
|
||
|
||
1. **Action Group per Tier:**
|
||
- `AG-Tier1-Developers`: Email til dev-team distribution list
|
||
- `AG-Tier2-Platform`: SMS + PagerDuty webhook
|
||
- `AG-Tier3-Executive`: Voice call til on-call manager + Teams notification
|
||
|
||
2. **Alert Processing Rule for Auto-Escalation:**
|
||
```json
|
||
{
|
||
"rules": {
|
||
"if": "alert.severity == 0 AND alert.state == 'New' FOR 30 minutes",
|
||
"then": "add action group AG-Tier3-Executive"
|
||
}
|
||
}
|
||
```
|
||
|
||
3. **Time-Based Escalation (via Logic App):**
|
||
- Webhook til Logic App som sjekker alert timestamp
|
||
- Hvis ikke acknowledged innen threshold → invoke Tier 2/3 action groups
|
||
|
||
**Fordeler:**
|
||
- Clear ownership per severity level
|
||
- Reduserer alert fatigue for Tier 3
|
||
- Automatisk eskalering hindrer at kritiske alerts "faller mellom stolene"
|
||
|
||
**Ulemper:**
|
||
- Kompleks konfigurasjon (krever Logic Apps for time-based escalation)
|
||
- Krever testing og dokumentasjon av eskaleringsrutiner
|
||
- Risiko for "false escalations" hvis thresholds er feil satt
|
||
|
||
---
|
||
|
||
### 2. Automated Remediation with Runbooks
|
||
|
||
**Bruk når:** Kjente failure modes med deterministiske fix-prosedyrer (scale-out, restart, rollback).
|
||
|
||
**Eksempel:** Azure OpenAI deployment nærmer seg TPM limit → Auto-scale til høyere tier.
|
||
|
||
**Runbook Template (PowerShell 7):**
|
||
|
||
```powershell
|
||
param(
|
||
[object] $WebhookData
|
||
)
|
||
|
||
# Parse Common Alert Schema
|
||
$alertData = (ConvertFrom-Json -InputObject $WebhookData.RequestBody)
|
||
$resourceId = $alertData.data.essentials.alertTargetIds[0]
|
||
$metricValue = $alertData.data.alertContext.condition.allOf[0].metricValue
|
||
|
||
# Extract OpenAI deployment info
|
||
$deployment = $resourceId -split '/' | Select-Object -Last 1
|
||
$rgName = ($resourceId -split '/')[4]
|
||
|
||
# Scale up to Standard tier if approaching limit
|
||
if ($metricValue -gt 8000) {
|
||
Update-AzCognitiveServicesAccount -ResourceGroupName $rgName `
|
||
-Name $deployment -Sku "S0" -Force
|
||
Write-Output "Scaled $deployment to S0 tier"
|
||
}
|
||
```
|
||
|
||
**Alert Rule Configuration:**
|
||
|
||
| Metric | Threshold | Action |
|
||
|--------|-----------|--------|
|
||
| `TokensPerMinute` | > 8000 (80% of 10K limit) | Invoke runbook `ScaleUpOpenAI` |
|
||
| `RequestLatency` | > 5000ms for 5 min | Invoke runbook `RestartDeployment` |
|
||
| `FailedRequests` | > 50 in 10 min | Send to Logic App for root cause analysis |
|
||
|
||
**Fordeler:**
|
||
- Reduserer Mean Time To Recovery (MTTR) dramatisk
|
||
- Fungerer 24/7 uten manuell inngripen
|
||
- Audit trail via Automation job logs
|
||
|
||
**Ulemper:**
|
||
- Runbooks må testes grundig (feil logic kan forverres situasjonen)
|
||
- Krever Automation Contributor role på ressursene
|
||
- Ikke egnet for komplekse diagnostiseringsscenarioer
|
||
|
||
---
|
||
|
||
### 3. Stateful vs. Stateless Alerting for AI Workloads
|
||
|
||
**Problem:** AI-requests kan generere tusenvis av failed requests ved samme rot-årsak (f.eks. model deployment down). Skal vi sende ett alert eller tusenvis?
|
||
|
||
**Stateful Alerting (anbefalt for AI):**
|
||
|
||
- **Enable:** `Automatically resolve alerts = true`
|
||
- **Behavior:** Ett alert fires når condition blir true, auto-resolves når condition blir false
|
||
- **Bruk når:** Infrastruktur-alerts (deployment down, API unavailable)
|
||
|
||
**Stateless Alerting:**
|
||
|
||
- **Enable:** `Automatically resolve alerts = false`
|
||
- **Behavior:** Nytt alert for hver evaluation cycle som matcher condition
|
||
- **Bruk når:** Per-request monitoring (track hver PII leak, hver toxic content response)
|
||
|
||
**Azure AI-spesifikk konfigurasjon:**
|
||
|
||
| Alert Rule | Type | Rationale |
|
||
|------------|------|-----------|
|
||
| `Azure OpenAI Deployment Unavailable` | Stateful | En deployment er enten oppe eller nede — send ett alert |
|
||
| `Prompt Injection Detected` | Stateless | Hver deteksjon skal logges individuelt (compliance) |
|
||
| `Content Safety Filter Triggered` | Stateless | Hver toxic response er en separat incident |
|
||
| `Token Rate Limit Approaching` | Stateful | Send warning når 80% nådd, resolve når < 70% |
|
||
|
||
---
|
||
|
||
## Beslutningsveiledning
|
||
|
||
### Severity Mapping for AI Incidents
|
||
|
||
| Severity | Definition | AI Examples | SLA | Escalation |
|
||
|----------|------------|-------------|-----|------------|
|
||
| **Sev 0** | Total service outage eller critical security breach | PII leak, AI Act violation, all models unavailable | < 15 min response | Tier 3 immediate |
|
||
| **Sev 1** | Major degradation affecting production workload | Primary model down, >50% error rate | < 30 min response | Tier 2 + manager notify |
|
||
| **Sev 2** | Partial degradation, workaround available | Secondary model down, latency >5s | < 2 hour response | Tier 2 |
|
||
| **Sev 3** | Minor issue, no user impact | Token costs 20% above budget | < 8 hour response | Tier 1 |
|
||
| **Sev 4** | Informational, proactive monitoring | Model drift detected, new version available | No SLA | Email only |
|
||
|
||
### Notification Channel Decision Tree
|
||
|
||
```
|
||
START: AI Alert Fired
|
||
│
|
||
├─ Is it Sev 0/1? ───YES──> SMS + Voice Call + Teams (immediate)
|
||
│ │
|
||
│ └─> Add webhook to PagerDuty/ServiceNow
|
||
│
|
||
└─ Is it Sev 2/3? ───YES──> Email + Teams channel
|
||
│
|
||
└─> Is it business hours? ───NO──> Add SMS for Sev 2
|
||
│
|
||
YES─> Email only
|
||
```
|
||
|
||
### Anbefalinger fra Well-Architected Framework
|
||
|
||
*(Verified MCP 2026-04)*
|
||
|
||
| Anbefaling | Fordel |
|
||
|------------|--------|
|
||
| **Bruk dynamic thresholds i metric alerts** | ML-baserte terskler tilpasser seg automatisk — unngår manuell threshold-tuning for AI-workloads med variabelt load |
|
||
| **Bruk managed identity for log search alert rules** | Credential-free auth; påkrevd hvis query aksesserer Azure Data Explorer (ADX) eller Azure Resource Graph (ARG) |
|
||
| **Bruk custom properties i alert rules** | Legg til metadata (owner, cost center, AI Act reportable) i alert payload — enklere triaging og compliance-logging |
|
||
| **Bruk Logic Apps for enrichment** | Customiser notification-format, hent tags fra ressurser, integrer med Teams/Slack/PagerDuty uten å endre alert rule |
|
||
| **Activity log alerts er gratis** | Bruk activity log alerts for administrative hendelser der mulig — ingen kostnad per evaluering |
|
||
|
||
### Vanlige Feil (Red Flags)
|
||
|
||
| Anti-pattern | Problem | Anbefaling |
|
||
|--------------|---------|------------|
|
||
| **Sending all alerts to personal email** | Vacation/sickness = ingen response | Bruk distribution lists eller action groups per team |
|
||
| **No severity differentiation** | Alert fatigue — alt er "viktig" | Implementer 5-tier severity model |
|
||
| **No auto-escalation** | Critical alerts blir ignorert nattestid | Logic App med time-based escalation til manager |
|
||
| **Email-only for Sev 0** | Delays i critical situations | SMS + Voice Call for Sev 0/1 |
|
||
| **No actionable context** | Alerts sier "something is wrong" uten details | Custom properties med resource metadata, query results |
|
||
| **Alerting on every request failure** | Stateless alerts → spam | Bruk stateful alerts + aggregation windows (5-15 min) |
|
||
|
||
### Recommended Alert Rules for Azure AI Services
|
||
|
||
| Service | Metric/Log | Threshold | Action |
|
||
|---------|------------|-----------|--------|
|
||
| **Azure OpenAI** | `azure.openai.requests` (429 errors) | > 10 in 5 min | Scale up deployment tier |
|
||
| **Azure OpenAI** | `TokensPerMinute` | > 80% of quota | Email warning + runbook to request quota increase |
|
||
| **Azure AI Search** | `SearchLatency` | > 1000ms for 10 min | Check index size, scale up replicas |
|
||
| **Content Safety** | `ModeratedContent` (high severity) | Any occurrence | Stateless alert + SIEM integration |
|
||
| **Document Intelligence** | `FailedRequests` | > 20% error rate | Check API version compatibility, model availability |
|
||
|
||
---
|
||
|
||
## Integrasjon med Microsoft-stakken
|
||
|
||
### Azure Monitor ↔ Microsoft Sentinel
|
||
|
||
**Bruk:** Stream AI-alerts til Sentinel for correlation med security events.
|
||
|
||
**Konfigurasjon:**
|
||
|
||
1. **Action Group → Event Hub:**
|
||
```json
|
||
{
|
||
"eventHubReceiver": {
|
||
"name": "SentinelEventHub",
|
||
"subscriptionId": "...",
|
||
"eventHubNameSpace": "ai-monitoring",
|
||
"eventHubName": "alerts",
|
||
"useCommonAlertSchema": true
|
||
}
|
||
}
|
||
```
|
||
|
||
2. **Sentinel Data Connector:**
|
||
- Connect til Event Hub
|
||
- Parse Common Alert Schema
|
||
- Correlate med AuditLogs, SignInLogs for user context
|
||
|
||
**Fordeler:**
|
||
- Single pane of glass for security + operational monitoring
|
||
- Advanced threat detection (e.g., prompt injection patterns + user behavior anomalies)
|
||
- Compliance reporting (AI Act Article 72)
|
||
|
||
### Azure Monitor ↔ Logic Apps
|
||
|
||
**Bruk:** Enrich alerts med kontekstuell informasjon før notification.
|
||
|
||
**Eksempel Workflow:**
|
||
|
||
```
|
||
Alert: "Azure OpenAI High Error Rate" (Sev 2)
|
||
↓
|
||
Logic App receives webhook
|
||
↓
|
||
Query Log Analytics for last 100 error messages
|
||
↓
|
||
Group by error code (401, 429, 500)
|
||
↓
|
||
Fetch deployment tags (owner, cost center, environment)
|
||
↓
|
||
POST enriched alert til Teams:
|
||
"🔴 Sev 2: Azure OpenAI Errors
|
||
Deployment: gpt-4-prod
|
||
Owner: ai-platform-team@company.com
|
||
Top Errors: 429 (80%), 500 (15%), 401 (5%)
|
||
Cost Center: CC-12345
|
||
Environment: Production
|
||
Runbook: aka.ms/fix-429-errors"
|
||
```
|
||
|
||
**Template Actions:**
|
||
|
||
1. **HTTP (Get Model Metadata):** Call Azure OpenAI Management API for deployment details
|
||
2. **Log Analytics (Query Errors):** `AzureDiagnostics | where Category == "RequestResponse" and httpStatusCode_d >= 400`
|
||
3. **Teams (Post Adaptive Card):** Rich notification med buttons ("Acknowledge", "View Logs", "Run Remediation")
|
||
|
||
### Azure Monitor ↔ Azure Automation
|
||
|
||
**Bruk:** Auto-remediation for infrastruktur-alerts.
|
||
|
||
**Common Runbooks for AI:**
|
||
|
||
| Runbook | Trigger Alert | Action |
|
||
|---------|---------------|--------|
|
||
| `ScaleUpOpenAI` | TokensPerMinute > 80% | Update deployment tier (PTU → PTU-M) |
|
||
| `RestartFailedDeployment` | Health probe failed | Delete + redeploy model |
|
||
| `NotifyCompliance` | Content Safety violation | Email legal + log to compliance database |
|
||
| `RollbackModel` | Error rate > 50% after deployment | Swap to previous model version |
|
||
|
||
**Managed Identity Setup:**
|
||
|
||
```powershell
|
||
# Enable System-Assigned Managed Identity on Automation Account
|
||
Set-AzAutomationAccount -ResourceGroupName "rg-automation" `
|
||
-Name "ai-automation" -AssignSystemIdentity
|
||
|
||
# Assign Contributor role to Managed Identity
|
||
$automationAccount = Get-AzAutomationAccount -ResourceGroupName "rg-automation" -Name "ai-automation"
|
||
New-AzRoleAssignment -ObjectId $automationAccount.Identity.PrincipalId `
|
||
-RoleDefinitionName "Contributor" -Scope "/subscriptions/.../resourceGroups/rg-ai"
|
||
```
|
||
|
||
---
|
||
|
||
## Offentlig sektor (Norge)
|
||
|
||
### AI Act Article 72: Incident Reporting
|
||
|
||
EU AI Act krever at providers rapporterer "serious incidents" til nasjonale myndigheter innen **15 dager**. Azure Monitor alerts må derfor konfigureres med compliance logging.
|
||
|
||
**Serious Incident Definition (AI Act):**
|
||
- Death or serious injury
|
||
- Serious harm to health, property, or environment
|
||
- Serious violation of fundamental rights (e.g., discrimination)
|
||
|
||
**Implementering:**
|
||
|
||
1. **Tag Critical Alerts:**
|
||
```json
|
||
{
|
||
"customProperties": {
|
||
"aiActReportable": "true",
|
||
"incidentType": "discriminationRisk",
|
||
"affectedUsers": "approx. 500",
|
||
"dataProcessed": "PII (names, addresses)"
|
||
}
|
||
}
|
||
```
|
||
|
||
2. **Action Group → Event Hub → Archive Storage:**
|
||
- Stream til immutable blob storage (compliance retention)
|
||
- Hourly export til Sentinel for analysis
|
||
- Monthly report generation (Logic App)
|
||
|
||
3. **Notification til Compliance Officer:**
|
||
- Sev 0 alerts → immediate email til DPO + legal
|
||
- Include pre-filled incident report template
|
||
|
||
### Forvaltningsloven § 25 (Begrunnelsesplikt)
|
||
|
||
Vedtak fattet med AI-støtte må kunne forklares. Hvis AI-modellen feiler under saksbehandling, må dette logges og eskaleres.
|
||
|
||
**Alert Rule:** "AI Recommendation Unavailable During Case Processing"
|
||
|
||
**Action:**
|
||
1. **Immediate:** Email til saksbehandler (manual fallback)
|
||
2. **Within 1 hour:** Notify IT support
|
||
3. **Within 4 hours:** Incident report til seksjonsleder
|
||
4. **Audit log:** Store case ID, timestamp, error message (for later review)
|
||
|
||
### Schrems II / Data Residency
|
||
|
||
Alerts som inneholder PII må **ikke** sendes til tjenester utenfor EU/EØS. Dette gjelder spesielt webhooks til SaaS-løsninger (PagerDuty, Slack).
|
||
|
||
**Compliant Setup:**
|
||
|
||
| Notification Channel | Data Residency | Compliant? | Alternative |
|
||
|---------------------|----------------|------------|-------------|
|
||
| Email (Microsoft 365 EU tenant) | EU | ✅ Yes | — |
|
||
| Teams (EU datacenter) | EU | ✅ Yes | — |
|
||
| Event Hub → Sentinel (Norway East) | Norway | ✅ Yes | — |
|
||
| Webhook → PagerDuty (US) | USA | ❌ No | Bruk Logic App i Norway East som proxy, strip PII |
|
||
| SMS (Twilio US) | USA | ❌ No | Bruk Azure Communication Services (EU) |
|
||
|
||
**Best Practice:** Bruk `customProperties` til å skille mellom metadata (OK å sende ut) og PII (må holdes innenfor EU).
|
||
|
||
---
|
||
|
||
## Kostnad og lisensiering
|
||
|
||
### Azure Monitor Alerts Pricing (Norway East, Feb 2026)
|
||
|
||
| Alert Type | Price per Rule/Month | Price per Evaluation | Notes |
|
||
|------------|---------------------|---------------------|-------|
|
||
| **Metric Alert** (standard) | 0.10 USD | — | First 10 rules free per subscription |
|
||
| **Metric Alert** (multi-resource) | 0.10 USD | — | Can monitor 1000+ VMs with one rule |
|
||
| **Log Search Alert** | 0.10 USD | 0.20 USD per query execution | Frequency × time window = cost |
|
||
| **Activity Log Alert** | **FREE** | **FREE** | Use these whenever possible! |
|
||
| **Service Health Alert** | **FREE** | **FREE** | — |
|
||
| **Resource Health Alert** | **FREE** | **FREE** | — |
|
||
|
||
**Example Cost Calculation (Log Search Alert):**
|
||
|
||
```
|
||
Alert: "Azure OpenAI Error Rate > 10%"
|
||
Query frequency: Every 5 minutes
|
||
Time window: 15 minutes
|
||
Evaluations per month: (60/5) × 24 × 30 = 8640
|
||
|
||
Cost = 0.10 USD (rule) + (8640 × 0.20 USD) = 1728.10 USD/month
|
||
```
|
||
|
||
**Optimization Strategy:**
|
||
- Bruk **metric alerts** i stedet for log search alerts der mulig (gratis evaluations)
|
||
- Bruk **activity log alerts** for administrative events (gratis)
|
||
- Bruk **multi-resource alert rules** (én rule for mange ressurser)
|
||
- Øk query frequency til 15-30 min for non-critical alerts
|
||
|
||
### Action Group Pricing
|
||
|
||
| Action Type | Cost | Rate Limit |
|
||
|-------------|------|------------|
|
||
| **Email** | FREE | 1000 emails per hour per action group |
|
||
| **SMS** | 0.20 USD per SMS | 1 SMS per 5 min per phone number |
|
||
| **Voice Call** | 1.00 USD per call | 1 call per 5 min per phone number |
|
||
| **Webhook** | FREE | — |
|
||
| **Automation Runbook** | Automation job cost (0.002 USD per minute) | — |
|
||
| **Logic App** | Logic App execution cost (varies) | — |
|
||
| **Event Hub** | Event Hub ingress cost (0.028 USD per million events) | — |
|
||
|
||
**Best Practice:** Start med email + webhook (free), legg til SMS/voice call kun for Sev 0/1.
|
||
|
||
---
|
||
|
||
## For arkitekten (Cosmo)
|
||
|
||
### Spørsmål å stille kunden
|
||
|
||
1. **Severity Mapping:**
|
||
- "Hva definerer dere som en Sev 0 incident for deres AI-løsning? PII leak? Total nedetid? Noe annet?"
|
||
- "Hva er akseptabel Mean Time To Acknowledge (MTTA) per severity level?"
|
||
|
||
2. **Escalation Procedures:**
|
||
- "Har dere en on-call rotation? Hvem skal motta SMS/voice call ved nattestid for Sev 0/1?"
|
||
- "Skal management (seksjonsleder, DPO, juridisk) varsles automatisk ved visse typer alerts?"
|
||
|
||
3. **Compliance Requirements:**
|
||
- "Er løsningen omfattet av AI Act som high-risk system? Må dere rapportere serious incidents til myndighetene?"
|
||
- "Hvilke data residency-krav har dere? Er det OK å sende alerts til webhooks utenfor EU/EØS?"
|
||
|
||
4. **Automation vs. Manual Response:**
|
||
- "Er det failure modes hvor dere ønsker automatisk remediation (scale-up, restart)? Hva er risikoen ved feil automation?"
|
||
- "Hvilke alerts krever manuell triaging før action (f.eks. model rollback)?"
|
||
|
||
5. **Integration Points:**
|
||
- "Bruker dere ITSM-system (ServiceNow, Cherwell)? Skal alerts automatisk opprette incidents?"
|
||
- "Skal alerts streames til Sentinel for security correlation? Til Power BI for dashboards?"
|
||
|
||
6. **Alert Fatigue:**
|
||
- "Hvor mange alerts får dere per dag i dag? Hvor mange av dem er actionable?"
|
||
- "Er det alerts dere ignorerer fordi de 'alltid fyrer'? Hvordan kan vi redusere false positives?"
|
||
|
||
7. **Testing & Validation:**
|
||
- "Hvordan skal vi teste eskaleringsrutinene før go-live? Ønsker dere en tabletop exercise?"
|
||
- "Hva er akseptabel alert latency (tid fra incident → alert fires)? 1 min? 5 min?"
|
||
|
||
### Fallgruver å unngå
|
||
|
||
| Fallgruve | Konsekvens | Mitigering |
|
||
|-----------|------------|------------|
|
||
| **Alert spam (100+ alerts per dag)** | Team ignorer alle alerts | Bruk stateful alerts, øk aggregation windows, implementer alert processing rules |
|
||
| **No clear ownership** | Alerts går til "no-reply" inbox som ingen sjekker | Definer action groups per team/severity, bruk distribution lists |
|
||
| **Over-reliance på automation** | Runbook scaler opp feil ressurs → cost explosion | Start med manual approval workflows, test automation grundig |
|
||
| **PII i alert payload** | GDPR violation når sendt til external webhooks | Bruk `customProperties` for metadata only, strip PII i Logic App proxy |
|
||
| **No escalation for unacknowledged alerts** | Sev 0 alerts blir ikke sett nattestid | Implementer time-based escalation via Logic App |
|
||
| **Webhook endpoints without retry logic** | Alerts tapt hvis endpoint er midlertidig nede | Bruk Event Hub som buffer + reliable delivery |
|
||
| **Cost blindness** | Log search alerts med 1-min frequency → 1000+ USD/month | Bruk metric alerts der mulig, øk query frequency til 5-15 min |
|
||
|
||
### Anbefalinger per modenhetsnivå
|
||
|
||
**Level 1 (MVP / Pilot):**
|
||
- 1 action group med email til dev-team
|
||
- Metric alerts for kritiske metrics (availability, error rate)
|
||
- Stateful alerting for infrastruktur-events
|
||
- Severity: Kun Sev 1/2/3 (simplifisert)
|
||
|
||
**Level 2 (Production / Basic Maturity):**
|
||
- Multi-tier escalation (developer → platform team → manager)
|
||
- SMS + voice call for Sev 0/1
|
||
- Integration med Teams for collaborative triaging
|
||
- Alert processing rules for maintenance windows
|
||
- Automation runbooks for simple remediation (scale-up)
|
||
|
||
**Level 3 (High Maturity / Regulated):**
|
||
- Full 5-tier severity model med SLA per level
|
||
- ITSM integration (auto-create ServiceNow incidents)
|
||
- Sentinel integration for security correlation
|
||
- Compliance logging (AI Act incident reporting)
|
||
- Advanced automation (model rollback, canary deployments)
|
||
- Quarterly alert review + optimization (reduce alert fatigue)
|
||
|
||
**Level 4 (Best-in-Class / Autonomous):**
|
||
- AI-powered alert correlation (AIOps)
|
||
- Predictive alerting (model drift detected before user impact)
|
||
- Closed-loop remediation (auto-resolve 80%+ of alerts)
|
||
- Real-time cost optimization (auto-scale based on budget vs. demand)
|
||
- Continuous compliance monitoring (automated AI Act Article 72 reporting)
|
||
|
||
---
|
||
|
||
## Kilder og verifisering
|
||
|
||
### Verified (from Microsoft Learn MCP)
|
||
|
||
1. **Action Groups Overview**
|
||
https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/action-groups
|
||
*Confidence: High — Official documentation retrieved 2026-02, covers notification types, managed identity, rate limits.*
|
||
|
||
2. **Best Practices for Azure Monitor Alerts**
|
||
https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/best-practices-alerts
|
||
*Confidence: High — Well-Architected Framework guidance, includes reliability, cost optimization, operational excellence.*
|
||
|
||
3. **Webhook Retry Logic**
|
||
https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/action-groups#webhook
|
||
*Confidence: High — Documented retry intervals (5s, 20s, 5s, 40s, 5s) and 15-min cooldown.*
|
||
|
||
4. **Automation Runbook with Managed Identity**
|
||
https://learn.microsoft.com/en-us/azure/automation/automation-create-alert-triggered-runbook
|
||
*Confidence: High — Code sample for VM stop runbook using Common Alert Schema.*
|
||
|
||
5. **Alert Processing Rules**
|
||
https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-processing-rules
|
||
*Confidence: High — Covers suppression, action group override, scheduling.*
|
||
|
||
6. **Stateful vs. Stateless Alerts**
|
||
https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-troubleshoot-metric
|
||
*Confidence: High — "Automatically resolve alerts" checkbox behavior explained.*
|
||
|
||
7. **Service Limits for Notifications**
|
||
https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/action-groups#service-limits-for-notifications
|
||
*Confidence: High — Rate limits per notification type (SMS, voice, email).*
|
||
|
||
### Baseline (Model Knowledge)
|
||
|
||
8. **AI Act Article 72 Incident Reporting**
|
||
*Confidence: Medium — EU AI Act text available, but specific implementation guidance for Azure not yet published by Microsoft (as of Feb 2026).*
|
||
|
||
9. **Severity Mapping Best Practices**
|
||
*Confidence: Medium — Industry standard pattern (Sev 0-4), adapted for AI-specific scenarios based on architecture experience.*
|
||
|
||
10. **Multi-Tier Escalation Pattern**
|
||
*Confidence: High — Standard ITIL/SRE practice, Azure Monitor supports via action groups + Logic Apps.*
|
||
|
||
### Recommendations for Further Verification
|
||
|
||
- **Cost estimates:** Verify against Azure Pricing Calculator (pricing kan variere per region og currency fluctuations).
|
||
- **AI Act compliance:** Consult with legal team og Datatilsynet for norsk implementering av EU AI Act Article 72.
|
||
- **ITSM integration:** Test ITSM connector med deres spesifikke ServiceNow/Cherwell-versjon (API compatibility kan variere).
|