Runtime Controls
Configure warnings, retries, replicas, caching, telemetry, and query analysis.
Runtime Controls
import { connect, KadakMetrics } from '@shyk/kadak-orm'
const metrics = new KadakMetrics()
const db = connect({
url: process.env.DATABASE_URL!,
dialect: 'postgres',
readReplicas: [process.env.READ_REPLICA_URL!],
warnings: 'relaxed',
retryAttempts: 2,
retryDelayMs: 200,
retryBackoffFactor: 2,
retryMaxDelayMs: 3000,
retryJitterPct: 0.2,
retryWrites: false,
defaultLimit: 100,
validateResults: true,
slowQueryMs: 250,
largeResultRows: 1000,
repeatedQueryThreshold: 25,
explainAnalyze: true,
explainThresholdMs: 300,
selectCacheTtlMs: 5000,
selectCacheMaxEntries: 500,
metrics,
onWarning: (warning) => {
// machine-readable warning event
console.log(warning.warningCode, warning.phase)
},
onQuery: (event) => {
if (event.durationMs > 300) console.log('slow query', event.sql)
},
}, { users })High-impact options
warnings:relaxed|strict|silentdialect:'postgres' | 'mysql' | 'sqlite'or custom adapterdefaultLimit: fallback$limitfor list queriesreadReplicas: routeSELECTto replicasretryAttempts+retryWrites: retry policyretryBackoffFactor+retryMaxDelayMs+retryJitterPct: exponential retry backoffselectCacheTtlMs+selectCacheMaxEntries: in-memory SELECT cachevalidateResults: validate rows with table select validatorexplainAnalyze: warn on slow/risky select plansonWarning: structured warning event hook (warningCode,phase,message)
Metrics
console.log(metrics.snapshot())
console.log(metrics.exportPrometheus())