NestJS

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 API

Badges 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.

src/health/health.controller.ts
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.

Enfoque headless

¿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.

Controller Nest que proxy-ea datos de estado para una página custom.
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.