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.
Purpose¶
- 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.
Page sections¶
Summary¶
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.
Tabs¶
The main content of this page is split into multiple tabs, each of which has a different focus.
Highlights¶
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.
Target tree¶
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 (failed
, in progress
,
not built
, succeeded
) and target labels (prefix search).
Depending on the status of the invocation, some filters may be applied by default. For example, if a completed invocation has unsuccessful targets, then all successful targets are filtered out. Similarly, successful targets are filtered out while an invocation is still running.
These default filters are applied to help you discover the most relevant information. You can adjust the filters at any time to change which targets are listed.
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.
Target details¶
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 from the three-dot menu. A test target may include the outcome
of various tests, including undeclared test outputs (outputs.zip
) and related logs.
Console¶
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.
Configuration¶
This section shows different configuration details about the invocation.
Warning
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
command-line parameters.
Performance¶
Access various tools that can help you investigate and potentially improve build performance.
Analyze invocation¶
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.
Info
If this feature is not enabled on your cluster, you can download the Bazel profile and analyze it using the Bazel Invocation Analyzer.
Profiles¶
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 chrome://tracing
or
Bazel Invocation Analyzer.
Info
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.
Critical Path¶
This section expands all the actions that make up the invocation’s critical path.
Known Issues¶
- 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.