romandockerjs/metrics-gateway

By romandockerjs

Updated 8 days ago

Gateway API con métricas automáticas y dashboard visual para cualquier backend

Image
Networking
Developer tools
Monitoring & observability
0

7.3K

romandockerjs/metrics-gateway repository overview

metrics-gateway

📧 Enviar feedback

Version Node TypeScript License

API Gateway con métricas automáticas, dashboard en tiempo real y alertas por Telegram.

Qué es

Colócalo por encima de cualquier backend existente y obtén:

  • Proxy inverso — reenvía el tráfico transparente a tu app (http y https)
  • Métricas automáticas — latencia, status codes, top endpoints de las rutas que elijas
  • Dashboard visual/metrics-ui con live tail de requests en tiempo real (SSE)
  • Alertas por Telegram — "si el error rate de /api/* supera 10% en 5 min, avísame"

Uso rápido

docker run -d \
  -p 3000:3000 \
  -e TARGET_URL=http://host.docker.internal:4000 \
  --add-host=host.docker.internal:host-gateway \
  -v metrics-data:/app/data \
  --name metrics-gateway \
  romandockerjs/metrics-gateway:2.0.0

Cambia 4000 por el puerto de tu backend. Luego abre:

Desde el dashboard: pestaña routes para elegir qué rutas vigilar (soporta wildcard /api/*), pestaña alerts para conectar tu bot de Telegram y definir reglas.

Alertas por Telegram

  1. Crea un bot con @BotFather y consigue tu chat id con @userinfobot
  2. Conéctalo desde la pestaña alerts del dashboard (o por env vars) — sin reiniciar
  3. Define reglas: métrica (error_rate / avg_latency / 5xx count), ruta, umbral, ventana y cooldown

Variables de entorno

VariableDefaultDescripción
TARGET_URLURL de tu backend (requerida)
PORT3000Puerto del gateway
METRICS_API_KEYvacíoProtege el dashboard con header X-Metrics-Key (opcional)
TELEGRAM_BOT_TOKENvacíoToken del bot para alertas (opcional)
TELEGRAM_CHAT_IDvacíoChat donde llegan las alertas (opcional)
ALERT_CHECK_INTERVAL_MS30000Frecuencia de evaluación de reglas

Tags

  • 2.0.0, latest — v2: Alertas Telegram, live tail SSE, dashboard con pestañas
  • 1.0.0 — v1 legacy (sin alertas)

¿Es seguro?

metrics-gateway no almacena ni transmite el contenido de tus requests.

Solo registra metadata:

  • Path y método HTTP
  • Status code de la respuesta
  • Latencia en ms
  • IP del cliente

El body de tus requests nunca se toca, nunca se guarda. Todo queda local en tu máquina en un archivo SQLite. Las credenciales del bot de Telegram (si las configuras desde el dashboard) también se guardan solo en ese SQLite local, y los mensajes salen únicamente hacia la API de Telegram cuando una regla dispara.

La imagen corre como usuario no-root e incluye HEALTHCHECK.

Tag summary

Content type

Image

Digest

sha256:d00dc3d34

Size

65.8 MB

Last updated

8 days ago

docker pull romandockerjs/metrics-gateway