ms-ai-architect/skills/ms-ai-security/references/cost-optimization/observability-cost-reduction.md
Kjell Tore Guttormsen ddce43d8b2 feat(ms-ai-architect): Spor 1 — Port-1-substrat migrert på 4 ikke-advisor-skills (243 Source + 327 Type + 325 TOC + stale-verified poison fjernet) [skip-docs]
Steg 9 (R4): unified migrate-corpus.mjs --write over engineering/governance/
infrastructure/security. 327 filer mutert, verified=null, prosa byte-identisk
(fra første ## seksjon), advisor urørt (0 endringer).

To applier-fixes oppdaget under kjøring (TDD, RED→GREEN):
- insertHeaderFields: anker faller nå tilbake når en meta-linje selv passerer
  500B (2 filer pakket et avsnitt i **Status:** → Type/Source landet utenfor
  scan-vinduet, applierens post-write-assertion fanget + restaurerte).
- normalizeStaleVerified: fjerner nå ALLE stale non-date **Verified:** i
  500B-vinduet, inkl. stray body-dup rett under --- (9 mlops-genaiops-filer var
  ellers falskt "verified"/fresh, droppet fra worklist). Operatør-godkjent
  utvidelse av carve-out; kun stray metadata-linjer, aldri prosa.

test-transform-criterion: precondition oppdatert til post-migrasjons-sannhet
(fila bærer nå Source). Suite 728/728 grønn.
2026-07-04 10:19:11 +02:00

482 lines
24 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.

# Observability and Monitoring Cost Optimization
**Last updated:** 2026-06-19 | Verified: MCP 2026-06
**Status:** GA
**Category:** Cost Optimization & FinOps for AI
**Type:** reference
**Source:** https://learn.microsoft.com/azure/azure-monitor/app/opentelemetry-configuration
---
## Innhold
- [Introduksjon](#introduksjon)
- [Kjernekomponenter](#kjernekomponenter)
- [Arkitekturmønstre](#arkitekturmønstre)
- [Beslutningsveiledning](#beslutningsveiledning)
- [Integrasjon med Microsoft-stakken](#integrasjon-med-microsoft-stakken)
- [Offentlig sektor (Norge)](#offentlig-sektor-norge)
- [Kostnad og lisensiering](#kostnad-og-lisensiering)
- [For arkitekten (Cosmo)](#for-arkitekten-cosmo)
- [Kilder og verifisering](#kilder-og-verifisering)
## Introduksjon
Observability og monitoring er kritiske for produksjonsklare AI-løsninger, men kan raskt bli en betydelig kostnadsfaktor hvis de ikke konfigureres riktig. Azure Monitor, Application Insights og Log Analytics workspace representerer ofte 15-30% av den totale driftskostnaden for AI-workloads. Denne referansen fokuserer på strategier for å optimalisere kostnader knyttet til telemetri-innsamling, lagring og spørringer, samtidig som du opprettholder nødvendig innsikt i systemets helse og ytelse.
Kostnadsoptimalisering av observability handler om å finne balansen mellom detaljnivå og kostnad. For AI-workloads er det spesielt viktig å skille mellom kritiske produksjons-signaler (som må logges 100%) og mindre viktige debug-data (som kan samples aggressivt). En typisk feilkonfigurasjon er å samle full telemetri fra alle miljøer produktiv bruk av sampling, retention policies og table plans kan redusere monitoring-kostnader med 50-70% uten at du mister kritisk diagnostisk kapasitet.
Moderne Azure Monitor tilbyr flere kostnadseffektive alternativer som Basic Logs (redusert ingestion-pris), long-term retention (billigere arkivering), og adaptive sampling-mekanismer. For AI-løsninger som genererer store volumer av telemetri (f.eks. inference-requests, embedding-operasjoner, eller RAG-pipeline-traces), er riktig konfigurering av disse mekanismene forskjellen mellom en bærekraftig og en uhåndterbar kostnad.
## Kjernekomponenter
### Azure Monitor-økosystemet
| Komponent | Funksjon | Prising | Optimaliserings-mulighet |
|-----------|----------|---------|--------------------------|
| **Application Insights** | Telemetri for applikasjoner (traces, dependencies, requests, exceptions) | Per GB ingested data (workspace-based) | Sampling, filtering, retention-tuning |
| **Log Analytics Workspace** | Sentral lagrings- og query-motor for all log-data | Per GB ingestion + retention cost | Commitment tiers, Basic/Auxiliary tables, long-term retention |
| **Azure Monitor Metrics** | Pre-aggregerte metrics (aldri samplet) | Inkludert i platform metrics, ekstra kostnad for custom metrics | Reduser antall custom metric-dimensjoner |
| **Azure Monitor Logs** | Strukturerte logger fra Azure-ressurser | Per GB ingestion + retention cost | Data Collection Rules (DCRs) for filtering |
### Kostnadsmodeller for Log Analytics
| Modell | Beskrivelse | Når å bruke | Besparelse |
|--------|-------------|-------------|------------|
| **Pay-as-you-go** | Standard prising per GB | Lave volumer (<100 GB/dag) | Baseline |
| **Commitment Tiers** | Forhåndsbetalte daglige volumer (100 GB, 200 GB, 500 GB, osv.) | Stabile, høye volumer | Opptil 30% rabatt |
| **Basic Logs** | Redusert ingestion-pris, query-kostnad, begrenset query-tid (8 dager) | Debugging, troubleshooting, audit-logs | Opptil 50% lavere ingestion |
| **Auxiliary Logs** | Lavest ingestion-pris, kun for search jobs | Verbose logs, kun sporadisk query | Opptil 75% lavere ingestion |
| **Long-term Retention** | Arkivering utover interactive retention (opptil 12 år) | Compliance, historiske analyser | Opptil 90% lavere retention-kostnad |
### Sampling-strategier
| Strategi | Mekanisme | Bruksområde | Trade-off |
|----------|-----------|-------------|-----------|
| **Adaptive Sampling** | Automatisk justering basert på telemetri-volum (default: 5 items/sec) — gjelder **kun Classic API SDK** (ASP.NET, ASP.NET Core). OpenTelemetry-baserte distros har **ikke** adaptive sampling aktivert som default. | ASP.NET, ASP.NET Core, Azure Functions | Reduserer volum uten konfigurasjon (Classic SDK kun), kan miste sjeldne events | Verified (MCP 2026-04) |
| **Fixed-rate Sampling** | Fast prosentandel (f.eks. 10%, 25%, 50%) | Konsistent sampling på tvers av client/server | Forutsigbar reduksjon, krever manuell tuning |
| **Rate-limited Sampling** | Begrenser til maks N requests/sec (f.eks. 1.5 req/sec) | Java-applikasjoner, cost-capping | Streng volum-kontroll, kan miste spikes |
| **Ingestion Sampling** | Server-side sampling (kun hvis SDK ikke sampler) | Legacy apps uten SDK-sampling | Reduserer ikke nettverkstrafikk |
| **Sampling Overrides** | Regel-basert sampling per endpoint/dependency (Java) | Filtrere bort health checks, støyende dependencies | Granulær kontroll, kompleks konfigurasjon |
**Viktig:** Metrics samples aldri. Sampling påvirker kun traces (spans) og optionally logs. Alerts basert på metrics forblir nøyaktige.
**OpenTelemetry-distro (MCP 2026-06):** Azure Monitor OTel-distroen har **ikke** sampling på som default og bruker to strategier: **fixed-rate** (ratio 01, f.eks. `0.1` = ~10 %) og **rate-limited** (traces/sek, f.eks. `5.0` = fem traces/sek). En egen **trace-based sampling for logs** dropper logger knyttet til ikke-samplede traces og er **på som default når sampling er aktivert** (støttede språk) — gir kostnadsreduksjon utover trace-sampling alene. Distroens custom sampler bevarer hele traces (unngår broken traces) og kreves for Live Metrics. Anbefalt logg-strategi: eksporter kun `ERROR` (legg til `WARN` kun når handlingsrettet).
## Arkitekturmønstre
### Mønster 1: Full Observability (Production-Grade AI)
**Scenario:** Kritiske AI-tjenester med strenge SLA-krav, feilsøking må være mulig for alle requests.
**Konfigurasjon:**
- **Sampling:** Deaktivert for kritiske flows (errors alltid 100%), 10% for success-cases
- **Retention:** 90 dager interactive, 2 år long-term retention
- **Table Plan:** Analytics for `requests`, `exceptions`, `dependencies`; Basic for `traces`
- **Alerts:** Sanntids-alerting på kritiske metrics (failure rate, latency)
**Kostnad:** Høy (baseline), men komplett diagnostisk kapasitet.
**Eksempel (Application Insights, ASP.NET Core):**
```csharp
builder.Services.Configure<TelemetryConfiguration>(telemetryConfiguration =>
{
var builder = telemetryConfiguration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
// Adaptive sampling: 10 items/sec (ikke 5 default)
builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond: 10, excludedTypes: "Exception");
builder.Build();
});
builder.Services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
{
EnableAdaptiveSampling = false, // Bruk egen konfigurasjon
});
```
**Norsk offentlig sektor:** Full observability passer for fagsystemer med persondata der sporbarhet er lovpålagt (Arkivloven, GDPR).
---
### Mønster 2: Sampled Monitoring (Cost-Optimized AI)
**Scenario:** AI-tjenester med høyt request-volum (tusenvis av inference-requests/dag), hvor kostnadskontroll er viktigere enn full trace-visibilitet.
**Konfigurasjon:**
- **Sampling:** Fixed-rate 1-5% for normale requests, 100% for errors
- **Retention:** 30 dager interactive, 1 år long-term retention for compliance
- **Table Plan:** Basic for `traces` og `dependencies`, Analytics kun for `exceptions`
- **Pre-aggregated Metrics:** Bruk metrics for dashboards, ikke log queries
**Kostnad:** 50-70% reduksjon vs. full observability.
**Eksempel (Java Agent 3.7.5+, rate-limited sampling):**
```json
{
"sampling": {
"requestsPerSecond": 1.5
}
}
```
**Eksempel (Sampling overrides for health checks):**
```json
{
"preview": {
"sampling": {
"overrides": [
{
"telemetryType": "request",
"attributes": [
{
"key": "http.url",
"value": "https://.*/health",
"matchType": "regexp"
}
],
"percentage": 0
}
]
}
}
}
```
**Norsk offentlig sektor:** Egnet for chatbots og AI-assistenter uten persondata, der full logging ikke er lovpålagt.
---
### Mønster 3: Tiered Retention (Compliance-Driven)
**Scenario:** AI-løsninger som må oppbevare logs for compliance (Arkivloven, Riksrevisjonen), men som sjelden spørrer historiske data.
**Konfigurasjon:**
- **Interactive Retention:** 30 dager (for daglig bruk)
- **Long-term Retention:** 7 år (arkivering, søk via search jobs)
- **Table Plan:** Auxiliary for verbose logs (kun søk når nødvendig)
- **Data Export:** Eksporter til Azure Storage for billig langtidslagring
**Kostnad:** 80-90% reduksjon i retention-kostnader.
**Eksempel (Kusto-query for retention-konfigurasjon):**
```kusto
// Sett 7 års long-term retention på AppTraces-tabellen
.alter-merge table AppTraces policy retention
```
{
"SoftDeletePeriod": "2555d", // 7 år
"Recoverability": "Enabled"
}
```
```
**Norsk offentlig sektor:** Påkrevd for fagsystemer underlagt Arkivloven § 6 (bevaring i minimum 5 år, ofte 10 år).
## Beslutningsveiledning
### Når skal du bruke Basic Logs?
| Kriterium | Analytics | Basic | Auxiliary |
|-----------|-----------|-------|-----------|
| **Query-frekvens** | Daglig/ukentlig | Månedlig/ved incidents | Sjelden (search jobs) |
| **Query-kompleksitet** | Full KQL, joins, aggregeringer | Begrenset KQL (8 dager) | Search jobs kun |
| **Ingestion-volum** | Moderat | Høyt (debugging) | Veldig høyt (verbose) |
| **Alerts** | Støttes | ✅ (Simple Log Alerts) — Verified (MCP 2026-04) | Støttes ikke |
| **Retention** | 30-730 dager | 8 dager interactive + long-term | Long-term kun |
| **Pris (ingestion)** | Standard | ~50% lavere | ~75% lavere |
| **Workspace replication** | ✅ | ✅ | ❌ (data ikke replikert — ingen beskyttelse ved regional feil) |
| **Customer Lockbox** | ✅ | ✅ | ❌ (Lockbox-grensesnitt gjelder ikke for Auxiliary-tabeller) |
**Beslutningstre:**
1. **Trenger du real-time alerting?** → Analytics
2. **Queries kun ved feilsøking?** → Basic (støtter Simple Log Alerts — Verified MCP 2026-04)
3. **Kun compliance-arkivering?** → Auxiliary (støtter Microsoft Sentinel og Search jobs — Verified MCP 2026-04)
### Vanlige feil
| Feil | Konsekvens | Løsning |
|------|------------|---------|
| **Sampling deaktivert i prod** | Ekstremt høy ingestion-kostnad | Aktiver adaptive sampling (minimum 10% fixed) |
| **Alle tables i Analytics-plan** | Betaler full pris for debug-logs | Flytt `AppTraces`, `AppDependencies` til Basic |
| **Retention 90 dager for alt** | Unødvendig høy retention-kostnad | Bruk 30 dager interactive + long-term for compliance |
| **Custom metrics med mange dimensjoner** | Høy custom metric-kostnad | Bruk pre-aggregated metrics, reduser dimensjoner |
| **Ingen Data Collection Rules (DCRs)** | Samler unødvendige logs fra Azure-ressurser | Filtrer bort støyende logs via DCRs |
| **Daily cap som primær kostnadskontroll** | Mister data ved cap-overskridelse | Bruk commitment tiers + sampling i stedet |
### Røde flagg
- **Ingestion >500 GB/dag uten commitment tier** → Du betaler 30% for mye
- **Query-kostnader >10% av total Monitor-kostnad** → For mange queries mot Basic/Auxiliary tables
- **`itemCount` alltid 1 i telemetri** → Sampling er ikke konfigurert
- **Ingen telemetri fra errors** → For aggressiv sampling, juster excluded types
## Integrasjon med Microsoft-stakken
### Application Insights
**Workspace-based vs. Classic:**
- **Workspace-based** (anbefalt): Lagrer data i Log Analytics workspace, kan bruke commitment tiers og Basic Logs
- **Classic** (deprecated): Pay-as-you-go kun, kan ikke bruke moderne kostnadsoptimaliseringer
**Migration-path:** Flytt Classic AI resources til workspace-based for å få tilgang til commitment tiers.
### Log Analytics Workspace
**Commitment Tiers:**
| Tier | Daglig volum | Pris/GB (ca. Norge) | Besparelse vs. PAYG |
|------|--------------|---------------------|---------------------|
| Pay-as-you-go | Variabel | ~70 NOK/GB | 0% |
| 100 GB/dag | 100 GB | ~50 NOK/GB | 30% |
| 200 GB/dag | 200 GB | ~48 NOK/GB | 32% |
| 500 GB/dag | 500 GB | ~45 NOK/GB | 35% |
**Dedicated Clusters:**
For volumer >1 TB/dag, vurder dedicated cluster for ytterligere besparelser (cluster commitment tier).
### Microsoft Foundry & Azure OpenAI
**Telemetri-volum:**
- **Inference-requests:** 1-5 KB per request (prompt + completion metadata)
- **Embeddings:** 0.5-2 KB per request
- **Fine-tuning logs:** Høyt volum (vurder Basic Logs)
**Optimalisering:**
- Bruk **metrics** for throughput-monitoring (gratis pre-aggregated metrics)
- Sample **successful requests** 5-10%, behold 100% errors
- Bruk **Diagnostic Settings** til å filtrere bort health checks
### Microsoft Semantic Kernel
**Logging-strategi:**
- **Development:** Full logging (trace level)
- **Production:** Warning/Error level + 10% sampling av Info-level
- **Custom telemetry:** Bruk `ILogger` med Application Insights, ikke custom events (dyrere)
## Offentlig sektor (Norge)
### Arkivloven
**§ 6 - Bevaringsplikt:**
- **Minimum:** 5 år for elektroniske dokument (kan forlenges til 10-25 år)
- **Implementering:** Bruk long-term retention (7-10 år) i Log Analytics
- **Kostnadsoptimalisering:** Flytt til Auxiliary tables etter 30 dager, søk via search jobs ved behov
**§ 9 - Tilgjengelighetskrav:**
- Arkiverte logs må kunne gjenfinnes "innen rimelig tid"
- **Search jobs** i Azure Monitor oppfyller dette (kjøres asynkront, resultater tilgjengelig i timevis/dager)
### Riksrevisjonen
**Revisjonskrav:**
- Full sporbarhet av administrative beslutninger (hvem, hva, når)
- **Implementering:** Behold `AuditLogs`, `SecurityEvent` i Analytics-plan med 90 dagers retention + 7 års long-term
- **Kostnadsoptimalisering:** Bruk Data Export til Azure Storage for billigere arkivering av rådata
### GDPR / Personvernforordningen
**Lagringsminimering (Art. 5.1.e):**
- Ikke behold persondata lengre enn nødvendig
- **Implementering:** Separate workspaces for persondata (kort retention) og operational data (lang retention)
- **Purge API:** Slett person-identifiserbare telemetri ved slettingsforespørsler (GDPR Art. 17)
### Sikkerhetsloven (Nasjonal Sikkerhetsmyndighet)
**Logging av sikkerhetshendelser:**
- Kritiske systemer må logge sikkerhetsrelevante hendelser i minimum 6 måneder
- **Implementering:** Microsoft Sentinel (hvis aktivert) krever Log Analytics workspace, kombiner sikkerhet + operational data kun hvis kostnadseffektivt (vurder separate workspaces)
## Kostnad og lisensiering
### Prismodell (Norge, ca. 2026)
| Komponent | Enhet | Pris (NOK eks. mva) |
|-----------|-------|---------------------|
| **Log Analytics Ingestion (PAYG)** | Per GB | ~70 NOK |
| **Log Analytics Ingestion (100 GB tier)** | Per GB | ~50 NOK |
| **Basic Logs Ingestion** | Per GB | ~35 NOK |
| **Auxiliary Logs Ingestion** | Per GB | ~18 NOK |
| **Data Retention (30+ dager)** | Per GB/måned | ~8 NOK |
| **Long-term Retention (archive)** | Per GB/måned | ~1 NOK |
| **Basic/Auxiliary Query** | Per GB scanned | ~6 NOK |
| **Search Job** | Per GB scanned | ~6 NOK |
| **Data Export** | Per GB exported | ~5 NOK |
**Eksempel-beregning (AI chatbot, 100k requests/dag):**
**Baseline (ingen optimalisering):**
- Telemetri-volum: 100k requests × 3 KB = 300 MB/dag = 9 GB/måned
- Ingestion: 9 GB × 70 NOK = **630 NOK/måned**
- Retention (90 dager): 27 GB × 8 NOK = **216 NOK/måned**
- **Total:** 846 NOK/måned
**Optimalisert (10% sampling, Basic Logs):**
- Sampled volum: 9 GB × 10% = 0.9 GB/måned
- Ingestion (Basic): 0.9 GB × 35 NOK = **32 NOK/måned**
- Retention (30 dager): 2.7 GB × 8 NOK = **22 NOK/måned**
- **Total:** 54 NOK/måned (**94% besparelse**)
### Optimaliseringstips
1. **Start med commitment tier-kalkulatoren:** Azure Portal → Log Analytics Workspace → Usage and Estimated Costs
2. **Analyser ingestion-kilder:** Kjør query for å identifiere høy-volum tables:
```kusto
Usage
| where TimeGenerated > ago(30d)
| summarize IngestedGB = sum(Quantity) / 1000 by DataType
| order by IngestedGB desc
```
3. **Identifiser sampling-muligheter:**
```kusto
requests
| where timestamp > ago(1d)
| summarize RetainedPercentage = 100/avg(itemCount)
// Hvis RetainedPercentage = 100%, sampling er ikke aktivert
```
4. **Vurder Basic Logs for debug-tables:**
- `AppTraces`, `AppDependencies` (hvis kun queries ved incidents)
- `ContainerLog`, `AzureDiagnostics` (hvis verbose logging)
## For arkitekten (Cosmo)
### Nøkkelspørsmål
1. **Hva er akseptabel diagnostisk latency?**
- Sanntids-alerting → Analytics plan, aktiver sampling forsiktig
- Daglig/ukentlig analyse → Basic Logs OK
- Kun compliance → Auxiliary + long-term retention
2. **Hvor mye telemetri genererer løsningen (GB/dag)?**
- <10 GB/dag → Pay-as-you-go, vurder sampling
- 10-100 GB/dag → Vurder commitment tier
- >100 GB/dag → Commitment tier obligatorisk, aggressive sampling
3. **Hvilke events må logges 100%?**
- Errors/exceptions → Alltid 100%
- Security events → 100%
- Business-critical transactions → 100%
- Health checks, debug traces → 0-10%
4. **Hva er retention-krav?**
- Compliance-driven (Arkivloven) → Long-term retention
- Operasjonell troubleshooting → 30-90 dager interactive
- Development/test → 7-30 dager
5. **Er det persondata i telemetri?**
- Ja → Separate workspace, kort retention, GDPR-purge-rutiner
- Nei → Del workspace med andre apps (commitment tier-fordel)
6. **Hvor ofte kjøres log queries?**
- Daglig (dashboards, alerts) → Analytics plan
- Ukentlig/månedlig → Basic Logs
- Sjelden (kun incidents) → Auxiliary + search jobs
7. **Brukes Microsoft Sentinel?**
- Ja → All data i workspace er subject to Sentinel pricing (vurder separate workspaces)
- Nei → Standard Log Analytics pricing
8. **Hva er prod vs. non-prod split?**
- Dev/test → Aggressiv sampling (1-5%), kort retention (7 dager)
- Prod → Moderat sampling (10-25%), compliance-driven retention
### Fallgruver
| Fallgruve | Hvorfor det skjer | Hvordan unngå |
|-----------|-------------------|---------------|
| **"Vi trenger full logging i prod"** | Frykt for å miste kritisk data | Start med 25% sampling, øk gradvis hvis nødvendig. Pre-aggregated metrics gir nøyaktige tall uansett. |
| **"Daily cap beskytter oss mot kostnad"** | Misforstått som primær kostnadskontroll | Daily cap stopper ingestion når nådd → data loss. Bruk commitment tier + sampling i stedet. |
| **"Vi bruker samme workspace for alt"** | Enklere administrasjon | Kostbar hvis Sentinel er aktivert. Vurder separate workspaces for security vs. operational data. |
| **"Sampling påvirker metrics"** | Feilaktig forståelse | Metrics samples aldri. Kun traces/logs påvirkes. Alerts basert på metrics er nøyaktige. |
| **"Vi trenger Analytics plan for alle tables"** | Default-konfigurasjon | Flytt debug/verbose tables til Basic Logs, spar 50% ingestion. |
### Anbefalinger per modenhetsnivå
**Nivå 1 - Proof of Concept:**
- Pay-as-you-go pricing
- Default adaptive sampling (5 items/sec)
- 30 dagers retention
- Ingen Basic Logs (forenkler setup)
**Nivå 2 - Pilot/Test:**
- Commitment tier hvis >50 GB/dag
- 10% fixed sampling for normale flows, 100% errors
- 30 dagers retention + long-term for compliance-testing
- Basic Logs for `AppTraces`
**Nivå 3 - Produksjon (Standard):**
- Commitment tier basert på faktisk volum
- Adaptive/fixed sampling per endpoint (sampling overrides)
- 90 dagers interactive + 2-7 års long-term
- Basic Logs for debug-tables, Auxiliary for verbose logs
- Data Collection Rules (DCRs) for å filtrere bort unødvendige Azure resource logs
**Nivå 4 - Enterprise/Scale:**
- Dedicated cluster (hvis >1 TB/dag på tvers av workspaces)
- Granular sampling overrides per business function
- Separate workspaces for security (Sentinel) vs. operational data
- Automatisert retention policy-management
- Data Export til Azure Data Lake for ML-analyse
## Kilder og verifisering
### Microsoft Learn-dokumentasjon (Verified via MCP 2026-04)
1. **Sampling in Application Insights:**
https://learn.microsoft.com/en-us/azure/azure-monitor/app/sampling-classic-api
*Confidence: Verified* Offisiell guide til adaptive, fixed-rate og ingestion sampling.
2. **Azure Monitor Logs cost calculations and options:**
https://learn.microsoft.com/en-us/azure/azure-monitor/logs/cost-logs
*Confidence: Verified* Detaljert prismodell, commitment tiers, Basic/Auxiliary tables.
3. **Configuration options: Azure Monitor Application Insights for Java:**
https://learn.microsoft.com/en-us/azure/azure-monitor/app/java-standalone-config#sampling
*Confidence: Verified* Rate-limited sampling, sampling overrides.
4. **Cost optimization in Azure Monitor:**
https://learn.microsoft.com/en-us/azure/azure-monitor/fundamentals/best-practices-cost
*Confidence: Verified* Best practices for Application Insights, Log Analytics.
5. **Best practices for Azure Monitor Logs:**
https://learn.microsoft.com/en-us/azure/azure-monitor/logs/best-practices-logs
*Confidence: Verified* Retention, commitment tiers, Basic Logs.
6. **Architecture best practices for Application Insights:**
https://learn.microsoft.com/en-us/azure/azure-monitor/service-guides/application-insights#cost-optimization
*Confidence: Verified* Well-Architected Framework guidance.
7. **Troubleshoot high data ingestion in Application Insights:**
https://learn.microsoft.com/en-us/troubleshoot/azure/azure-monitor/app-insights/telemetry/troubleshoot-high-data-ingestion
*Confidence: Verified* Feilsøking, sampling-strategier, daily cap.
8. **Sampling in Azure Monitor Application Insights with OpenTelemetry:**
https://learn.microsoft.com/en-us/azure/azure-monitor/app/opentelemetry-sampling
*Confidence: Verified* OpenTelemetry-specific sampling (Azure Monitor Distro).
9. **Configure Azure Monitor OpenTelemetry - Enable Sampling:**
https://learn.microsoft.com/en-us/azure/azure-monitor/app/opentelemetry-configuration#enable-sampling
*Confidence: Verified* Environment variables, code-based config.
10. **Azure Monitor Logs overview: Table plans:**
https://learn.microsoft.com/en-us/azure/azure-monitor/logs/data-platform-logs#table-plans
*Confidence: Verified (MCP 2026-04)* Analytics, Basic, Auxiliary table plans. Oppdatering 2026-04: Basic-plan støtter nå Simple Log Alerts (✅), ikke kun Analytics-plan. Auxiliary-plan bekrefter ingen workspace replication (data ikke beskyttet mot regional feil) og ingen Customer Lockbox-støtte. Auxiliary-plan støtter Microsoft Sentinel (✅), Search jobs (✅) og Summary rules (✅). Verified (MCP 2026-04)
### Norsk lovverk (Baseline-kunnskap)
- **Arkivloven (1992):** § 6 (bevaring), § 9 (tilgjengelighet)
*Confidence: Baseline* Lovtekst krever juridisk tolkning for spesifikke use cases.
- **Sikkerhetsloven (2018):** Krav til logging av sikkerhetshendelser
*Confidence: Baseline* NSM-veiledere gir utfyllende detaljer.
### Confidence-nivåer
| Seksjon | Confidence | Kilde |
|---------|------------|-------|
| Sampling-strategier | **Verified** | Microsoft Learn MCP (apr 2026) |
| Prismodell | **Verified** | Microsoft Learn MCP (apr 2026) |
| Table plans | **Verified** | Microsoft Learn MCP (apr 2026) |
| Retention policies | **Verified** | Microsoft Learn MCP (apr 2026) |
| Arkitektuurmønstre | **Baseline** | Kombinasjon av verified docs + modellkunnskap |
| Norsk compliance | **Baseline** | Lovtekst + modellkunnskap (krever juridisk validering) |
| Kostnadseksempler (NOK) | **Baseline** | Estimater basert på Azure pricing calculator (feb 2026) |