Remote Execution: Implement RequestMetadata
- 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
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