Actualizado: hace 18 s  |  Gatus v5.12
Uptime 30 días
99,97%
SLA objetivo: 99,9%
Endpoints activos
9
0 caídos
P95 respuesta API
187 ms
Umbral: 2 000 ms
SSL expira en
47 días
Alerta si < 30 días
Backend
API Gateway api.nutriflow.app/health 143 ms ACTIVO
99,97% (30 d)
Auth Service api.nutriflow.app/auth/health 68 ms ACTIVO
100% (30 d)
GraphQL API api.nutriflow.app/graphql 212 ms ACTIVO
99,93% (30 d)
Frontend
Web App app.nutriflow.app 340 ms ACTIVO
100% (30 d)
Landing Page nutriflow.app 189 ms ACTIVO
100% (30 d)
Infraestructura
PostgreSQL db.nutriflow.internal:5432 4 ms ACTIVO
100% (30 d)
Redis Cache redis.nutriflow.internal:6379 1 ms ACTIVO
100% (30 d)
Externos & Seguridad
Stripe API api.stripe.com/v1 542 ms ACTIVO
99,90% (30 d)
SSL Certificate nutriflow.app — expira 02/08/2026 47 DÍAS

Configuracion de Alertas

Slack (#ops-alerts) Activo
PagerDuty (DB) Activo
Umbral fallos 3 consecutivos
Umbral recuperacion 2 consecutivos
Alerta resolución Activada
Almacenamiento SQLite /data/gatus.db
RAM usada (Gatus) ~14 MB

Intervalos de Monitoreo

API Gateway 30 s
Auth Service 30 s
GraphQL API 30 s
Web App / Landing 60 s
PostgreSQL / Redis 15 – 30 s
Stripe API 5 min
SSL Certificate 1 h
Historial de alertas recientes
API Gateway — Recuperado
Slack #ops-alerts · Fallo temporal de red (3 checks) · Duración: 1 min 34 s
hace 2 d
!
Stripe API — Timeout puntual
Slack #ops-alerts · 1 fallo aislado · No superó umbral (3 consecutivos)
hace 4 d
GraphQL API — Latencia elevada
Slack #ops-alerts · P95 superó 1 500 ms por migración BD · Resuelto tras 8 min
hace 11 d
Configuracion generada — lista para produccion
config.yaml
docker-compose.yml
config.yaml — NutriFlow Monitoring
# config.yaml — NutriFlow SaaS Health Monitoring # Generado por CULTIVA IA · Skill: gatus-monitoreo-salud-endpoints storage: type: sqlite path: /data/gatus.db web: port: 8080 alerting: slack: webhook-url: "${SLACK_WEBHOOK_URL}" default-alert: enabled: true failure-threshold: 3 success-threshold: 2 send-on-resolved: true pagerduty: integration-key: "${PAGERDUTY_KEY}" default-alert: enabled: true failure-threshold: 5 send-on-resolved: true endpoints: # ─── Backend ─────────────────────────────────── - name: API Gateway group: backend url: "https://api.nutriflow.app/health" interval: 30s conditions: - "[STATUS] == 200" - "[RESPONSE_TIME] < 2000" - "[BODY].status == healthy" alerts: - type: slack - type: pagerduty - name: Auth Service group: backend url: "https://api.nutriflow.app/auth/health" interval: 30s conditions: - "[STATUS] == 200" - "[RESPONSE_TIME] < 1000" alerts: - type: slack - name: GraphQL API group: backend url: "https://api.nutriflow.app/graphql" method: POST headers: Content-Type: application/json body: '{"query": "{ __typename }"}' interval: 30s conditions: - "[STATUS] == 200" - "[BODY].data.__typename == Query" alerts: - type: slack # ─── Frontend ────────────────────────────────── - name: Web App group: frontend url: "https://app.nutriflow.app" interval: 60s conditions: - "[STATUS] == 200" - "[RESPONSE_TIME] < 3000" - "[BODY] contains NutriFlow" alerts: - type: slack - name: Landing Page group: frontend url: "https://nutriflow.app" interval: 60s conditions: - "[STATUS] == 200" - "[RESPONSE_TIME] < 3000" # ─── Infraestructura ─────────────────────────── - name: PostgreSQL group: infrastructure url: "tcp://db.nutriflow.internal:5432" interval: 30s conditions: - "[CONNECTED] == true" alerts: - type: slack - type: pagerduty - name: Redis Cache group: infrastructure url: "tcp://redis.nutriflow.internal:6379" interval: 15s conditions: - "[CONNECTED] == true" # ─── Externos & Seguridad ─────────────────────── - name: Stripe API group: external url: "https://api.stripe.com/v1" interval: 5m conditions: - "[STATUS] == 401" # 401 = API up, sin credenciales - "[RESPONSE_TIME] < 3000" - name: SSL Certificate group: security url: "https://nutriflow.app" interval: 1h conditions: - "[CERTIFICATE_EXPIRATION] > 720h" # Alerta si < 30 días alerts: - type: slack
docker-compose.yml
version: "3.8" services: gatus: image: twinproduction/gatus:latest ports: - "8080:8080" volumes: - ./config.yaml:/config/config.yaml - gatus-data:/data environment: - SLACK_WEBHOOK_URL=${SLACK_WEBHOOK_URL} - PAGERDUTY_KEY=${PAGERDUTY_KEY} restart: unless-stopped volumes: gatus-data: # Arrancar: docker-compose up -d # Panel: http://localhost:8080