siso: measure RunTime using spans

This continues the span migration. RunTime is a complex metric to
migrate to spans, as there are multiple execution strategies.

It would not make sense for all execution strategies to log the same
named span, as strategies can be retried (e.g. remote exec), and
strategies can be run in parallel (racing).

Hence, extrapolate RunTime from spans by looking at how the step was
executed. Test coverage was added to show the expected result of RunTime
based on different steps.

Bug: b/520207778
Change-Id: Ief84ce7bea7ce479b36527bef3e5e0136a6a6964
Reviewed-on: https://chromium-review.googlesource.com/c/build/+/8162460
Reviewed-by: Alex Ovsienko <ovsienko@google.com>
Commit-Queue: Richard Wang <richardwa@google.com>
5 files changed
tree: 33ad21a6a9f7ec31dfa476295a6088b6712038a4
  1. bench/
  2. gong/
  3. hashigo/
  4. infra/
  5. kajiya/
  6. kzipinfo/
  7. remote-apis/
  8. runmc/
  9. siso/
  10. .gitignore
  11. .golangci.yml
  12. .style.yapf
  13. BUILD_OWNERS
  14. BUILD_TEAM_OWNERS
  15. CONTRIBUTING.md
  16. LICENSE
  17. OWNERS
  18. PRESUBMIT.py
  19. README.md
  20. WATCHLISTS
README.md

build.git repository

This repository contains tools developed and owned by the Chrome Build Team.

Quick start

The steps for getting the code are:

  1. Install depot_tools
  2. Run git clone https://chromium.googlesource.com/build

We use the standard Go module workflow to work on our projects.

Links