NestJS

Página de status e monitoramento de uptime para apps NestJS

Monitore controllers NestJS, providers, microservices e workers BullMQ. Health endpoints estilo Terminus mapeiam nas nossas asserções JSON.

Três formas de lançar uma página de status para NestJS

Escolha o nível de controle — sem código, low-code ou headless completo.

Hospedado

Adicione seu endpoint NestJS, aponte um CNAME para status.seudominio.com, pronto. Em 5 minutos.

Headless

Use nossa API pública para construir sua própria UI dentro do app NestJS. Controle total sobre design e marca.

Ver a API

Badges embutidos

Coloque badges SVG de uptime e status no seu README ou landing page. Atualizam a cada 5 minutos.

Cole este health endpoint no seu app NestJS

Copie, cole, aponte o PulseAPI para a URL. Retorna 200 saudável, 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),
    ])
  }
}

O Terminus já retorna a forma que o PulseAPI asserta — `$.details.database.status == "up"` funciona de cara.

O que quebra em apps NestJS — e como detectar

Indicadores Terminus que passam com app quebrada

Um ping db pode passar enquanto um serviço crítico está down. Combine pings HTTP e asserções de schema.

Falhas de transporte de microservices

Quedas de gRPC ou Redis causam timeouts silenciosos. Monitore cada microservice direto.

Processadores BullMQ crashando

Um worker pode sair e a API fica up. Exponha heartbeat do processador.

Abordagem headless

Não gostou da nossa página de status? Construa a sua em NestJS.

Nossa API retorna os mesmos dados que nossa UI hospedada consome. Spec OpenAPI completa em api.pulseapi.tech/docs.

Controller Nest que proxy dados de status para uma 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
  }
}

Monitoramento NestJS — FAQ

Funciona com Terminus de cara?

Sim. A forma padrão do Terminus mapeia diretamente nas nossas asserções JSON-path.

Posso monitorar microservices?

Sim. Exponha cada health check por HTTP e adicione como endpoints separados.

Suporta GraphQL?

Sim. POST uma query e asserte sobre a forma da resposta JSON.

Posso renderizar a página de status do NestJS?

Sim. Chame a API em um controller e retorne JSON, ou renderize com Handlebars/MJML.

Comece a monitorar seu app NestJS em 5 minutos

Plano grátis. Sem cartão. Adicione seu endpoint e receba alertas quando quebrar.