monotonic-pi-extensions/.pi/llm-metrics.log
Willem van den Ende 98e18643c5 pi-performance: Make Time to first token more accurate.
Summary of changes:

 ┌──────┬──────────────────────────────────────────────────────────────────┬──────────┐
 │ Step │ Change                                                           │ Result   │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 1    │ Removed duplicate llm-performance-metrics.test.ts                │ 14 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 2    │ Added rawTimestamps assertions to toLogEntry test                │ 14 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 3    │ Added rawTimestamps assertions to single-turn aggregate test     │ 14 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 4    │ Added rawTimestamps assertions to multi-turn aggregate test      │ 14 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 5    │ Added negative TTFT filtering test                               │ 15 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 6    │ Added "first turn missing TTFT, later turns have it" test        │ 16 tests │
 ├──────┼──────────────────────────────────────────────────────────────────┼──────────┤
 │ 7    │ Added sanity check tests (warn on >500 tok/s, no warn otherwise) │ 18 tests │
 └──────┴──────────────────────────────────────────────────────────────────┴──────────┘

This is what it looks like now when I run `pi`
 📊 Performance: llama.cpp/Qwen3.6-35B-A3B-MXFP4_MOE.gguf
   Prefill: 15,460 tokens @ 20104.0 tok/s
   Generation: 12,179 tokens @ 52.6 tok/s
   Combined: 27,639 tokens @ 118.9 tok/s (3.9m total)
   TTFT: 769ms
   Turns: 36
2026-04-28 10:52:00 +01:00

14 lines
7.1 KiB
Plaintext

{"timestamp":"2026-04-28T08:58:29.989Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":6,"inputTokens":8294,"outputTokens":1356,"totalTokens":9650,"prefillTokensPerSec":1925.26,"generationTokensPerSec":42.55,"combinedTokensPerSec":266.77,"totalDurationMs":36174,"timeToFirstTokenMs":4308}
{"timestamp":"2026-04-28T09:16:50.070Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":1,"inputTokens":25,"outputTokens":39,"totalTokens":64,"prefillTokensPerSec":46.38,"generationTokensPerSec":89.86,"combinedTokensPerSec":65.78,"totalDurationMs":973,"timeToFirstTokenMs":539}
{"timestamp":"2026-04-28T09:19:10.796Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":2,"inputTokens":1146,"outputTokens":911,"totalTokens":2057,"prefillTokensPerSec":0,"generationTokensPerSec":0,"combinedTokensPerSec":104.65,"totalDurationMs":19656}
{"timestamp":"2026-04-28T09:20:38.777Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":2,"inputTokens":1704,"outputTokens":1466,"totalTokens":3170,"prefillTokensPerSec":0,"generationTokensPerSec":0,"combinedTokensPerSec":98.11,"totalDurationMs":32311}
{"timestamp":"2026-04-28T09:26:23.124Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":4,"inputTokens":2258,"outputTokens":2984,"totalTokens":5242,"prefillTokensPerSec":1019.41,"generationTokensPerSec":54.73,"combinedTokensPerSec":92.39,"totalDurationMs":56736,"timeToFirstTokenMs":2215}
{"timestamp":"2026-04-28T09:28:34.906Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":3,"inputTokens":976,"outputTokens":1434,"totalTokens":2410,"prefillTokensPerSec":0,"generationTokensPerSec":0,"combinedTokensPerSec":72.74,"totalDurationMs":33130,"rawTimestamps":{"turns":[{"turnId":"turn-0","durationMs":5261},{"turnId":"turn-1","durationMs":23398,"ttftMs":3008},{"turnId":"turn-2","durationMs":4471,"ttftMs":-20390}]}}
{"timestamp":"2026-04-28T09:32:02.665Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":5,"inputTokens":2780,"outputTokens":4488,"totalTokens":7268,"prefillTokensPerSec":0,"generationTokensPerSec":0,"combinedTokensPerSec":73.68,"totalDurationMs":98638,"rawTimestamps":{"turns":[{"turnId":"turn-0","durationMs":1617},{"turnId":"turn-1","durationMs":23911,"ttftMs":19482},{"turnId":"turn-2","durationMs":62977,"ttftMs":-4429},{"turnId":"turn-3","durationMs":2504,"ttftMs":-67406},{"turnId":"turn-4","durationMs":7629,"ttftMs":-69910}]}}
{"timestamp":"2026-04-28T09:33:30.666Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":2,"inputTokens":1496,"outputTokens":291,"totalTokens":1787,"prefillTokensPerSec":0,"generationTokensPerSec":0,"combinedTokensPerSec":59.38,"totalDurationMs":30092,"rawTimestamps":{"turns":[{"turnId":"turn-0","durationMs":5111},{"turnId":"turn-1","durationMs":24981,"ttftMs":12129}]}}
{"timestamp":"2026-04-28T09:36:38.399Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":10,"inputTokens":5923,"outputTokens":4327,"totalTokens":10250,"prefillTokensPerSec":245.08,"generationTokensPerSec":34.94,"combinedTokensPerSec":69.25,"totalDurationMs":148018,"timeToFirstTokenMs":24168,"rawTimestamps":{"ttftMs":24168,"generationDurationMs":123850,"turns":[{"turnId":"turn-0","durationMs":30016,"ttftMs":24168},{"turnId":"turn-1","durationMs":10759},{"turnId":"turn-2","durationMs":6510},{"turnId":"turn-3","durationMs":48120,"ttftMs":21676},{"turnId":"turn-4","durationMs":11553,"ttftMs":5626},{"turnId":"turn-5","durationMs":2866},{"turnId":"turn-6","durationMs":10915,"ttftMs":7202},{"turnId":"turn-7","durationMs":8631,"ttftMs":3181},{"turnId":"turn-8","durationMs":4935},{"turnId":"turn-9","durationMs":13713,"ttftMs":6306}]}}
{"timestamp":"2026-04-28T09:38:54.862Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":2,"inputTokens":8054,"outputTokens":1145,"totalTokens":9199,"prefillTokensPerSec":235.91,"generationTokensPerSec":78.04,"combinedTokensPerSec":188.46,"totalDurationMs":48812,"timeToFirstTokenMs":34140,"rawTimestamps":{"ttftMs":34140,"allTtftMs":[34140],"generationDurationMs":14672,"turns":[{"turnId":"turn-0","durationMs":3559},{"turnId":"turn-1","durationMs":45253,"ttftMs":34140}]}}
{"timestamp":"2026-04-28T09:40:15.439Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":2,"inputTokens":97,"outputTokens":733,"totalTokens":830,"prefillTokensPerSec":63.19,"generationTokensPerSec":46.13,"combinedTokensPerSec":47.63,"totalDurationMs":17425,"timeToFirstTokenMs":1535,"rawTimestamps":{"ttftMs":1535,"allTtftMs":[1535,1095],"generationDurationMs":15890,"turns":[{"turnId":"turn-0","durationMs":8515,"ttftMs":1535},{"turnId":"turn-1","durationMs":8910,"ttftMs":1095}]}}
{"timestamp":"2026-04-28T09:41:02.168Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":1,"inputTokens":33,"outputTokens":386,"totalTokens":419,"prefillTokensPerSec":5.11,"generationTokensPerSec":135.87,"combinedTokensPerSec":45.06,"totalDurationMs":9298,"timeToFirstTokenMs":6457,"rawTimestamps":{"ttftMs":6457,"allTtftMs":[6457],"generationDurationMs":2841,"turns":[{"turnId":"turn-0","durationMs":9298,"ttftMs":6457}]}}
{"timestamp":"2026-04-28T09:47:46.401Z","provider":"llama.cpp","model":"Qwen3.6-35B-A3B-MXFP4_MOE.gguf","turnCount":36,"inputTokens":15460,"outputTokens":12179,"totalTokens":27639,"prefillTokensPerSec":20104.03,"generationTokensPerSec":52.58,"combinedTokensPerSec":118.93,"totalDurationMs":232395,"timeToFirstTokenMs":769,"rawTimestamps":{"ttftMs":769,"allTtftMs":[769,3069,6075,3956,3658,3607,3823,3913,9797,0,0,1,13456],"generationDurationMs":231626,"turns":[{"turnId":"turn-0","durationMs":2786,"ttftMs":769},{"turnId":"turn-1","durationMs":2727},{"turnId":"turn-2","durationMs":2103},{"turnId":"turn-3","durationMs":2530},{"turnId":"turn-4","durationMs":2754},{"turnId":"turn-5","durationMs":3357},{"turnId":"turn-6","durationMs":10489,"ttftMs":3069},{"turnId":"turn-7","durationMs":2625},{"turnId":"turn-8","durationMs":15034,"ttftMs":6075},{"turnId":"turn-9","durationMs":2817},{"turnId":"turn-10","durationMs":14176,"ttftMs":3956},{"turnId":"turn-11","durationMs":2537},{"turnId":"turn-12","durationMs":16864,"ttftMs":3658},{"turnId":"turn-13","durationMs":3137},{"turnId":"turn-14","durationMs":18123,"ttftMs":3607},{"turnId":"turn-15","durationMs":2307},{"turnId":"turn-16","durationMs":17842,"ttftMs":3823},{"turnId":"turn-17","durationMs":2287},{"turnId":"turn-18","durationMs":10719,"ttftMs":3913},{"turnId":"turn-19","durationMs":24735},{"turnId":"turn-20","durationMs":2656},{"turnId":"turn-21","durationMs":15351,"ttftMs":9797},{"turnId":"turn-22","durationMs":22251},{"turnId":"turn-23","durationMs":4702},{"turnId":"turn-24","durationMs":2,"ttftMs":0},{"turnId":"turn-25","durationMs":0},{"turnId":"turn-26","durationMs":1},{"turnId":"turn-27","durationMs":0,"ttftMs":0},{"turnId":"turn-28","durationMs":1},{"turnId":"turn-29","durationMs":1},{"turnId":"turn-30","durationMs":0},{"turnId":"turn-31","durationMs":1},{"turnId":"turn-32","durationMs":1,"ttftMs":1},{"turnId":"turn-33","durationMs":1},{"turnId":"turn-34","durationMs":0},{"turnId":"turn-35","durationMs":27478,"ttftMs":13456}]}}