Statistics and monitoring example¶
This example demonstrates how to monitor DynamoDB operations and detect performance issues using @ddb-lib/stats.
Source code¶
View the complete source code: examples/standalone/stats-monitoring.ts
Topics covered¶
- Statistics collection
- Anti-pattern detection
- Optimization recommendations
- Performance metrics
- Cost analysis
Code overview¶
import { TableClient } from '@ddb-lib/client'
import { StatsCollector, AntiPatternDetector, RecommendationEngine } from '@ddb-lib/stats'
// Initialize with stats collection
const stats = new StatsCollector()
const table = new TableClient({
client: dynamoClient,
tableName: 'MyTable',
statsCollector: stats
})
// Perform operations (stats are collected automatically)
await table.query({
keyCondition: { pk: 'USER#123' }
})
// Get statistics
const summary = stats.getSummary()
console.log('Operations:', summary.totalOperations)
console.log('RCU consumed:', summary.totalRCU)
console.log('WCU consumed:', summary.totalWCU)
// Detect anti-patterns
const detector = new AntiPatternDetector(stats)
const issues = detector.detectAll()
for (const issue of issues) {
console.log(`⚠️ ${issue.type}: ${issue.message}`)
}
// Get recommendations
const engine = new RecommendationEngine(stats)
const recommendations = engine.getRecommendations()
for (const rec of recommendations) {
console.log(`💡 ${rec.title}`)
console.log(` ${rec.description}`)
}
Running the example¶
Prerequisites¶
- Node.js 18+
- AWS credentials configured
- DynamoDB table with some data