Salud del servidor

Como un monitor de actividad para tus servidores. @blipit/node 0.2 o posterior envía las constantes vitales de cada servidor cada 30 segundos, y la página Salud del servidor las muestra en vivo, una fila por servidor, con gráficos de la última hora, 24 horas o 7 días.

1Actívalo

No hay nada que añadir: empieza con Blipit.init. Da a cada app un serverName para agrupar sus servidores bajo un nombre.

js
Blipit.init({
  key: process.env.BLIPIT_SECRET_KEY,
  serverName: "api",
});

2Lo que envía cada servidor

  • La CPU que usa el proceso, donde 100 % es un núcleo completo.
  • La memoria que usa el proceso y lo llena que está la memoria de la máquina.
  • El heap de JavaScript usado y total.
  • El retraso del bucle de eventos en el percentil 99: cuánto esperan las peticiones mientras el servidor está ocupado.
  • Handles abiertos, como sockets y temporizadores.
  • Conexiones a la base de datos de los pools de pg: en uso, libres y en espera. En espera significa que hay peticiones haciendo cola por una conexión.

3Lee la página

En vivo significa que el servidor está enviando datos; Sin informar significa que se quedó en silencio. Elige un servidor para ver sus gráficos. La página se actualiza cada 30 segundos mientras está abierta.

4Recibe alertas

En Alertas, dentro de Alertas de dependencias y servidores, fija tu propio límite para cada alerta o desactívala.

  • CPU alta: la CPU de un servidor se mantiene por encima de tu límite.
  • Memoria casi llena: el uso de memoria de un servidor se mantiene por encima de tu límite.
  • Respuestas lentas: el bucle de eventos de un servidor se bloquea más tiempo que tu límite, así que las peticiones esperan.
  • Dejó de informar: todos los servidores de un servicio dejan de enviar datos, por ejemplo tras un fallo.

5Otras tecnologías

Envía métricas de OpenTelemetry como OTLP JSON a https://in.blipit.io/v1/metrics con la cabecera X-Blipit-Key. Blipit lee process.cpu.utilization, process.memory.usage, system.memory.utilization, system.cpu.load_average.1m, db.client.connections.usage y las métricas del bucle de eventos de Node.js; service.instance.id da nombre al servidor.

sh
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=https://in.blipit.io/v1/metrics
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL=http/json
OTEL_EXPORTER_OTLP_HEADERS=X-Blipit-Key=blipit_sk_your_secret_key

6Funciones serverless

Las apps en Vercel, AWS Lambda, Netlify o Azure Functions se ejecutan como muchas instancias de corta vida que se pausan entre solicitudes. Estado del servidor las agrupa en una fila por plataforma, como Funciones de Vercel, con el número de instancias vistas y su memoria, en lugar de mostrar cada instancia como un servidor. La CPU y Sin reportar se omiten porque una instancia pausada no informa ninguna de las dos de forma útil, y las instancias serverless nunca generan alertas de CPU alta, respuesta lenta o falta de reportes.

Conviene saber

  • metrics: false lo desactiva; metricsIntervalMs cambia el intervalo de 30 segundos, hasta un mínimo de 10 segundos.
  • Se guarda lo mismo que los spans: 7 días en Free y Solo, 14 días en Team y Scale. Los datos de servidores no cuentan para ninguna cuota.
  • El porcentaje de memoria usa la memoria total de la máquina. En un contenedor con un límite de memoria menor que el del host, mira Memoria usada.

¿Atascado? Escribe a support@blipit.io. Las claves y el id de cada proyecto están en Claves API en app.blipit.io.