apache / apache/buildstream

Remote Execution: Implement RequestMetadata

Open
#928 1 comment 0 reactions 0 assignees View on GitHub
enhancement newcomers remote execution
Dominant language
Python
Stars
140
Forks
45
Avg merge
1d 3h
Merged PRs (30d)
6

Description

[See original issue on GitLab](https://gitlab.com/BuildStream/buildstream/-/issues/928)
In GitLab by [[Gitlab user @martinblanchard]](https://gitlab.com/martinblanchard) on Feb 21, 2019, 11:39

## Background

The [`RequestMetadata`](https://github.com/bazelbuild/remote-apis/blob/master/build/bazel/remote/execution/v2/remote_execution.proto#L1410) message allows the client to pass the server extra information:
* `tool_details`: client name and version.
* `action_id`: unique ID identifying requests relating to the same build action.
* `tool_invocation_id`: unique ID identifying requests relating to the same build (ie. `bst build` invocation in BuildStream's case).
* `correlated_invocations_id`: to be determine in BuildStream's case.

Having BuildStream sending this informations would allow the server to better understand incoming requests. That would also allow grouping the metrics per build, produce reports per build...

## Task description

[//]: # (Short summary of the action to be executed)

* Agree on how the `action_id`, `tool_invocation_id` and `correlated_invocations_id` should be generated.
* Attach `RequestMetadata` to every gRPC requests.

## Acceptance Criteria

Every gRPC request send to a remote server have a `requestmetadata-bin` header filed set containing a valid `RequestMetadata` message.

Contributor guide

Open the contributing guide

Research direction

No repository file or test is named. First review the gRPC request construction and the linked remote_execution.proto RequestMetadata definition, then determine how the action, invocation, and correlated invocation IDs should be generated and attached; done means every remote request carries a valid requestmetadata-bin header.

Written by the indexing model from the issue text.

Assessment

Tech stack
grpc, python
Domain
backend-api-design, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.