Lewati ke konten

Utilitas (Utilities)

Modul utilitas menampung utilitas internal yang dapat digunakan kembali termasuk logging JSON terstruktur, penghitung performa beroverhead rendah, dan pool objek memori. Helper ini dioptimalkan secara khusus untuk meminimalkan beban garbage collection pada hot path berthroughput tinggi. Utilitas ini digunakan secara luas di seluruh perutean inti dan lapisan eksekusi kebijakan.

SimbolJenisTanda TanganTujuan
LogLevelenumenum LogLevelEnum export for LogLevel.
LoggerConfiginterfaceinterface LoggerConfigInterface export for LoggerConfig.
LogContextinterfaceinterface LogContextInterface export for LogContext.
Loggerinterfaceinterface LoggerInterface export for Logger.
createLoggerfunctionfunction createLogger(config: Partial<LoggerConfig> = {}): LoggerFunction export for createLogger.
loggerconstconst logger = createLogger(Const export for logger.
StructuredLoggerclassclass StructuredLoggerClass export for StructuredLogger.
createRequestLoggerfunctionfunction createRequestLogger()Function export for createRequestLogger.
logSlowRequestfunctionfunction logSlowRequest(method: string, path: string, latencyMs: number, threshold: numberFunction export for logSlowRequest.
MetricsCollectorclassclass MetricsCollectorMetrics collector for gateway performance monitoring Uses lock-free counters and circular buffers
metricsconstconst metrics = new MetricsCollector()Export singleton instance
Poolableinterfaceinterface PoolablePoolable object interface Objects in pool must implement reset method
PoolStatsinterfaceinterface PoolStatsPool statistics for monitoring
PoolFactorytypetype PoolFactory<T> = () => TFactory function for creating new pool objects
ObjectPoolclassclass ObjectPool<T extends Poolable>Generic object pool implementation Fixed-size pool with overflow handling
BufferPoolclassclass BufferPoolBuffer pool for reusing byte buffers Uses wrapper class to avoid monkey-patching Buffer prototype

Logger JSON terstruktur yang menulis langsung ke stdout dengan filter tingkat log yang dapat dikonfigurasi.

Pool daur ulang berukuran tetap untuk objek konteks guna menghindari churn alokasi memori per permintaan.

Ring buffer ringan yang melacak histogram waktu dan inkremen penghitung.

  • src/utils/logger.ts
  • src/utils/metrics.ts
  • src/utils/pool.ts