Refactor connection pool diagnostics in diagnose-db-performance.js: Update pool configuration retrieval to use Sequelize config, improve error handling, and enhance console output for better clarity on pool status. This change ensures more accurate diagnostics and user feedback regarding database connection pooling.

This commit is contained in:
Torsten Schulz (local)
2026-01-29 13:56:46 +01:00
parent 57d64a7ef8
commit 59cad22183
3 changed files with 322 additions and 19 deletions

View File

@@ -445,28 +445,34 @@ async function checkQueryStats() {
async function checkConnectionPool() {
console.log('🏊 8. Connection Pool Status\n');
const pool = sequelize.connectionManager.pool;
console.log(` Pool-Konfiguration:`);
console.log(` Max: ${pool.max}`);
console.log(` Min: ${pool.min}`);
console.log(` Acquire Timeout: ${pool.acquire}ms`);
console.log(` Idle Timeout: ${pool.idle}ms`);
console.log(` Evict Interval: ${pool.evict}ms\n`);
// Versuche Pool-Status zu bekommen (falls verfügbar)
try {
const poolSize = pool.size || 0;
const poolUsed = pool.used || 0;
const poolPending = pool.pending || 0;
// Hole Pool-Konfiguration aus Sequelize Config
const config = sequelize.config;
const poolConfig = config.pool || {};
console.log(` Pool-Status:`);
console.log(` Größe: ${poolSize}`);
console.log(` Verwendet: ${poolUsed}`);
console.log(` Wartend: ${poolPending}\n`);
console.log(` Pool-Konfiguration:`);
console.log(` Max: ${poolConfig.max || 'N/A'}`);
console.log(` Min: ${poolConfig.min || 'N/A'}`);
console.log(` Acquire Timeout: ${poolConfig.acquire || 'N/A'}ms`);
console.log(` Idle Timeout: ${poolConfig.idle || 'N/A'}ms`);
console.log(` Evict Interval: ${poolConfig.evict || 'N/A'}ms\n`);
// Versuche Pool-Status zu bekommen
const pool = sequelize.connectionManager.pool;
if (pool) {
const poolSize = pool.size || 0;
const poolUsed = pool.used || 0;
const poolPending = pool.pending || 0;
console.log(` Pool-Status:`);
console.log(` Größe: ${poolSize}`);
console.log(` Verwendet: ${poolUsed}`);
console.log(` Wartend: ${poolPending}\n`);
} else {
console.log(` Pool-Objekt nicht verfügbar\n`);
}
} catch (error) {
// Pool-Status möglicherweise nicht verfügbar
console.log(` Detaillierter Pool-Status nicht verfügbar\n`);
console.log(` ⚠️ Fehler beim Abrufen der Pool-Informationen: ${error.message}\n`);
}
}