NestJS

NestJS ऐप्स के लिए स्टेटस पेज और अपटाइम मॉनिटरिंग

NestJS controllers, providers, microservices, BullMQ workers मॉनिटर करें। Terminus-style health endpoints हमारी JSON assertions के साथ स्वाभाविक रूप से मेल खाते हैं।

NestJS के लिए स्टेटस पेज लॉन्च करने के तीन तरीके

नियंत्रण का स्तर चुनें — zero-code, low-code, या पूर्ण headless।

Hosted

अपना NestJS endpoint जोड़ें, CNAME को status.yourdomain.com पर point करें, हो गया। 5 मिनट में।

Headless

Public API का उपयोग करके अपनी NestJS ऐप के अंदर अपनी UI बनाएं। डिज़ाइन और ब्रांडिंग पर पूरा नियंत्रण।

API देखें

एम्बेडेड badges

अपने README या landing page में SVG uptime और status badges डालें। हर 5 मिनट में auto-update।

इस health endpoint को अपनी NestJS ऐप में जोड़ें

Copy, paste, PulseAPI को URL पर point करें। स्वस्थ पर 200, degraded पर 503 return करता है।

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 पहले से ऐसा shape return करता है जिस पर PulseAPI assert करता है — `$.details.database.status == "up"` directly काम करता है।

NestJS ऐप्स में क्या टूटता है — और कैसे पकड़ें

Terminus indicators जो app टूटी होने पर भी pass होते हैं

जब critical service down हो तब भी db ping succeed हो सकता है। Realistic coverage के लिए HTTP pings और schema assertions layer करें।

Microservice transport failures

gRPC या Redis transport drops silent timeouts देते हैं। हर microservice endpoint को directly monitor करें।

BullMQ processors crash होना

Worker exit हो सकता है और API up रहती है। Processor heartbeat expose करें और रुकने पर alert करें।

Headless angle

हमारा स्टेटस पेज पसंद नहीं? NestJS में अपना बनाएं।

हमारी API वही data लौटाती है जो हमारी hosted UI उपयोग करती है। पूर्ण OpenAPI spec यहां api.pulseapi.tech/docs.

Custom page के लिए status data proxy करने वाला Nest controller।
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
  }
}

NestJS मॉनिटरिंग — FAQ

क्या यह Terminus के साथ out of the box काम करता है?

हां। Terminus का default response shape हमारी JSON-path assertions पर directly map होता है।

क्या मैं microservices monitor कर सकता हूं?

हां। हर microservice health check HTTP पर expose करें और उन्हें PulseAPI में separate endpoints के रूप में add करें।

क्या यह GraphQL support करता है?

हां। एक query POST करें और JSON response shape पर assert करें।

क्या NestJS से स्टेटस पेज render कर सकता हूं?

हां। Controller में API hit करें और JSON return करें, या Handlebars/MJML से render करें।

अपनी NestJS ऐप की मॉनिटरिंग 5 मिनट में शुरू करें

मुफ्त tier, कोई credit card नहीं। अपना endpoint जोड़ें और टूटने पर alerts पाएं।