Observability-skatten: Hvorfor overvåkingen koster mer enn appen
Observability-utgiftene vokser raskere enn infrastrukturen de overvåker. Team leverer dashbord ingen leser, varsler ingen stoler på, og fakturaer som får CFO-en til å stille ubehagelige spørsmål. Det finnes en bedre arkitektur -- og den begynner med å innrømme at det meste du samler inn er avfall.
Innholdsfortegnelse
Observability-utgiftene vokser raskere enn infrastrukturen de overvåker. Team leverer dashbord ingen leser, varsler ingen stoler på, og fakturaer som får CFO-en til å stille ubehagelige spørsmål. Det finnes en bedre arkitektur -- og den begynner med å innrømme at det meste du samler inn er avfall.
Vi drifter 22 produksjonssystemer. Den samlede observability-regningen vår er lavere enn en enkelt utviklers månedlige kaffebudsjett. Ikke fordi vi er uansvarlige. Fordi vi er bevisste. Denne artikkelen forklarer hvordan vi kom dit, og hvorfor du kanskje bør gjøre det samme.
I. Fakturaen ingen forventet
En gang rundt 2023 dukket et mønster opp på tvers av konsulentoppdragene våre. Team som hadde brukt år på å optimalisere skyberegning -- riktig dimensjonering av instanser, overgang til ARM, innføring av serverless -- åpnet månedsregningen og fant en ny linjepost som stille spiste opp besparelsene deres.
Datadog. New Relic. Splunk. Elastic Cloud. Dynatrace.
Observability-leverandøren hadde blitt den nest eller tredje største linjeposten. I noen tilfeller den største. En fintech-klient med 40 mikrotjenester på AWS brukte $8 200/mnd på EKS og Fargate. Datadog-regningen var $14 600/mnd. Verktøyet som overvåket infrastrukturen kostet 78 % mer enn selve infrastrukturen.
Dette er ikke et avvik. Dette er markedet.
Datadogs årlige omsetning passerte $2,1 milliarder i 2024. New Relic, Splunk (nå Cisco), Elastic og Dynatrace representerer samlet et marked på over $40 milliarder. De pengene kommer fra et sted. De kommer fra deg.
Spørsmålet er ikke om observability betyr noe. Det gjør det. Spørsmålet er om observability-arkitekturen din er proporsjonal med beslutningene den muliggjør. For de fleste team er svaret nei.
II. Prisfellen: Slik trekker leverandørene ut verdi
Å forstå kostnadene krever at man forstår prismodellene. De er ikke designet for transparens. De er designet for innlåsing og overraskelser.
Per-vert-prising. Datadog tar betalt per vert per måned. Infrastrukturovervåking starter rundt $15/vert/mnd, men APM dytter det til $31-40/vert. En Kubernetes-klynge med 100 noder er $3 100-4 000/mnd før du aktiverer en eneste tilpasset metrikk.
Per-GB-inntak. Logghåndtering tar betalt etter volum. Datadog tar omtrent $0,10/GB for første nivå, med lagringskostnader på toppen. En moderat snakkesalig applikasjon som produserer 500 GB/mnd med logger er $50/mnd bare for inntak -- før indeksering, varsling eller lagring.
Per-tilpasset-metrikk. Det er her budsjettene dør. Datadogs basisplan inkluderer 100 tilpassede metrikker. Hver ekstra tilpasset metrikk koster omtrent $0,05/mnd. Det høres billig ut til en utvikler instrumenterer en tjeneste med Prometheus og ved et uhell oppretter 50 000 tilpassede metrikker fra høy-kardinalitetsetiketter. Det er $2 500/mnd fra en enkelt utrulling.
Per-span-prising for sporing. Å ta inn 1 milliard spans/mnd til $0,0000002/span høres ikke dyrt ut. Til du innser at en enkelt API-forespørsel gjennom 8 mikrotjenester produserer 8+ spans, og ved 10 000 forespørsler/sekund genererer du 6,9 milliarder spans/mnd. Regnestykket blir reelt fort.
Cost model for a mid-size SaaS (100 hosts, 50 services):
Infrastructure monitoring: 100 hosts x $23/mo = $ 2,300
APM (50 services): 50 hosts x $40/mo = $ 2,000
Log management (2TB/mo): 2,000 GB x $0.10 = $ 200
Log indexing + retention: = $ 1,800
Custom metrics (15,000): 15,000 x $0.05 = $ 750
Trace ingestion (5B spans): 5B x $0.0000002 = $ 1,000
Synthetics (500 tests): 500 x $12/mo = $ 6,000
RUM (1M sessions): = $ 1,500
─────────────────────────────────────────────────────────
Monthly total: ~$15,550
Annual total: ~$186,600
Det tilsvarer to seniorutviklere. Eller hele skyregningen for et velarktitekturert system i samme skala. Og det vokser med hver vert du legger til, hver metrikk du oppretter, hver logglinje du sender ut.
III. Fryktdrevet overvåking og dashbord-gravlunden
Kostnaden ville vært forsvarlig hvis hver krone drev en beslutning. Det gjør den ikke.
De fleste observability-oppsett er produkter av frykt. En hendelse inntreffer. Noen sier "vi trenger mer innsyn." Et dashbord bygges. Et varsel opprettes. Ingen sletter dashbordet seks måneder senere når det underliggende problemet er fikset. Ingen gjennomgår om varselet noensinne ble utløst. Overvåkingsoverflaten vokser monotont.
Vi har et navn for dette: dashbord-gravlunden. Enhver organisasjon har en. Rader av Grafana-paneler ingen har åpnet på måneder. Datadog-dashbord laget av utviklere som forlot selskapet for to år siden. PagerDuty-tjenester med varslingsregler som refererer til infrastruktur som ikke lenger eksisterer.
Kostnaden er ikke bare finansiell. Varseltretthet er reell og målbar.
En studie fra 2023 av PagerDutys eget forskerteam fant at den typiske vakthavende utvikleren mottar 25+ varsler per vakt. Av disse er færre enn 3 handlingsbare. Resten er støy -- terskelbrudd på metrikker som ikke korrelerer med brukereffekt, forbigående topper som løser seg selv, og kaskaderende varsler fra en enkelt rotårsak.
90/10-regelen: 90 % av varslene er støy. 10 % er handlingsbare. Og støyen gjør signalet vanskeligere å finne.
Alert taxonomy (based on audit of 4 client systems, 2024-2025):
Actionable + urgent: 8% -- Real incidents, need human response
Actionable + deferred: 4% -- Real issues, can wait for business hours
Informational: 22% -- Interesting but requires no action
Noise (self-resolving): 41% -- Transient spikes, auto-scaling events
Stale (dead references): 25% -- Alerts on decommissioned services
Hvis en fjerdedel av varslene refererer til infrastruktur som ikke lenger eksisterer, gir ikke observability-oppsettet ditt innsyn. Det gir teater.
IV. Cargokult-instrumenteringsproblemet
Det finnes et mønster i hvordan team adopterer observability som speiler hvordan de adopterer testing: de starter med gode intensjoner og ender med dekningsmetrikker som måler innsats, ikke verdi.
Cargokulten fungerer slik:
- Les et blogginnlegg om hvordan Uber instrumenterer mikrotjenestene sine.
- Installer Datadog-agenten på alt.
- Aktiver APM på hver tjeneste.
- Legg til tilpassede metrikker for hver teller, måler og histogram du kan tenke deg.
- Bygg dashbord som ser imponerende ut i sprintdemoer.
- Slett aldri noe.
Resultatet er omfattende instrumentering av et system du ikke forstår noe bedre enn du gjorde før. Du har mer data. Du har ikke mer innsikt.
Forskjellen betyr noe. Data er det systemene dine sender ut. Innsikt er det som endrer atferden din. En metrikk ingen ser på er ikke observability. Det er en post i leverandørreskontro.
Vurder alternativet: i stedet for å instrumentere alt og håpe at mønstre dukker opp, starter du med å spørre hvilke beslutninger du trenger å ta og jobber bakover til minimumsdataene som kreves for å ta dem.
Beslutning: Er API-et friskt sett fra brukerens perspektiv? Minimumsdata: Forespørsels-latens P50/P95/P99, feilrate og tilgjengelighet -- tre metrikker per endepunkt.
Beslutning: Nærmer databasen seg kapasitetsgrensene? Minimumsdata: Tilkoblingspoolbruk, spørringslatens P95, diskbruk i prosent -- tre metrikker.
Beslutning: Forårsaket siste utrulling en regresjon? Minimumsdata: Feilrate-delta og latens-delta sammenlignet med forrige 24-timersvindu -- to metrikker.
Du trenger ikke 15 000 tilpassede metrikker for å besvare disse spørsmålene. Du trenger færre enn 100.
V. OpenTelemetry-standarden: Din exit-strategi
OpenTelemetry er det viktigste infrastrukturprosjektet de fleste team ignorerer. Det er et leverandørnøytralt, åpen kildekode-rammeverk for observability som standardiserer hvordan telemetridata -- spor, metrikker og logger -- samles inn, prosesseres og eksporteres.
Hvorfor det betyr noe: det kobler instrumentering fra destinasjon. Du instrumenterer koden din en gang med OpenTelemetry SDK-er, og kan sende dataene til hvilken som helst backend. Datadog i dag, Grafana Cloud i morgen, selvhostet ClickHouse neste kvartal. Ingen re-instrumentering. Ingen leverandørlåsing.
OpenTelemetry Collector er den arkitektoniske bærebjelken. Den sitter mellom applikasjonene dine og backendene dine, og håndterer innsamling, prosessering, filtrering og ruting.
# otel-collector-config.yaml
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
batch:
timeout: 5s
send_batch_size: 8192
# Drop metrics you don't need before they hit storage
filter/metrics:
metrics:
exclude:
match_type: regexp
metric_names:
- "http.server.request.body.size"
- "runtime.cpython.*"
- "process.runtime.*"
# Sample traces intelligently -- keep errors, sample successes
tail_sampling:
decision_wait: 10s
policies:
- name: errors-always
type: status_code
status_code: { status_codes: [ERROR] }
- name: slow-requests
type: latency
latency: { threshold_ms: 2000 }
- name: sample-normal
type: probabilistic
probabilistic: { sampling_percentage: 5 }
# Add deployment context to every signal
resource:
attributes:
- key: deployment.environment
value: production
action: upsert
- key: service.version
from_attribute: DEPLOY_SHA
action: upsert
exporters:
otlp/tempo:
endpoint: tempo.internal:4317
tls:
insecure: false
prometheusremotewrite:
endpoint: http://mimir.internal/api/v1/push
loki:
endpoint: http://loki.internal/loki/api/v1/push
service:
pipelines:
traces:
receivers: [otlp]
processors: [tail_sampling, resource, batch]
exporters: [otlp/tempo]
metrics:
receivers: [otlp]
processors: [filter/metrics, resource, batch]
exporters: [prometheusremotewrite]
logs:
receivers: [otlp]
processors: [resource, batch]
exporters: [loki]
Nøkkelinnsikten ligger i processors-seksjonen. Før en eneste byte treffer lagringsbackenden din, filtrerer collectoren ut metrikker du ikke trenger, sampler spor intelligent (beholder feil og trege forespørsler mens rutinetrafikk samples med 5 %), og beriker alt med utrullingskontekst.
Det filtreringssteget er der du gjenvinner 60-80 % av observability-budsjettet.
VI. Strukturert logging som faktisk fungerer
Mesteparten av logging er narrativ. En utvikler skriver logger.info("Processing order for customer") og går videre. Den logglinjen er lesbar for mennesker og ubrukelig for maskiner. Du kan ikke aggregere den, filtrere den eller varsle på den uten regex-gymnastikk.
Strukturert logging snur dette på hodet. Hver loggoppføring er en typet hendelse med navngitte felt. Narrativet er fortsatt der -- i message-feltet -- men de handlingsbare dataene lever i strukturerte attributter.
// Bad: narrative logging
logger.info(Processing order ${orderId} for customer ${customerId});
logger.error(Payment failed for order ${orderId}: ${error.message});
// Good: structured logging with OpenTelemetry semantic conventions
logger.info("order.processing", {
order_id: orderId,
customer_id: customerId,
currency: order.currency,
amount_cents: order.totalCents,
items_count: order.items.length,
});
logger.error("payment.failed", {
order_id: orderId,
customer_id: customerId,
payment_provider: "stripe",
error_code: error.code,
error_category: categorizePaymentError(error),
retry_eligible: isRetryable(error),
attempt_number: attemptCount,
});
Den strukturerte versjonen koster det samme å sende ut, men er uendelig mye mer nyttig nedstrøms. Du kan spørre etter alle mislykkede betalinger per leverandør. Du kan beregne feilrater for gjenforsøksbare feil. Du kan bygge varsler på error_category i stedet for å regex-matche feilmeldinger som endres med hver refaktorering.
En loggnivå-taksonomi som betyr noe
De fleste team behandler loggnivåer som stemning. Her er en taksonomi som knytter hvert nivå til en operasjonell respons:
| Nivå | Betydning | Operasjonell respons | Oppbevaring |
|---|---|---|---|
FATAL |
Prosessen kan ikke fortsette. Data kan være i fare. | Umiddelbar varsling. Alle mann. | For alltid |
ERROR |
Operasjonen feilet. Brukereffekt bekreftet. | Varsle vakthavende. Undersøk innen SLO. | 90 dager |
WARN |
Degradert men funksjonell. Nærmer seg en grense. | Opprett sak. Gjennomgå neste arbeidsdag. | 30 dager |
INFO |
Normale driftsmilepæler. Tilstandsoverganger. | Ingen handling. Tilgjengelig for undersøkelse. | 14 dager |
DEBUG |
Detaljert flyt for aktiv feilsøking. | Ingen handling. Aktiver ved behov. | 3 dager |
Oppbevaringskolonnen er kostnadsspaken. Hvis DEBUG-logger utgjør 60 % av volumet og du oppbevarer dem i 3 dager i stedet for 30, har du nettopp kuttet lagringskostnadene med 54 %. Hvis du deaktiverer DEBUG i produksjon helt og aktiverer det per tjeneste ved feilsøking, er besparelsene enda større.
VII. Edge-telemetri: Den billigste observability du ikke bruker
Hvis du deployer til Cloudflare Workers, Vercel Edge Functions eller et hvilket som helst CDN med analysekapasitet, har du allerede et telemetrilag de fleste team ignorerer.
Cloudflare Workers Analytics Engine gir per-forespørsel-metrikker ved kanten -- latens, statuskoder, cache-treffrate, geografisk distribusjon -- uten ekstra kostnad utover Workers-planen din. Ingen agent å installere. Ingen SDK å integrere. Ingen per-metrikk-prising.
// Cloudflare Worker: lightweight telemetry at the edge
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const start = Date.now();
const url = new URL(request.url);
try {
const response = await handleRequest(request, env);
const duration = Date.now() - start;
// Write to Analytics Engine -- included in Workers plan
env.TELEMETRY.writeDataPoint({
blobs: [
url.pathname, // index 1: route
response.status.toString(), // index 2: status
request.headers.get("cf-ipcountry") || "XX", // index 3: country
],
doubles: [
duration, // index 1: latency_ms
response.headers.get("content-length")
? parseInt(response.headers.get("content-length")!)
: 0, // index 2: response_bytes
],
indexes: [url.pathname], // queryable index
});
return response;
} catch (err) {
env.TELEMETRY.writeDataPoint({
blobs: [url.pathname, "500", "error"],
doubles: [Date.now() - start, 0],
indexes: [url.pathname],
});
throw err;
}
},
};
Du kan spørre disse dataene med SQL gjennom Cloudflare API eller GraphQL. P50/P95-latens per rute, feilrater per land, trafikkmønstre per time. Dataene du trenger for 80 % av operasjonelle beslutninger, samlet inn på punktet nærmest brukeren, til null marginalkostnad.
Dette er observability-inversjonen: i stedet for å trekke metrikker fra innsiden av systemet utover, fanger du dem ved grensen der brukerne faktisk opplever tjenesten din.
VIII. Arkitekturen: Billig lagring, smarte spørringer
De kommersielle observability-plattformene bundler tre ting: innsamling, lagring og spørring. De tar premiumpris fordi pakken er bekvem. Men hver komponent har et commodity-alternativ som koster 5-20 ganger mindre.
The Observability Tax architecture vs. the alternative:
VENDOR BUNDLE UNBUNDLED ARCHITECTURE
┌──────────────────────┐ ┌─────────────────────────────────┐
│ App + Agent │ │ App + OTel SDK │
│ │ │ │ │ │
│ v │ │ v │
│ Vendor Collector │ │ OTel Collector (self-hosted) │
│ │ │ │ │ │ │ │
│ v │ │ v v v │
│ Vendor Storage │ │ ClickHouse S3/R2 Loki │
│ ($$$$/GB) │ │ (metrics+ (cold (logs) │
│ │ │ │ traces) archive) │
│ v │ │ │ │ │ │
│ Vendor UI │ │ └────┬────┘─────────┘ │
│ (included) │ │ v │
│ │ │ Grafana │
│ Cost: ~$15K/mo │ │ (dashboards + alerts) │
│ │ │ │
│ │ │ Cost: ~$1.5K-3K/mo │
└──────────────────────┘ └─────────────────────────────────┘
Komponentene:
ClickHouse for metrikk- og sporlagring. Kolonneorientert, komprimeringsrater på 10-20x for strukturert telemetri, spørringsytelse som matcher dedikerte TSDB-systemer. ClickHouse Cloud-priser starter rundt $0,03/GB for komprimert lagring -- omtrent 10-30 ganger billigere enn kommersiell APM-lagring når komprimering tas med i beregningen.
S3/R2/GCS for kaldarkiv. Etter 7-14 dager flyttes rå telemetri til objektlagring. Cloudflare R2 tar $0,015/GB/mnd uten utgående trafikk-kostnader. Spør ved behov med Athena, DuckDB eller ClickHouse-eksterne tabeller.
Grafana for visualisering og varsling. Grafana i seg selv er åpen kildekode. Grafana Clouds gratistier håndterer 10 000 metrikker, 50 GB logger og 50 GB spor per måned. Det betalte nivået starter på omtrent $0,50/1 000 metrikkserier -- fortsatt en brøkdel av kommersiell APM-prising.
Loki for loggaggregering. Designet av Grafana-teamet som en "Prometheus for logger." Indekserer ikke logginnhold -- bare etiketter. Dette gjør det dramatisk billigere å drifte enn Elasticsearch/Splunk for logglagring.
En reell kostnadssammenligning
For den samme mellomstore SaaS-en fra del II (100 verter, 50 tjenester):
Commercial APM (Datadog-class): ~$186,600/year
Unbundled architecture:
ClickHouse Cloud (metrics+traces): $ 7,200/year
R2 cold storage (24 months): $ 2,160/year
Grafana Cloud (Pro): $ 6,000/year
Loki (self-hosted on 2 nodes): $ 3,600/year
OTel Collector (3 nodes): $ 2,400/year
──────────────────────────────────────────────────
Total: ~ $21,360/year
Annual savings: ~$165,240
Savings percentage: ~89%
Avveiningen er operasjonell kompleksitet. Du drifter collectoren. Du forvalter ClickHouse (eller betaler for ClickHouse Cloud). Du konfigurerer Grafana-dashbord. Dette krever et team som forstår komponentene. Det er ikke null innsats.
Men det er ærlig innsats. Du betaler for utviklertid i stedet for leverandørmargin. Og utviklerne som drifter denne stakken forstår observability-oppsettet sitt dypt -- fordi de bygde det. Den forståelsen er verdt mer enn noe leverandørdashbord.
IX. Når kommersielle plattformer er riktig svar
Denne artikkelen er ikke et polemisk innlegg mot kommersiell observability. Det finnes genuine tilfeller der det er rasjonelt å betale skatten:
Oppstartsbedrifter i tidlig fase uten driftskapasitet. Har du 5 utviklere og ingen dedikert driftsperson, sparer Datadogs installer-og-kjør-modell tid du ikke har råd til å bruke. Kostnaden er reell, men tidskostnaden ved selvhosting er høyere. Revurder når dere passerer 50 utviklere eller $10 000/mnd i observability-utgifter.
Genuint komplekse distribuerte systemer. Kjører du 200+ mikrotjenester på tvers av flere skyer med polyglotte kjøretider, gir korrelasjons-motoren i Datadog eller New Relic verdi som er vanskelig å replikere med åpen kildekode-verktøy. Tjenestekartet, den automatiske sporings-korrelasjonen, anomalideteksjonen -- disse funksjonene rettferdiggjør en premie når alternativet er et team på tre som bruker hele kvartalet på å bygge ekvivalenter.
Komplianse-miljøer med revisjonskrav. Noen regulerte bransjer krever spesifikke oppbevaringspolicyer, tilgangskontroller og revisjonslogger som kommersielle plattformer leverer ut av boksen. Å bygge SOC 2-kompatibel logg-infrastruktur fra bunnen av er mulig, men dyrt i en annen valuta.
Team som ikke har interesse av å bli observability-eksperter. Dette er gyldig. Ikke alle team bør bygge sin egen overvåkingsstakk. Hvis observability ikke er en kjernekompetanse og du heller vil bruke utviklertid på produktfunksjoner, er leverandørskatten en rimelig avveining. Bare vit at du betaler den.
Testen er enkel: del de årlige observability-utgiftene på antall hendelser det hjalp deg med å løse. Hvis kostnaden per hendelse overstiger kostnaden av selve hendelsen, er du overinstrumentert.
X. Gothars tilnærming: 22 systemer, minimal skatt
Vi praktiserer det vi prediker. Slik overvåker vi 22 produksjonssystemer på tvers av Cloudflare Workers, AWS og bare-metal-infrastruktur:
Lag 1: Edge-telemetri. Hver Cloudflare Worker skriver til Analytics Engine. Rutenivå-latens, statuskoder, cache-ytelse. Null marginalkostnad. Dette dekker 70 % av "er systemet friskt?"-spørsmålene våre.
Lag 2: Strukturert logging med kontekstpropagering. Hver tjeneste sender strukturerte JSON-logger med spor-ID-er, forespørsels-ID-er og deployment-SHA-er. Logger sendes til Loki via OTel Collector. Oppbevaring: 14 dager varmt, 90 dager kaldt på R2.
Lag 3: Fire gylne signaler per tjeneste. Latens (P50/P95/P99), trafikk (forespørsler/sek), feil (rate) og metning (ressursutnyttelse). Eksportert som Prometheus-metrikker via OTel SDK. Lagret i en lettvekts Mimir-instans. Ingen tilpassede metrikker utover disse fire kategoriene.
Lag 4: Sporing ved behov. Vi sporer ikke hver forespørsel. Vi sporer feil, trege forespørsler (>2s) og et 5 %-utvalg av normal trafikk. Lagret i Tempo. Spurt gjennom Grafana ved undersøkelse av spesifikke hendelser.
Lag 5: Syntetiske kanarifugler. Enkle HTTP-sjekker mot kritiske endepunkter, hvert 60. sekund, fra tre geografiske regioner. Cloudflare Health Checks pluss en håndfull tilpassede Workers. Varsler går til en enkelt Slack-kanal med vaktrotasjon.
Totale observability-utgifter for 22 systemer: omtrent $340/mnd. Det er ikke en skrivefeil. Edge-telemetri er gratis. Loki, Mimir og Tempo kjører på to beskjedne VM-er ($85/mnd hver). R2-lagring er ubetydelig. Grafana Clouds gratistier dekker dashbord- og varslingsbehovene våre.
Begrensningen som gjør dette mulig: vi bestemte hvilke spørsmål vi trenger å besvare før vi bestemte hva vi skulle samle inn. Disiplin i designfasen eliminerer sløsing i faktureringsfasen.
XI. Den praktiske migreringsveien
Hvis du i dag betaler observability-skatten og vil redusere den, ikke riv og erstatt. Migrer inkrementelt:
Måned 1: Revisjon. Kartlegg hvert dashbord, varsel og metrikk. For hvert element, svar: når ble dette sist sett på? Drev det en beslutning? Slett alt som feiler begge testene. De fleste team kan eliminere 40-60 % av observability-overflaten i dette steget alene, uten risiko.
Måned 2: Instrumenter med OpenTelemetry. Legg til OTel SDK ved siden av den eksisterende leverandøragenten. Dobbeltlever telemetri til både nåværende leverandør og en selvhostet collector. Dette gir et sammenligningsgrunnlag uten nedetid.
Måned 3: Sett opp billig lagring. Deploy ClickHouse Cloud eller en selvhostet instans, Loki for logger og Grafana for dashbord. Rut OTel Collector-utdataene til begge backendene. Verifiser at den selvhostede stakken besvarer de samme spørsmålene som den kommersielle plattformen.
Måned 4: Overgang. Deaktiver leverandøragenten på ikke-kritiske tjenester først. Overvåk for hull. Utvid til alle tjenester over 2-4 uker. Behold leverandørkontrakten aktiv i en måned til som forsikring.
Måned 5: Optimaliser. Nå som du kontrollerer pipelinen, implementer aggressiv filtrering og sampling i OTel Collector. Fjern metrikker ingen spør etter. Sampl rutinespor. Forkort oppbevaring på debug-logger. Det er her kostnadsreduksjonen på 80-90 % materialiserer seg.
XII. Hva observability bør være
Observability eksisterer for å informere beslutninger. Ikke for å gi trygghet. Ikke for å generere dashbord. Ikke for å fylle en SOC 2-avkrysningsboks. For å informere beslutninger.
Hver metrikk bør ha en eier og en responsplan. Hvert varsel bør ha en runbook. Hvert dashbord bør besvare et spørsmål noen faktisk stiller. Alt annet er kostnad uten verdi.
Den antikke greske legen Hippokrates krediteres prinsippet: "Først, gjør ingen skade." Observability-ekvivalenten er: først, ikke sløs. Ikke samle inn data du ikke vil spørre etter. Ikke varsle på tilstander du ikke vil handle på. Ikke oppbevar logger utover vinduet der de er nyttige.
Det finnes en dypere parallell her. I Marcus Aurelius' Meditasjoner vender han gjentatte ganger tilbake til ideen om å skille mellom det som er i din kontroll og det som ikke er det. Den stoiske disiplinen er å fokusere oppmerksomhet og energi utelukkende på det førstnevnte. Observability, praktisert godt, er en stoisk disiplin. Du kan ikke forhindre hver hendelse. Du kan kontrollere hva du måler, hva du varsler på, og hvordan du responderer. Resten er støy -- og støy, i observability som i filosofi, er fienden til klarhet.
Det beste overvåkingssystemet er det du forstår fullstendig, som koster proporsjonalt med verdien det gir, og som du kunne bygge opp igjen fra bunnen av på en uke. Hvis observability-leverandøren din forsvant i morgen, ville du være fortapt -- eller frigjort?
Det spørsmålet fortjener et ærlig svar.
Referanser
- Datadog, Inc. "Pricing." datadoghq.com/pricing
- OpenTelemetry Project. "OpenTelemetry Collector Documentation." opentelemetry.io/docs/collector
- ClickHouse, Inc. "ClickHouse Cloud Pricing." clickhouse.com/pricing
- Grafana Labs. "Grafana Loki Documentation." grafana.com/docs/loki
- Cloudflare. "Workers Analytics Engine." developers.cloudflare.com/analytics/analytics-engine
- Charity Majors, Liz Fong-Jones, George Miranda. Observability Engineering. O'Reilly Media, 2022.
- Google SRE Team. "Monitoring Distributed Systems." sre.google/sre-book/monitoring-distributed-systems
- Cindy Sridharan. Distributed Systems Observability. O'Reilly Media, 2018.
- PagerDuty. "State of Digital Operations Report 2023." pagerduty.com/resources
- Cloudflare. "R2 Pricing." developers.cloudflare.com/r2/pricing
- Grafana Labs. "Grafana Tempo Documentation." grafana.com/docs/tempo
- New Relic, Inc. "New Relic Pricing." newrelic.com/pricing