Repository navigation
fix(telemetry): give slow ticks their section children - #316
Open
TheMeinerLP wants to merge 1 commit into
Open
TheMeinerLP wants to merge 1 commit into
TheMeinerLP wants to merge 1 commit into
Conversation
Only creek, slender-gaze and tunnel-vision were measured and none of them runs in the lobby, so lobby slow ticks had no children. Measure every per-tick scheduled service under a stable name and lower the span floor to 0.1 ms.
Contributor
Test results 591 files 591 suites 3m 20s ⏱️ Results for commit 36f4f85. |
This was referenced Oct 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed changes
In production Tempo the
cygnus.tick.slowspans had nocygnus.tick.sectionchildren at all (two slow lobby ticks of 59 and 103 ms showed nothing). This makes every slow tick say who was in it.Root cause. Only three services were wrapped in
TickSections(creek,slender-gaze,tunnel-vision), and all three only run while a round is in progress, so in the lobby there was nothing to report. On top of that, a share below 1 ms was dropped, which hid the small scheduled tasks that do run. The ordering of the counters againstServerTickMonitorEventwas checked and is fine (Minestom fires the event after the scheduler ran, andSlowTickTracerreads and resets the counters in that handler).Change.
TickSectionNames:lobby-waiting,lobby-time,creek,glow-reveal,slender-gaze,tunnel-vision,page-glitch,blood-splatter,page-proximity,ambient,adrenaline,slender-takeover,stamina(all survivor bars added up),slender-barandjump-scare.TickSections; the old constructors keep working withTickSections.NONE.Cygnuspasses the shared instance in.docs/telemetry.mdlists the sections.Knock-on effects.
nanoTimereads and aLongAdderadd per run, as before; with tracing off nothing is wrapped.Types of changes
Checklist
Further comments
Test plan.
SlowTickTracerTest: one child per section that ran with the right duration, sections that did not run are omitted, a 0.3 ms share is reported and one below the floor is not.SlowTickLobbyTest: a slow lobby tick haslobby-waitingandlobby-timechildren, none of the game's, and hangs below the lobby phase span.TickSectionWiringTest: the realLobbyWaitingTaskandLobbyTimeTransitionTaskreport through the Minestom scheduler (env.tick(), hand-driven clock).TickSectionNamesTest: names are unique and kebab-case../gradlew :game:test :common:testis green.