-
Notifications
You must be signed in to change notification settings - Fork 5
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
Add Metrics and Target Exploration #2
Conversation
no that sounds like a good plan to me |
pkg/summary/summarizer.go
Outdated
s.summary.Targets = make(map[string]TargetPair) | ||
} | ||
|
||
//create a target pair and at it to the targets collection |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
//create a target pair and at it to the targets collection | |
//create a target pair and add it to the targets collection |
pkg/summary/summarizer.go
Outdated
targetPair, ok := s.summary.Targets[label] | ||
|
||
if !ok { | ||
//TODO this doesn't HAVE to be fatal...timing data is just messed up and unreliable...which...its already sort of unreliable |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment is hard to understand
pkg/summary/summarizer.go
Outdated
s.summary.Tests = make(map[string]TestsCollection) | ||
} | ||
testcollection, ok := s.summary.Tests[label] | ||
if !ok { //initailize it if we've never seen this label before |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if !ok { //initailize it if we've never seen this label before | |
if !ok { //initialize it if we've never seen this label before |
pkg/summary/summarizer.go
Outdated
} | ||
|
||
func readBuildGraphMetrics(buildGraphMetricsData *bes.BuildMetrics_BuildGraphMetrics) BuildGraphMetrics { | ||
//TODO: these values are not on the proto currently. once they are, update this code to pull them out |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which proto does this refer to?
@trey-ivy could you clean up the git history? |
@trey-ivy all the new statistics are really cool! thank you for contributing this PR i have been seeing a segfault in some code that came from this PR, stacktrace below (but .. it may also be due to my own set up? on some invocations that succeed, it says 90% of my action cache hits failed due to
|
@gempesaw hey Dan, I just saw this comment. If you could please create an issue and provide as much detail as possible I'll try to take a look. seems like we probably just need to add some null checking somewhere. |
This is a big PR, and I do apologize. I can work on breaking it up if you prefer.
Basically I've tried to extend the datamodel in /ent/schema to be more representative of what comes in from the BES message w/regards to metrics, targets and tests. For a good visual representation of what the new schema looks like I've also add entviz which generates a graphical representation of the schema at
ent/gen/ent/schema-viz.html
.Then I updated summary.go and save.go to persist the model data to the database. I'm grouping this data w/the bazel invocation object, which makes the most sense to me on where to put it.
After that I built out a few components to display the data. I used and added the recharts package for this purpose. I also built some tables that are searchable, sortable and filterable and have some color coding where it makes sense.
Obviously this still needs a lot of work, but its a start.
Runners Tab:
Action Cache Tab:
Actions Data Tab:
Artifacts Tab: (plans to extend this and include navigable artifacts for the build)
Memory Metrics Tab:
Timing Tab: (maybe rename to other and include network tab here)
Targets Tab:
Tests Tab:
System Network Metrics (optionally displayed if available)