Monitoring i obserwowalność

1. Cztery filary obserwowalności

FilarNarzędzieZakres
BłędySentryŚledzenie wyjątków, performance, sessions
MetrykiPrometheus + GrafanaMetryki systemowe, aplikacyjne, biznesowe
DostępnośćUptime KumaMonitoring endpointów i usług
LogiStructured loggingJSON logi z korelacją request ID

2. Sentry — śledzenie błędów

Projekty

ProjektPlatformaSDK
busikm-backendPython / Djangosentry-sdk[django,celery]
busikm-mobileReact Native@sentry/react-native
busikm-webNext.js@sentry/nextjs

Funkcje

  • Error tracking — automatyczne przechwytywanie wyjątków z pełnym stack trace
  • Performance monitoring — czas odpowiedzi endpointów, transakcje bazodanowe
  • Session replay (web) — nagrywanie sesji użytkowników
  • Release tracking — powiązanie błędów z wersjami kodu

Scrubbing danych wrażliwych

Automatycznie usuwane z raportów: password, token, NIP, PESEL, credit_card, nagłówki Authorization i Cookie.

3. Prometheus — metryki

Cele scrapowania

TargetEndpointPortInterwał
django/metrics800015s
postgres-exporter/metrics918715s
redis-exporter/metrics912115s
mongo-exporter/metrics921615s
celery-exporter/metrics980815s
node-exporter/metrics910015s

4. Grafana — dashboardy

DashboardPanele
System OverviewCPU, RAM, disk, network, uptime per usługę
API PerformanceLatency p50/p95/p99, requests/s, error rate, top-10 slowest
CeleryQueue length, task success/failure rate, avg task time
Business MetricsActive trips, GPS points ingested, reports generated, companies registered

5. Metryki biznesowe

MetrykaŹródłoOpis
busikm_active_tripsDjangoAktywne przejazdy w danej chwili
busikm_gps_points_totalDjangoŁączna liczba zapisanych punktów GPS
busikm_reports_generatedCeleryWygenerowane raporty (per typ: PDF, CSV)
busikm_exports_totalCeleryEksporty FK (per provider: insert_gt, optima)
busikm_companies_totalDjangoZarejestrowane firmy (per plan)

6. Reguły alertów

AlertWarunekSeverity
ServiceDownup == 0 przez 1 mincritical
HighErrorRate>5% błędów 5xx w 5 mincritical
HighLatencyp95 > 2s przez 5 minwarning
DiskSpaceLow<10% wolnego miejscawarning
CeleryBacklog>100 zadań w kolejce >5 minwarning
DatabaseConnections>80% max connectionswarning
HighMemoryUsage>90% RAM przez 5 mincritical

7. Uptime Kuma

Publiczna strona statusu: status.busikm.pl

Monitorowane endpointy (12):

  • API Health (/api/health/)
  • Auth endpoint (/api/v1/auth/login/)
  • WebSocket (wss://api.busikm.pl/ws/)
  • PostgreSQL, MongoDB, Redis
  • Celery workers, MinIO/S3
  • Web frontend, Grafana, Sentry

8. Kanały powiadomień

KanałCelFaza
E-mailAlerty non-criticalMVP
Slack (#busikm-alerts)Wszystkie alertyMVP
PagerDutyEskalacja SEV-1Post-MVP

9. Reagowanie na incydenty

SeverityOpisCzas reakcjiPrzykład
SEV-1Krytyczny — system niedostępny<15 minAPI nie odpowiada, baza padła
SEV-2Poważny — degradacja funkcji<1hGPS nie zapisuje, raporty nie generują się
SEV-3Średni — funkcja działa z ograniczeniami<4hWolne ładowanie mapy, timeout na eksporcie
SEV-4Niski — kosmetyczny problem<24hBłąd w UI, literówka w raporcie