Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate stats from loadgen run #36

Merged
merged 11 commits into from
Jan 17, 2022

Conversation

mhofman
Copy link
Member

@mhofman mhofman commented Nov 24, 2021

This is crux of the stats work.

After multiple rewrites, I settled on stats objects passed to individual monitors, with methods on the stats objects to capture important events and trigger computation of derived stats. Stats objects expose read-only properties (either getters or non-writable values), and form a tree through nested collections of stats objects. The root stats is serialized to JSON at the end of the loadgen run, and saved in the finish perf event saved to disk.

Currently only block and cycle stats per stage, as well as their summaries, are generated. Process and storage usage stats can be added later.
run -> stages -> blocks and cycles

In the future we can also consider saving and uploading intermediate states of the stats, e.g. after each stage completes, or even as soon as each block completes if we want to build a real-time dashboard.

As always, best reviewed commit-by-commit.

Stacks on top of preliminary refactors (#35) and fixes(#34).

@warner
Copy link
Member

warner commented Nov 30, 2021

Hm, does that mean if something interrupts the run, we get no stats data? That sounds kinda fragile. I was expecting a tool that executes after the run is complete and derives stats from the logs.

@mhofman
Copy link
Member Author

mhofman commented Nov 30, 2021

Unless the runner crashes in some way I haven't anticipated, it should always generate summaries for the stages and the run, and output stats as finish event in the logs. Anyway, from what I've seen so far, stats for runs that don't go to completion are not very useful anyway.

@mhofman mhofman force-pushed the mhofman/preliminary-runner-refactors branch from 3050fd7 to 0348471 Compare January 8, 2022 03:11
@mhofman mhofman force-pushed the mhofman/add-stats branch from 4d96e29 to 541e6a8 Compare January 8, 2022 03:11
Various fixes to loadgen and runner

Fixes #28.
Handles rename of `Treasury` -> `VaultFactory`
Handle older SDK versions which don't have a fee purse implementation
Copy link
Member

@warner warner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sounds good, let's look through the results together after the next run and see if it's enough to drive the decisions we need

@mhofman mhofman merged commit c3900aa into mhofman/preliminary-runner-refactors Jan 17, 2022
@mhofman mhofman deleted the mhofman/add-stats branch January 17, 2022 21:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants