NestJS

Page de statut et monitoring d'uptime pour applications NestJS

Monitorez contrôleurs NestJS, providers, microservices et workers BullMQ. Les health endpoints style Terminus mappent sur nos assertions JSON.

Trois façons de livrer une page de statut pour NestJS

Choisissez le niveau de contrôle — sans code, low-code, ou full headless.

Hébergé

Ajoutez votre endpoint NestJS, pointez un CNAME sur status.votredomaine.com, fini. Marche en 5 minutes.

Headless

Utilisez notre API publique pour construire votre propre UI dans votre app NestJS. Contrôle total du design et du branding.

Voir l'API

Badges embarqués

Intégrez des badges SVG uptime et statut dans votre README ou landing. Mise à jour toutes les 5 minutes.

Collez ce health endpoint dans votre app NestJS

Copiez, collez, pointez PulseAPI sur l'URL. Renvoie 200 sain, 503 dégradé.

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 renvoie déjà la forme que PulseAPI asserte — `$.details.database.status == "up"` marche out of the box.

Ce qui casse dans les apps NestJS — et comment le détecter

Indicateurs Terminus qui passent alors que l'app est cassée

Un ping db peut réussir pendant qu'un service critique est down. Cumulez pings HTTP et assertions de schema.

Pannes de transport de microservices

gRPC ou Redis qui drop causent des timeouts silencieux. Monitorez chaque endpoint microservice directement.

Processeurs BullMQ qui crashent

Un worker peut sortir et l'API reste up. Exposez un heartbeat processeur et alertez.

Approche headless

Notre page de statut ne vous plaît pas ? Construisez la vôtre dans NestJS.

Notre API renvoie les mêmes données que notre UI hébergée consomme. Spec OpenAPI complète sur api.pulseapi.tech/docs.

Contrôleur Nest qui proxy les données de statut pour une page 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
  }
}

Monitoring NestJS — FAQ

Ça marche avec Terminus out of the box ?

Oui. La forme par défaut de Terminus mappe directement sur nos assertions JSON-path.

Puis-je monitorer des microservices ?

Oui. Exposez chaque health check en HTTP et ajoutez-les comme endpoints séparés.

Supporte-t-il GraphQL ?

Oui. POST une query et assertez sur la forme de la réponse JSON.

Puis-je rendre la page de statut depuis NestJS ?

Oui. Appelez l'API dans un contrôleur et renvoyez JSON, ou rendez avec Handlebars/MJML.

Commencez à monitorer votre app NestJS en 5 minutes

Version gratuite. Sans carte. Ajoutez votre endpoint et recevez des alertes en cas de panne.