feat: AO-Core device forge flight recorders#929
Open
samcamwilliams wants to merge 8 commits into
Open
Conversation
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.
Debugging in HyperBEAM has typically been a process of using
?eventcalls and changing the printed groups with theHB_PRINT=group1,group2,...controls. This meant re-running the test multiple times if you wanted to see a different set of prints, etc. Additionally, the pretty printer would always lead to receiving too many logs (spamming the terminal) or not quite enough. It was frustrating and slow.In this PR we introduce
flight-recorder: A human + agent friendly event collector and renderer.When tests fail or you would like to receive more information about all runs, you can now add
--record=error|allto yourrebar3 device testcommand to trigger the creation of an a single, static page that contains and renders all event details under all (non-kernel-step) groups. The forge test suite prints links to each of the renderable event bundles at the end of the suite so that you can open them in a browser in a single click from most terminals.Once in the recorder UI, you can browse, filter, and select each of the individual events in a run. The events are shown as expandable/collapsable elements with stacktraces, durations, etc.
Additionally, to make the
flight-recorderwork we:on/eventhook that allows devices to expand the system and register their own handlers in the future. This could be particularly useful for metering-type applications that want to (for example) change users upon specific event triggers.