Skip to content

feat: added keep message#16

Merged
shakcho merged 2 commits into
mainfrom
feat/keep-messages
Jun 10, 2026
Merged

feat: added keep message#16
shakcho merged 2 commits into
mainfrom
feat/keep-messages

Conversation

@shakcho

@shakcho shakcho commented Jun 10, 2026

Copy link
Copy Markdown
Owner

No description provided.

@vercel

vercel Bot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
konsole Ready Ready Preview, Comment Jun 10, 2026 3:36pm

@github-actions

Copy link
Copy Markdown
Contributor

📊 Benchmark Results

🔴 Significant regression detected — at least one metric exceeds the 15% threshold.
🟢 within ±5% of baseline (or improvement) · 🟡 5–15% regression · 🔴 >15% regression · 🆕 no baseline yet

Throughput (ops/sec — higher is better)

Logger Current Baseline Δ Status
Konsole (silent+buffer) 2.23M 2.29M -2.5% 🟢
Konsole (silent, no buffer) 6.25M 8.17M -23.5% 🔴
Konsole (JSON → /dev/null) 244.4K 244.9K -0.2% 🟢
Konsole (child+buffer) 2.79M 2.71M +3.1% 🟢
Konsole (child, no buffer) 79.34M 90.40M -12.2% 🟡
Pino (disabled) 8.98M 9.26M -3.0% 🟢
Pino (JSON → /dev/null) 285.2K 288.4K -1.1% 🟢
Pino (child, disabled) 78.57M 87.33M -10.0% 🟡
Winston (silent) 1.15M 1.18M -3.0% 🟢
Winston (JSON → /dev/null) 124.0K 140.7K -11.9% 🟡
Winston (child, silent) 906.1K 938.7K -3.5% 🟢
Consola (silent) 7.52M 7.64M -1.6% 🟢
Consola (JSON → /dev/null) 220.8K 218.4K +1.1% 🟢
Consola (tagged child, silent) 14.92M 14.20M +5.1% 🟢
Bunyan (JSON → /dev/null) 212.3K 206.8K +2.7% 🟢
Bunyan (child → /dev/null) 235.7K 230.6K +2.2% 🟢

Latency p50 (lower is better)

Logger Current Baseline Δ Status
Konsole (silent+buffer) 331 ns 327 ns +1.1% 🟢
Konsole (silent, no buffer) 88 ns 88 ns +0.5% 🟢
Konsole (JSON → /dev/null) 3.77 µs 3.76 µs +0.4% 🟢
Konsole (child+buffer) 267 ns 263 ns +1.3% 🟢
Konsole (child, no buffer) 6 ns 6 ns +0.0% 🟢
Pino (disabled) 98 ns 96 ns +2.5% 🟢
Pino (JSON → /dev/null) 3.06 µs 3.00 µs +2.1% 🟢
Pino (child, disabled) 6 ns 6 ns +2.5% 🟢
Winston (silent) 463 ns 457 ns +1.5% 🟢
Winston (JSON → /dev/null) 4.24 µs 4.14 µs +2.4% 🟢
Winston (child, silent) 866 ns 852 ns +1.7% 🟢
Consola (silent) 96 ns 102 ns -5.5% 🟢
Consola (JSON → /dev/null) 4.39 µs 4.42 µs -0.6% 🟢
Consola (tagged child, silent) 16 ns 26 ns -40.2% 🟢
Bunyan (JSON → /dev/null) 4.54 µs 4.62 µs -1.7% 🟢
Bunyan (child → /dev/null) 4.12 µs 4.19 µs -1.5% 🟢

Latency p95 (lower is better)

Logger Current Baseline Δ Status
Konsole (silent+buffer) 748 ns 749 ns -0.1% 🟢
Konsole (silent, no buffer) 94 ns 92 ns +1.7% 🟢
Konsole (JSON → /dev/null) 5.20 µs 5.11 µs +1.7% 🟢
Konsole (child+buffer) 296 ns 277 ns +6.8% 🟡
Konsole (child, no buffer) 6 ns 6 ns +0.0% 🟢
Pino (disabled) 107 ns 100 ns +6.6% 🟡
Pino (JSON → /dev/null) 4.21 µs 4.03 µs +4.5% 🟢
Pino (child, disabled) 6 ns 6 ns +0.0% 🟢
Winston (silent) 1.44 µs 1.46 µs -0.8% 🟢
Winston (JSON → /dev/null) 8.67 µs 8.91 µs -2.7% 🟢
Winston (child, silent) 2.54 µs 2.27 µs +11.5% 🟡
Consola (silent) 107 ns 107 ns -0.4% 🟢
Consola (JSON → /dev/null) 4.66 µs 4.71 µs -1.1% 🟢
Consola (tagged child, silent) 21 ns 30 ns -28.2% 🟢
Bunyan (JSON → /dev/null) 4.80 µs 4.94 µs -2.7% 🟢
Bunyan (child → /dev/null) 4.39 µs 4.44 µs -1.1% 🟢

Latency p99 (lower is better)

Logger Current Baseline Δ Status
Konsole (silent+buffer) 1.40 µs 1.25 µs +12.1% 🟡
Konsole (silent, no buffer) 400 ns 375 ns +6.9% 🟡
Konsole (JSON → /dev/null) 5.74 µs 5.60 µs +2.6% 🟢
Konsole (child+buffer) 1.18 µs 1.19 µs -0.6% 🟢
Konsole (child, no buffer) 6 ns 6 ns +2.6% 🟢
Pino (disabled) 289 ns 257 ns +12.6% 🟡
Pino (JSON → /dev/null) 10.92 µs 9.26 µs +18.0% 🔴
Pino (child, disabled) 6 ns 6 ns +0.0% 🟢
Winston (silent) 1.76 µs 1.74 µs +1.5% 🟢
Winston (JSON → /dev/null) 182.66 µs 124.74 µs +46.4% 🔴
Winston (child, silent) 3.73 µs 3.30 µs +12.8% 🟡
Consola (silent) 118 ns 119 ns -0.3% 🟢
Consola (JSON → /dev/null) 5.55 µs 5.79 µs -4.1% 🟢
Consola (tagged child, silent) 28 ns 35 ns -21.4% 🟢
Bunyan (JSON → /dev/null) 6.00 µs 8.11 µs -26.1% 🟢
Bunyan (child → /dev/null) 5.35 µs 5.40 µs -0.9% 🟢

Bundle Size (lower is better)

Asset Current Baseline Δ Status
ESM raw 58.63 KB 58.28 KB +0.6% 🟢
ESM gzip 16.91 KB 16.80 KB +0.6% 🟢
UMD raw 36.56 KB 36.33 KB +0.6% 🟢
UMD gzip 11.37 KB 11.31 KB +0.6% 🟢
TYPES raw 44.66 KB 43.82 KB +1.9% 🟢
TYPES gzip 13.30 KB 13.03 KB +2.1% 🟢

Memory (lower is better)

Metric Current Baseline Δ Status
Δ RSS (100K entries) 256.00 KB 0 B no baseline 🆕
Per-entry 3 B 0 B no baseline 🆕
Δ RSS (capped buffer, 100K) 0 B 0 B no baseline 🆕

Runner: linux/x64 · Node v22.22.3 · AMD EPYC 7763 64-Core Processor · baseline from 2026-06-10T15:14:35.078Z

Full benchmark output
┌─────────────────────────────────────────────────────┐
│  Konsole Performance Benchmark                      │
│  Throughput & Latency vs. Popular Loggers           │
└─────────────────────────────────────────────────────┘

  Platform:    linux x64
  Node.js:     v22.22.3
  CPU:         AMD EPYC 7763 64-Core Processor
  Iterations:  100,000


─── Throughput & Latency (strict: serialize + sync write per line) ─

┌─────────┬──────────────────────────────────┬──────────────────┬───────────┬───────────┬─────────────┬──────────┐
│ (index) │ Logger                           │ ops/sec          │ p50       │ p95       │ p99         │ Total    │
├─────────┼──────────────────────────────────┼──────────────────┼───────────┼───────────┼─────────────┼──────────┤
│ 0       │ 'Konsole (silent+buffer)'        │ '2.23M ops/sec'  │ '331 ns'  │ '748 ns'  │ '1.40 µs'   │ '45 ms'  │
│ 1       │ 'Konsole (silent, no buffer)'    │ '6.25M ops/sec'  │ '88 ns'   │ '94 ns'   │ '400 ns'    │ '16 ms'  │
│ 2       │ 'Konsole (JSON → /dev/null)'     │ '244.4K ops/sec' │ '3.77 µs' │ '5.20 µs' │ '5.74 µs'   │ '409 ms' │
│ 3       │ 'Konsole (child+buffer)'         │ '2.79M ops/sec'  │ '267 ns'  │ '296 ns'  │ '1.18 µs'   │ '36 ms'  │
│ 4       │ 'Konsole (child, no buffer)'     │ '79.34M ops/sec' │ '6 ns'    │ '6 ns'    │ '6 ns'      │ '1 ms'   │
│ 5       │ 'Pino (disabled)'                │ '8.98M ops/sec'  │ '98 ns'   │ '107 ns'  │ '289 ns'    │ '11 ms'  │
│ 6       │ 'Pino (JSON → /dev/null)'        │ '285.2K ops/sec' │ '3.06 µs' │ '4.21 µs' │ '10.92 µs'  │ '351 ms' │
│ 7       │ 'Pino (child, disabled)'         │ '78.57M ops/sec' │ '6 ns'    │ '6 ns'    │ '6 ns'      │ '1 ms'   │
│ 8       │ 'Winston (silent)'               │ '1.15M ops/sec'  │ '463 ns'  │ '1.44 µs' │ '1.76 µs'   │ '87 ms'  │
│ 9       │ 'Winston (JSON → /dev/null)'     │ '124.0K ops/sec' │ '4.24 µs' │ '8.67 µs' │ '182.66 µs' │ '807 ms' │
│ 10      │ 'Winston (child, silent)'        │ '906.1K ops/sec' │ '866 ns'  │ '2.54 µs' │ '3.73 µs'   │ '110 ms' │
│ 11      │ 'Consola (silent)'               │ '7.52M ops/sec'  │ '96 ns'   │ '107 ns'  │ '118 ns'    │ '13 ms'  │
│ 12      │ 'Consola (JSON → /dev/null)'     │ '220.8K ops/sec' │ '4.39 µs' │ '4.66 µs' │ '5.55 µs'   │ '453 ms' │
│ 13      │ 'Consola (tagged child, silent)' │ '14.92M ops/sec' │ '16 ns'   │ '21 ns'   │ '28 ns'     │ '7 ms'   │
│ 14      │ 'Bunyan (JSON → /dev/null)'      │ '212.3K ops/sec' │ '4.54 µs' │ '4.80 µs' │ '6.00 µs'   │ '471 ms' │
│ 15      │ 'Bunyan (child → /dev/null)'     │ '235.7K ops/sec' │ '4.12 µs' │ '4.39 µs' │ '5.35 µs'   │ '424 ms' │
└─────────┴──────────────────────────────────┴──────────────────┴───────────┴───────────┴─────────────┴──────────┘

─── Realistic production: async / buffered JSON throughput ────────

┌─────────┬──────────────────────────────────┬──────────────────┬──────────────────────┐
│ (index) │ Logger                           │ ops/sec          │ Total (emit + flush) │
├─────────┼──────────────────────────────────┼──────────────────┼──────────────────────┤
│ 0       │ 'Konsole (JSON, async/buffered)' │ '311.5K ops/sec' │ '321 ms'             │
│ 1       │ 'Pino (JSON, async/buffered)'    │ '257.8K ops/sec' │ '388 ms'             │
│ 2       │ 'Winston (JSON, async/buffered)' │ '195.7K ops/sec' │ '511 ms'             │
│ 3       │ 'Bunyan (JSON, async/buffered)'  │ '250.5K ops/sec' │ '399 ms'             │
│ 4       │ 'Consola (JSON, async/buffered)' │ '267.0K ops/sec' │ '374 ms'             │
└─────────┴──────────────────────────────────┴──────────────────┴──────────────────────┘

─── Bundle / Install Size ───────────────────────────────────────

┌─────────┬───────────────┬─────────────┬──────────┬──────────────┬──────────────────────────────────────────┐
│ (index) │ Logger        │ ESM (min)   │ Gzip     │ Dependencies │ Note                                     │
├─────────┼───────────────┼─────────────┼──────────┼──────────────┼──────────────────────────────────────────┤
│ 0       │ 'Konsole'     │ '34 KB'     │ '~10 KB' │ '0'          │ 'Zero-dep, ESM+UMD'                      │
│ 1       │ 'Pino'        │ 'N/A (CJS)' │ '~32 KB' │ '5+'         │ 'sonic-boom, fast-redact, etc.'          │
│ 2       │ 'Winston'     │ 'N/A (CJS)' │ '~70 KB' │ '10+'        │ 'logform, triple-beam, etc.'             │
│ 3       │ 'Bunyan'      │ 'N/A (CJS)' │ '~45 KB' │ '3+'         │ 'dtrace-provider optional'               │
│ 4       │ 'Consola'     │ 'ESM'       │ '~12 KB' │ '7+'         │ 'UnJS family, browser+Node'              │
│ 5       │ 'console.log' │ '0 KB'      │ '0 KB'   │ '0'          │ 'No structure, no levels, no transports' │
└─────────┴───────────────┴─────────────┴──────────┴──────────────┴──────────────────────────────────────────┘

─── Memory Usage (100K entries) ─────────────────────────────────

  RSS before:  427.9 MB
  RSS after:   428.1 MB
  Delta:       0.3 MB for 100K entries
  Per entry:   ~3 bytes

  With maxLogs=10K (100K writes, 10K retained):
  Delta:       0.0 MB

  → JSON results written to /home/runner/work/console-logger/console-logger/benchmark-throughput.json

Done.

┌─────────────────────────────────────────────────────┐
│  Konsole Bundle Size Analysis                       │
└─────────────────────────────────────────────────────┘

─── Konsole Output Files ─────────────────────────────

  ESM   (dist/konsole.js):       58.63 KB  →  16.91 KB gzip
  UMD   (dist/konsole.umd.cjs):  36.56 KB  →  11.37 KB gzip
  Types (dist/index.d.ts):        44.66 KB  →  13.30 KB gzip
  Dependencies:                  0 (zero-dependency)

─── Install Size Comparison ──────────────────────────
  (install sizes from node_modules — install competitors with:
   npm install --no-save pino winston bunyan consola)

┌─────────┬──────────────────┬─────────────┬──────────────┐
│ (index) │ Package          │ Direct deps │ Install size │
├─────────┼──────────────────┼─────────────┼──────────────┤
│ 0       │ 'konsole-logger' │ 0           │ '139.85 KB'  │
│ 1       │ 'pino'           │ 11          │ '1.25 MB'    │
│ 2       │ 'winston'        │ 11          │ '396.00 KB'  │
│ 3       │ 'bunyan'         │ 0           │ '224.00 KB'  │
│ 4       │ 'consola'        │ 0           │ '440.00 KB'  │
└─────────┴──────────────────┴─────────────┴──────────────┘

─── Source File Sizes ────────────────────────────────

  src/Konsole.ts                             40.76 KB
  src/formatter.ts                           13.36 KB
  src/types.ts                               12.29 KB
  src/CircularBuffer.ts                      2.22 KB
  src/levels.ts                              541 B
  src/env.ts                                 1.56 KB
  src/transports/HttpTransport.ts            5.50 KB
  src/transports/ConsoleTransport.ts         1.60 KB
  src/transports/StreamTransport.ts          8.73 KB
  src/transports/FileTransport.ts            12.27 KB
  src/transports/base.ts                     2.35 KB
  ────────────────────────────────────────── ─────────
  Total source                               101.15 KB

  → JSON results written to /home/runner/work/console-logger/console-logger/benchmark-size.json
This check is informational only — it never blocks merging. Tune thresholds via `KONSOLE_THRESHOLD_YELLOW` / `KONSOLE_THRESHOLD_RED`.

@shakcho shakcho merged commit 6762975 into main Jun 10, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant