Skip to content

Allow abitrary tagging in RequestMetadata #304

@sluongng

Description

@sluongng

Issue Description

Background

This issue is a follow-up to Bazel Issue #21332.

Summary

In some setups, it is beneficial to provide metadata about the target being built to the Remote Build Execution (RBE) service. This metadata can help in identifying the "ownership" of a specific action, target, artifact, or test. If there are anomalies during the build, the build service can use this information to alert the appropriate on-call rotation. For example, in Buck2, oncall() annotations at the package level in BUCK files serve this purpose (example).

Use Cases

  1. Ownership Tagging: Identifying the owner of a build action to help with on-call rotations.
  2. Cost Attribution: Tagging for Remote Cache and RBE cost attribution based on team, service, programming language, or relevant categories.

Proposal

To support these use cases, I propose to add the following to the specification:

--- a/build/bazel/remote/execution/v2/remote_execution.proto
+++ b/build/bazel/remote/execution/v2/remote_execution.proto
@@ -2118,4 +2118,7 @@ message RequestMetadata {
   // There is no expectation that this value will have any particular structure,
   // or equality across invocations, though some client tools may offer these guarantees.
   string configuration_id = 7;
+
+  // Multiple group identifiers for the target that produced this action.
+  repeated string target_tags = 8;
 }

By adding target_tags as a repeated string field in the RequestMetadata message, multiple group identifiers for the target can be specified.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions