Structured logging (Pino) and Prometheus metrics.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add ngxtm/devkit --skill observability --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Observability?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ngxtm-observability-devkit)More formats (shields.io, HTML) on the badges page.
---
name: NestJS Observability
description: Structured logging (Pino) and Prometheus metrics.
metadata:
labels: [nestjs, logging, monitoring, pino]
triggers:
files: ['main.ts', '**/*.module.ts']
keywords: [nestjs-pino, Prometheus, Logger, reqId]
---
# Observability Standards
## Structured Logging
- **Standard**: Use `nestjs-pino` for high-performance JSON logging.
- **Why**: Node's built-in `console.log` is blocking and unstructured.
- **Configuration**:
- **Redaction**: Mandatory masking of sensitive fields (`password`, `token`, `email`).
- **Context**: Always inject `Logger` and set the context (`LoginService`).
## Tracing (Correlation)
- **Request ID**: Every log line **must** include a `reqId` (Request ID).
- `nestjs-pino` handles this automatically using `AsyncLocalStorage`.
- **Propagation**: Pass `x-request-id` to downstream microservices/database queries key to trace flows.
## Metrics
- **Exposure**: Use `@willsoto/nestjs-prometheus` to expose `/metrics` for Prometheus scraping.
- **Key Metrics**:
1. `http_request_duration_seconds` (Histogram)
2. `db_query_duration_seconds` (Histogram)
3. `memory_usage_bytes` (Gauge)
## Health Checks
- **Terminus**: Implement explicit logic for "Liveness" (I'm alive) vs "Readiness" (I can take traffic).
- **DB Check**: `TypeOrmHealthIndicator` / `PrismaHealthIndicator`.
- **Memory Check**: Fail if Heap > 300MB (prevent crash loops).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!