NutriFlow — Observabilidad de Servicios (SRE)
Peticiones / min
2.847
▲ +12% vs hora anterior
Tasa de error
3.2%
▲ +0.8pp — payment-service
Latencia P95
847 ms
▲ +180 ms — meal-planner
Errores 5xx (30 min)
312
▲ 62 en últimos 5 min
Disponibilidad
96.8%
SLO target: 99.5%
Volumen de Peticiones — Últimos 30 min
Count of records · Date histogram @timestamp · Split: service.name
Lens · Line
api-gateway
payment-service
meal-planner
user-auth
Distribución Códigos HTTP
Count · Top values of http.response.status_code
Lens · Donut
200 OK
66,970
78.4%
201 Created
6,919
8.1%
4xx Client
6,748
7.9%
5xx Server
4,784
5.6%
Errores por Servicio — Últimos 30 min
Filter: level:"error" · Top 5 values of service.name
Lens · Bar
Latencia P95 por Servicio
95th percentile of response_time_ms · Filter: NOT /health
Lens · Metric
payment-service
1,240 ms
▲ SLO: > 800ms
meal-planner
847 ms
⚠ SLO: ~límite 800ms
api-gateway
312 ms
✓ dentro de SLO
user-auth
198 ms
✓ dentro de SLO
Top Errores por Frecuencia — Últimos 30 min
Filter: level:"error" · Columns: message.keyword, service.name, count · Top 8 · KQL: level:"error"
Lens · Table
| Mensaje de Error | Servicio | Nivel | Último visto | Count | % |
|---|---|---|---|---|---|
| PaymentGateway timeout: upstream 504 after 30000ms | payment-service | ERROR | 11:42:18 | 187 | 25.1% |
| Stripe webhook signature verification failed | payment-service | ERROR | 11:41:55 | 125 | 16.8% |
| OpenAI API rate limit exceeded (429) — meal generation | meal-planner | WARN | 11:42:05 | 94 | 12.6% |
| PostgreSQL connection pool exhausted (pool_size=20) | meal-planner | ERROR | 11:40:33 | 73 | 9.8% |
| JWT token expired — forcing re-authentication | user-auth | WARN | 11:42:20 | 37 | 5.0% |
| SendGrid delivery failed — bounce rate exceeded threshold | notification-svc | ERROR | 11:39:11 | 31 | 4.2% |
| Redis CLUSTER NODES timeout — cache miss fallback | api-gateway | WARN | 11:41:08 | 28 | 3.8% |
| Unhandled promise rejection in /api/v2/plans endpoint | api-gateway | ERROR | 11:38:42 | 22 | 3.0% |
Alerting Rules — Kibana Alerting
High Error Rate — payment-service
ES Query · >50 errores en 5 min · interval: 1m · Notif: Slack #sre-alerts
FIRED
hace 3 min
P95 Latency — meal-planner > 800ms
ES Query · percentile 95 > 800ms rolling 10min · Notif: PagerDuty
WARNING
hace 8 min
Disk Usage — Elasticsearch Nodes
Infrastructure · >85% disk usage · Notif: Email ingeniería
OK
11:40:00
SLO Burn Rate — api-gateway
SLO · 99.5% uptime · Fast burn >14x · Notif: PagerDuty
OK
11:42:00
Kibana Spaces — NutriFlow
sre-team
Infraestructura y observabilidad
4 dashboards
payments-team
Pagos, Stripe, facturación
2 dashboards
product-analytics
Activación, retención, funnel
6 dashboards
data-science
ML models, notebooks, experimentos
3 dashboards
KQL — Consultas rápidas SRE
KQL · Elasticsearch
# Errores payment-service (últimas 2h) level: "error" AND service.name: "payment-service" # Peticiones lentas (>2s, excluyendo /health) response_time_ms > 2000 AND NOT request.path: "/health" # Errores 5xx en api-gateway http.response.status_code >= 500 AND service.name: "api-gateway" # Rate limit OpenAI en meal-planner message: *rate limit* AND service.name: "meal-planner"
docker-compose.yml — Despliegue Kibana + Elasticsearch · NutriFlow Production
YAML · Docker Compose