nestjs-performance-detector
v0.1.0
Published
Advanced Performance Monitoring and Detection Toolkit for NestJS
Downloads
16
Maintainers
Readme
@nestjs-performance/detector
Advanced Performance Monitoring and Detection Toolkit for NestJS
🚀 Features
- 📊 Comprehensive Performance Tracking
- 🕵️ Advanced Performance Issue Detection
- 💡 Easy-to-Use Decorators
- 🔍 Detailed Metrics Collection
- 🛡️ Flexible Configuration
Installation
npm install @nestjs-performance/detector
# or
yarn add @nestjs-performance/detector
Quick Start
1. Basic Performance Tracking
import { PerformanceTrack } from '@nestjs-performance/detector';
class UserService {
@PerformanceTrack({
executionTimeThreshold: 500, // 500ms
memoryThreshold: 50 * 1024 * 1024 // 50MB
})
async getUserProfile(userId: string) {
// Method implementation
}
}
2. Module Configuration
import { Module } from '@nestjs/common';
import { PerformanceDetectorModule } from '@nestjs-performance/detector';
@Module({
imports: [
PerformanceDetectorModule.register({
logLevel: 'verbose',
thresholds: {
memoryLeak: 100 * 1024 * 1024, // 100MB
cpuLoad: 80,
asyncTimeout: 500
}
})
]
})
export class AppModule {}
Performance Tracking Capabilities
- Method-Level Performance Monitoring
- Execution Time Tracking
- Memory Usage Monitoring
- Error Handling and Logging
- Customizable Thresholds
Metrics Captured
- CPU Utilization
- Memory Consumption
- Execution Duration
- Async Operation Performance
- Request Statistics
Performance Issue Detection
- Execution Time Violations
- Memory Consumption Limits
- Error Tracking
- Severity Classification
Configuration Options
interface PerformanceConfigInterface {
logLevel?: 'error' | 'warn' | 'log' | 'verbose' | 'debug';
thresholds?: {
memoryLeak?: number;
cpuLoad?: number;
asyncTimeout?: number;
memoryUsage?: number;
requestLatency?: number;
};
tracking?: {
memoryLeaks?: boolean;
cpuPerformance?: boolean;
asyncBottlenecks?: boolean;
systemProfiling?: boolean;
};
}
Advanced Usage
Performance Analyzers
import {
MemoryLeakAnalyzer,
CpuPerformanceAnalyzer,
AsyncBottleneckAnalyzer
} from '@nestjs-performance/detector';
// Initialize analyzers
const memoryAnalyzer = new MemoryLeakAnalyzer();
const cpuAnalyzer = new CpuPerformanceAnalyzer();
const asyncAnalyzer = new AsyncBottleneckAnalyzer();
// Detect performance issues
const memoryLeakIssue = memoryAnalyzer.detectLeaks();
const cpuBottleneck = cpuAnalyzer.detectBottlenecks();
const asyncBottleneck = await asyncAnalyzer.detectBottlenecks();
Performance Logging
import { PerformanceLogger } from '@nestjs-performance/detector';
const logger = new PerformanceLogger('verbose');
// Log performance metrics
logger.logMetrics(performanceMetrics);
// Log performance issues
logger.logIssue(performanceIssue);
Roadmap
- [ ] Machine Learning Performance Prediction
- [ ] Advanced Distributed Tracing
- [ ] Real-time Performance Dashboards
- [ ] Expanded Testing Scenarios
Contributing
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
Performance Optimization Tips
- Monitor resource utilization
- Identify bottlenecks early
- Use profiling tools
- Implement caching strategies
- Optimize database queries
Troubleshooting
- Check application logs
- Review performance metrics
- Analyze test results
- Consult monitoring dashboards
License
MIT License
Contact
For more information, contact the Performance Monitoring Team