Invocation Details Page¶
This page shows all the details of a single invocation. You can reach it:
- through the invocation link bazel provides at the start of the build, or
- via the Invocations page by clicking on an invocation.
- Allow engineers and build maintainers to identify and replicate various kinds of issues, regressions and performance problems in an invocation.
- Allow engineers to easily access logs and other stored artifacts.
This section summarizes the invocation. It displays similar information to the data shown in the search results cards on the Invocations page.
You can find out how to add supplemental data to your invocations here.
The menu on the right provides further options, such as copying a textual summary of the invocation or a link to the page.
The main content of this page is split into multiple tabs, each of which has a different focus.
The highlights show you the most useful widgets from the other tabs aggregated into a single view.
This tab often shows you everything you need to know about a build, such as failure details on a failed build, or performance data on a successful build.
This tab is split into two columns.
List of targets¶
On the left, all the targets are listed as a tree that matches the package structure. The inner nodes represent packages, whereas the leaves represent targets.
The section can be resized or fully expanded to facilitate browsing deep package paths.
You can filter the tree structure by target status (
succeeded) and target labels (prefix search).
The status icon of an inner node indicates the “worst” status reported within the package the node represents. For example, if a package includes both a successful and a failing target, the directory will be marked as failing.
Each target listed can be selected. When a target is selected, the target’s details are displayed on the right.
The kind of data shown differs depending on what kind of target is selected. For example, a build target may list the output files generated and an option to download them. A test target may include the outcome of various tests and related logs.
This tab shows the same kind of output a local build shows from the CLI. While an invocation is running, the console output is updated on the fly.
It can be especially useful for invocations that were executed in a CI where the output includes formatting markers, which may make it hard to read in its raw form. This view displays a more readable representation than the raw CI output.
The menu on the right offers options to view or download the raw console output.
You can highlight specific lines of the log by clicking on the line number, and copy a link to a specific line by hovering over the line and clicking on the link icon that is visible to the left of the line number.
This section shows different configuration details about the invocation.
Note that the Bazel command shown is only an approximation of what was run using known information. The actual Bazel command used is not sent to the server and therefore not known.
When debugging invocations, it can be useful to investigate whether all Bazel
flags have the expected values. This view lists the computed flags. These may be
changed in various ways, such as through a
.bazelrc configuration profile or
Access various tools that can help you investigate and potentially improve build performance.
If enabled for the cluster, this section allows you to analyze the available profiles to receive personalized suggestions on how to speed up the invocation further.
This feature leverages the open-source Bazel Invocation Analyzer and includes additional modules to analyze invocation remotely executed with EngFlow further.
If this feature is not enabled on your cluster, you can download the Bazel profile and analyze it using the Bazel Invocation Analyzer.
This section exposes both Bazel’s JSON trace profile and Engflow’s profile, which tracks the actual remote execution of actions on the cluster.
Both profiles can either be visualized contextually via the
Open button or
downloaded for later consumption, e.g. via
Bazel Invocation Analyzer.
The Bazel profile is only available once the invocation completes, whereas the EngFlow profile is updated on the fly as actions are being executed remotely.
If the Bazel profile is not available after the invocation has completed, check whether you have set the Bazel flag --experimental_build_event_upload_strategy (for example, to local). It may prevent the Bazel profile from being sent to EngFlow's endpoint, which means won’t be available in this section, either.
This section expands all the actions that make up the invocation’s critical path.
- The "Bazel Command" section of the "Configuration" tab may be incorrect and only applies to the same environment the original invocation was run from. Bazel does not explicitly include the command used to run the invocation so this reconstruction is a best-guess.