Commit Graph

277 Commits

Author SHA1 Message Date
721f814785 Cache RenderPlan 2025-09-03 10:53:11 -04:00
8763daca8e Add arena to RenderPlan 2025-09-03 10:43:11 -04:00
a30020e960 Add Metric::registration_version
For cache invalidation
2025-09-03 10:18:19 -04:00
1cd34ef4a9 Fix memory leak 2025-09-02 17:59:51 -04:00
0583a63649 WIP separate phases. Passes but has a memory leak 2025-09-02 17:51:41 -04:00
08fa1f311d Use prometheus text format as LabelsKey representation 2025-09-02 15:54:31 -04:00
4f1dcc54d9 Replace some ArenaVector's with std::span 2025-09-02 15:43:42 -04:00
d43e6c2be5 Fix final placement new in metric.cpp 2025-09-02 15:31:57 -04:00
7f562f8116 Don't null-terminate 2025-09-02 15:28:32 -04:00
96eb8e8b0b Fix memory leaks 2025-09-02 15:25:38 -04:00
7006012aeb Fix stack-use-after-scope 2025-09-02 13:01:02 -04:00
3d573694c4 Add ArenaAllocator::Ptr 2025-09-02 12:13:00 -04:00
87bbb47787 More precompute 2025-09-01 17:50:34 -04:00
d502f66bb4 Allocate memory up front for histogram copy 2025-09-01 17:06:08 -04:00
31e751fe75 Change iteration order to avoid temporary map 2025-09-01 16:52:40 -04:00
953ec3ad43 Separate compute and format phases for render 2025-09-01 15:05:27 -04:00
8326c67b9c Deterministic render ordering 2025-08-31 22:55:01 -04:00
8b828be0a9 Advise to cache Metric instance 2025-08-31 14:43:34 -04:00
58649103e5 Improve metric.hpp documentation 2025-08-31 14:39:24 -04:00
b6809d8700 Add arena usage documentation 2025-08-31 14:20:29 -04:00
889109f4ae Intern label sets 2025-08-31 12:47:35 -04:00
4b2c5b8ce8 Accept initializer_list, span, and string_view in api 2025-08-31 12:31:29 -04:00
93ccd2eb71 Use Arena's to manage Metric memory where appropriate 2025-08-31 11:54:17 -04:00
b52d6e5a13 Explain thread safety in Counter::inc 2025-08-30 19:14:16 -04:00
f560ac1736 Use snake_case 2025-08-30 18:59:44 -04:00
4f72840e51 Integrate render into /metrics handler 2025-08-30 18:28:44 -04:00
ff7642195b Make benchmark metric families global 2025-08-30 17:59:24 -04:00
0ff197d406 Fix static initialization order fiasco 2025-08-30 17:57:16 -04:00
affeeb674a Clarify threading model for metrics 2025-08-30 17:29:39 -04:00
21ddcb75fb Fix thread destroy bug 2025-08-30 16:20:35 -04:00
dcf8af6d43 Add test demonstrating thread destruction bug 2025-08-30 15:45:44 -04:00
935bab9454 Make histograms atomic
E.g. count and sum should be consistent with each other
2025-08-29 21:05:51 -04:00
50e27cced8 Add more TODOs 2025-08-29 17:15:36 -04:00
d2762dc8da Add TODO 2025-08-29 17:05:51 -04:00
5592d065de Actually have contention in benchmark 2025-08-29 17:05:21 -04:00
91e799aae8 Use plain arrays and atomic read with intrinsics for render 2025-08-29 15:10:10 -04:00
4fc277393e Use std::latch sync in benchmarks too 2025-08-29 14:29:15 -04:00
a5776004de Update potential misunderstanding about thread safety 2025-08-29 14:08:41 -04:00
62b37c067c Metrics implementation, WIP 2025-08-29 13:43:03 -04:00
fac0d20ae1 Finish metrics design, I think 2025-08-29 11:51:40 -04:00
e3a2ddbbfb Validation + callback api 2025-08-29 11:31:06 -04:00
b6d4ae2862 Initialize atomics in metrics, update style guide on atomics 2025-08-29 10:52:26 -04:00
1133d1e365 Use std::bit_cast, document that gauge mutex is an implementation detail 2025-08-29 10:45:19 -04:00
de5adb54d2 Flesh out metrics architecture more 2025-08-29 10:40:19 -04:00
d0f2b6550a More scaffolding 2025-08-28 17:32:34 -04:00
ca5b299da8 Make MetricKey hashable 2025-08-28 17:10:56 -04:00
9c89eba6c8 Metrics system scaffold 2025-08-28 17:04:53 -04:00
ed6e6ea9fe Output trailing : for konsole integration workaround 2025-08-28 14:45:40 -04:00
c97920c473 format utility improvements 2025-08-28 14:40:01 -04:00
7808896226 Add format benchmarks 2025-08-28 14:20:27 -04:00