GithubHelp home page GithubHelp logo

Comments (6)

siggisim avatar siggisim commented on June 3, 2024 3

The lack of information in the BEP to map information back to the cache is one of my biggest frustrations with the protocol.

Some of this info can be reverse engineered from the bytestream urls for build artifacts - but only for "important outputs", not for all actions associated with the target.

I haven't had a chance to play around with bb-browser. Do you have a screenshot of what information is displayed on that page?

from buildbuddy.

Qinusty avatar Qinusty commented on June 3, 2024 1

The commit message here buildbarn/bb-browser@6b5437f seems to suggest this issue could see traction following the integration of bazelbuild/remote-apis#186

This makes it possible to see the build tool's invocation ID and version
number on action and uncached action result pages. This feature will
become a lot more interesting once the following API for remote-apis
lands:

bazelbuild/remote-apis#186

Once we have that, we can display Bazel target names, configuration IDs,
etc., meaning we can finally correlate Build Event Stream events with
individual actions in Buildbarn.

from buildbuddy.

Qinusty avatar Qinusty commented on June 3, 2024

I've attached a PDF of the browser page, there's quite a bit of useful information provided,
Buildbarn Browser.pdf

Some of the data is quite specific to a buildbarn execution platform such as the Execution metadata and resource usage.

from buildbuddy.

ulfjack avatar ulfjack commented on June 3, 2024

Hi! I'm one of the original designers of the BEP. We were given per-event, per-stream, and company-wide size restrictions for the amount of data that could be reported in the BEP. One of our biggest concerns was that reporting all executed actions would be prohibitively expensive on both the second and third metrics (based on experiments), at least for Google. (Note that this can also affect build latency: uploading a lot of data can take a lot of time.)

The --build_event_publish_all_actions option enables reporting of all actions in the BEP, but it'd caution to closely watch the amount of data generated for this reason.

from buildbuddy.

brentleyjones avatar brentleyjones commented on June 3, 2024

Bazel now sends that additional metadata.

from buildbuddy.

siggisim avatar siggisim commented on June 3, 2024

Did some more digging here.

The additional metadata that Bazel now sends is with GRPC requests to the cache / RBE server (Buildbarn in this case), and are still not included in the BEP (which is what BuildBuddy receives). This makes is it difficult / impossible to show this data for the configuration described (using BuildBuddy for BES, but Buildbarn for caching / RBE) without further changes to the BES (since BuildBuddy servers never receive this additional metadata).

In the scenario where you're using BuildBuddy for both BES and caching / RBE - we have much more flexibility. We've made huge improvements since this issue was opened with the addition of the executions tab, which now shows all of the important information from the Buildbarn Browser screenshot including input files, arguments, environment variables, output files, exit code, worker, timeline, stderr/stdout and more!

We'd like to continue to support the BuildBuddy + Buildbarn configuration, and are open to pull requests once the BEP contains enough information to make this possible.

Going to close this issue since we've covered the use-case (viewing action information via web), and because the suggested integration seems to be infeasible given the current state of the BEP.

from buildbuddy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.