bazelbuild / bazelbuild/remote-apis

Standardize Build Event Protocol

Open
#318 7 comments 1 reaction 0 assignees View on GitHub
Dominant language
Go
Stars
445
Forks
141
PR merge metrics
No merged PRs in 30d

Description

Today, among different matured build tool solutions there exists several build event protocols that enable build telemetry use cases:

- [Bazel's BEP](https://bazel.build/remote/bep)
- [Buck2's BuckEvent](https://github.com/facebook/buck2/blob/ca3ccae0a8c6541c41be8248c99d4c80978ed039/app/buck2_data/data.proto#L21)
- [Chromium Siso's ResultStore](https://github.com/googleapis/googleapis/blob/master/google/devtools/resultstore/v2/resultstore_upload.proto)
- [Reclient's Event](https://github.com/bazelbuild/reclient/blob/ed0afeddb1b5f0d001a6c8578f000217f06534dc/internal/pkg/event/event.go#L19)

On top of these, many build tools and CI systems in the wild have started adopting a more generic telemetry system (Open Telemetry, Prometheus) for their CI/CD telemetry needs:

- https://github.com/mvisonneau/gitlab-ci-pipelines-exporter
- https://github.com/craigatk/opentelemetry-gradle-plugin
- https://github.com/inception-health/otel-export-trace-action
- https://github.com/zoidyzoidzoid/gitlab-honeycomb-buildevents-webhooks-sink
- https://github.com/craigatk/opentelemetry-gradle-plugin

So I want to start a discussion about a standardized Build Event Protocol so that different client and server implementations can agree on a common specification moving forward, and reduce overall fragmentation.

Please comment below if you are interested in adopting such a spec.

Contributor guide

Open the contributing guide

Research direction

Start by comparing the linked Bazel BEP, Buck2 BuckEvent, Chromium ResultStore, and Reclient Event references, then review the listed OpenTelemetry and Prometheus examples. The issue is currently a discussion about agreement on a common specification; done would require a decided protocol scope and specification, not a single localized code change.

Written by the indexing model from the issue text.

Assessment

Tech stack
prometheus
Domain
build-system, distributed-systems, observability-sre
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.