EngFlow/bazel_invocation_analyzer

Support analysis of profiles built with `skymeld` enabled

Closed this issue · 1 comments

Problem

Bazel's Project Skymeld interleaves the loading/analysis and execution phases. bazel_invocation_analyzer currently depends on separate build markers for those phases in its analysis. This project replaces those 3 build phase markers with a new "Load, analyze dependencies and build artifacts" marker, which breaks some of our analyses.

Support needs to be added for this new build marker in our analysis.

Additional information

Sample build marker entry:
{"cat":"build phase marker","name":"Load, analyze dependencies and build artifacts","ph":"i","ts":1703090,"pid":1,"tid":1930},

After sifting through a bunch of profiles, I believe a good strategy might be to check for the first event with category action processing to determine when the Load, analyze dependencies and build artifacts phase no longer is just busy with analysis.
I'm not sure whether we might have to exclude the event BazelWorkspaceStatusAction stable-status.txt, as it looks like it might not need a completed analysis phase. However, for the examples I studied, it looked like it was not executed in the traditional analysis phase, but at the start of the traditional execution phase. In that, it might also be a helpful marker of the transition from "only loading and analysis" to "also execution interleaved".