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'APIBadges 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é.
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.
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.
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.