Commit 237a090
committed
keyviz+adapter: rows-budget + true route_count for capped buckets
Round-1 review fixes for PR #646:
Codex P1: GetKeyVizMatrix never read req.GetRows() and always
returned every row, breaking the documented row-budget contract for
deployments with many tracked routes. Add applyKeyVizRowBudget — when
budget > 0, sort by per-row activity total (sum of values across
all columns of the requested series) and truncate to the top-N
before the final Start-order sort.
Codex P2: route_count was set to len(MemberRoutes), but MemberRoutes
is intentionally capped at MaxMemberRoutesPerSlot in the sampler
while extra routes still drive the bucket counters. Capped buckets
under-reported their contributors. Add MemberRoutesTotal to the
keyviz routeSlot/MatrixRow surface, increment it in
foldIntoBucket / RegisterRoute / bucket creation regardless of the
visible cap, and decrement in pruneMemberRoute. The adapter now
surfaces it as route_count and flips route_ids_truncated when the
visible list is shorter than the total so consumers can tell their
drill-down list is partial.
Tests:
- TestGetKeyVizMatrixHonorsRowsBudget — 4 routes, rows=2 returns
top-2 by activity, sorted by Start.
- TestGetKeyVizMatrixSurfacesRouteCountTruncation — visible cap=2,
total=9 → route_count=9, route_ids_truncated=true.
- TestGetKeyVizMatrixEncodesAggregateBucket updated for the new
MemberRoutesTotal field on the test fixture.1 parent 33d2181 commit 237a090
3 files changed
Lines changed: 180 additions & 40 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
535 | 535 | | |
536 | 536 | | |
537 | 537 | | |
538 | | - | |
| 538 | + | |
539 | 539 | | |
540 | 540 | | |
541 | 541 | | |
| |||
572 | 572 | | |
573 | 573 | | |
574 | 574 | | |
575 | | - | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
576 | 582 | | |
577 | 583 | | |
578 | 584 | | |
| |||
594 | 600 | | |
595 | 601 | | |
596 | 602 | | |
| 603 | + | |
597 | 604 | | |
598 | 605 | | |
599 | 606 | | |
600 | 607 | | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
601 | 629 | | |
602 | 630 | | |
603 | 631 | | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
604 | 638 | | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
605 | 645 | | |
606 | | - | |
607 | | - | |
608 | | - | |
609 | | - | |
610 | | - | |
611 | | - | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
612 | 653 | | |
613 | 654 | | |
614 | 655 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
146 | | - | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
147 | 150 | | |
148 | 151 | | |
149 | 152 | | |
150 | 153 | | |
151 | 154 | | |
152 | 155 | | |
153 | 156 | | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
160 | 164 | | |
161 | 165 | | |
162 | 166 | | |
| |||
171 | 175 | | |
172 | 176 | | |
173 | 177 | | |
| 178 | + | |
174 | 179 | | |
175 | 180 | | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
229 | 235 | | |
230 | 236 | | |
231 | 237 | | |
| |||
238 | 244 | | |
239 | 245 | | |
240 | 246 | | |
241 | | - | |
| 247 | + | |
242 | 248 | | |
243 | 249 | | |
244 | 250 | | |
| |||
247 | 253 | | |
248 | 254 | | |
249 | 255 | | |
| 256 | + | |
250 | 257 | | |
251 | 258 | | |
252 | 259 | | |
| |||
263 | 270 | | |
264 | 271 | | |
265 | 272 | | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
266 | 279 | | |
267 | 280 | | |
268 | 281 | | |
| |||
379 | 392 | | |
380 | 393 | | |
381 | 394 | | |
382 | | - | |
383 | | - | |
384 | | - | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
385 | 399 | | |
386 | 400 | | |
387 | 401 | | |
| |||
394 | 408 | | |
395 | 409 | | |
396 | 410 | | |
| 411 | + | |
397 | 412 | | |
398 | 413 | | |
399 | 414 | | |
| |||
410 | 425 | | |
411 | 426 | | |
412 | 427 | | |
413 | | - | |
414 | | - | |
415 | | - | |
416 | | - | |
417 | | - | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
418 | 434 | | |
419 | 435 | | |
420 | 436 | | |
| |||
443 | 459 | | |
444 | 460 | | |
445 | 461 | | |
446 | | - | |
447 | | - | |
448 | | - | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
449 | 467 | | |
450 | 468 | | |
451 | 469 | | |
| |||
703 | 721 | | |
704 | 722 | | |
705 | 723 | | |
706 | | - | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
707 | 728 | | |
708 | 729 | | |
709 | 730 | | |
710 | 731 | | |
| 732 | + | |
711 | 733 | | |
712 | | - | |
713 | | - | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
714 | 737 | | |
| 738 | + | |
715 | 739 | | |
716 | 740 | | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
717 | 744 | | |
718 | 745 | | |
719 | 746 | | |
| |||
739 | 766 | | |
740 | 767 | | |
741 | 768 | | |
742 | | - | |
| 769 | + | |
743 | 770 | | |
744 | | - | |
745 | | - | |
746 | | - | |
747 | | - | |
748 | | - | |
749 | | - | |
750 | | - | |
751 | | - | |
752 | | - | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
753 | 781 | | |
754 | 782 | | |
755 | 783 | | |
| |||
0 commit comments