Página de estado y monitoreo de uptime para apps NestJS
Monitorea controllers NestJS, providers, microservices y workers BullMQ. Los health endpoints estilo Terminus encajan con nuestras aserciones JSON.
Tres formas de lanzar una página de estado para NestJS
Elige el nivel de control que necesitas — sin código, low-code o headless completo.
Alojado
Añade tu endpoint NestJS, apunta un CNAME a status.tudominio.com, listo. Funciona en 5 minutos.
Headless
Usa nuestra API pública para construir tu propia UI dentro de tu app NestJS. Control total sobre diseño y marca.
Ver la APIBadges embebidos
Coloca badges SVG de uptime y estado en tu README o landing page. Se actualizan cada 5 minutos.
Pega este health endpoint en tu app NestJS
Copia, pega, apunta PulseAPI a la URL. Devuelve 200 sano, 503 degradado.
import { Controller, Get } from '@nestjs/common'
import {
HealthCheck,
HealthCheckService,
TypeOrmHealthIndicator,
MemoryHealthIndicator,
} from '@nestjs/terminus'
@Controller('health')
export class HealthController {
constructor(
private health: HealthCheckService,
private db: TypeOrmHealthIndicator,
private memory: MemoryHealthIndicator,
) {}
@Get()
@HealthCheck()
check() {
return this.health.check([
() => this.db.pingCheck('database'),
() => this.memory.checkHeap('memory_heap', 300 * 1024 * 1024),
])
}
}Terminus ya devuelve la forma que PulseAPI asertea — `$.details.database.status == "up"` funciona de fábrica.
Qué se rompe en apps NestJS — y cómo detectarlo
Indicadores Terminus que pasan con la app rota
Un ping a db puede pasar mientras un servicio crítico está caído. Combina pings HTTP y aserciones de schema para cobertura real.
Fallos de transporte de microservicios
Caídas de gRPC o Redis causan timeouts silenciosos. Monitorea cada microservice directo.
Procesadores BullMQ crasheando
Un worker sale y la API sigue en pie. Expón heartbeat del procesador y alerta.
¿No te gusta nuestra página de estado? Construye la tuya en NestJS.
Nuestra API devuelve los mismos datos que consume nuestra UI alojada. Spec OpenAPI completa en api.pulseapi.tech/docs.
import { Controller, Get } from '@nestjs/common'
import { HttpService } from '@nestjs/axios'
import { firstValueFrom } from 'rxjs'
@Controller('status')
export class StatusController {
constructor(private http: HttpService) {}
@Get()
async status() {
const res = await firstValueFrom(
this.http.get('https://api.pulseapi.tech/status/acme', { timeout: 5000 }),
)
return res.data
}
}Monitoreo NestJS — FAQ
¿Funciona con Terminus de fábrica?
Sí. La forma por defecto de Terminus encaja directamente con nuestras aserciones JSON-path.
¿Puedo monitorear microservices?
Sí. Expón cada health check de microservice por HTTP y añádelos como endpoints separados.
¿Soporta GraphQL?
Sí. POST una query y asertea sobre la forma de la respuesta JSON.
¿Puedo renderizar la página de estado desde NestJS?
Sí. Llama la API en un controller y devuelve JSON, o renderiza con Handlebars/MJML.
Empieza a monitorear tu app NestJS en 5 minutos
Plan gratuito. Sin tarjeta. Añade tu endpoint y recibe alertas cuando falle.