filecoin-project / filecoin-project/boost
Add random sample tracing to the Boost RPC api
- Dominant language
- Go
- Stars
- 121
- Forks
- 79
- Avg merge
- 10d 14h
- Merged PRs (30d)
- 1
Description
## Summary
We want to perform random sample tracing of the [Boost RPC](https://github.com/filecoin-project/boost/blob/main/node/rpc.go) api to be able to understand the performance of RPC calls and report those to a local Grafana instance (consider using Tempo for this, for future integrations mention below). Emphasis will be on retrieval for our immediate goals, but assuming sampling of the whole api is an easier top level integration, adding tracing across all calls would also be useful.
## Requirements
* Add support to the RPC API for enabling tracing, with a configurable sampling rate (ie: 0.1).
* This should be disabled by default. We'll likely want to pass a flag to the daemon to enable/set this.
* Report traces to a local instance of Grafana
* [Nice to have] spin this up as a container addition to [docker support](https://github.com/filecoin-project/boost/pull/713)
## Future work
* Support parent trace context sharing across Boost services, such as [booster bitswap](https://github.com/filecoin-project/boost/pull/707) passing its trace ID to the RPC API, so that we can trace e2e calls.
* Report traces to a hosted service, such as a [Tempo grafana instance](https://grafana.com/orgs/protocollabs/hosted-traces/76).
## References
* Required by #365
* There is work being done that's nearing completion to add [docker support](https://github.com/filecoin-project/boost/pull/713) to Boost for testing, adding an instance of Grafana to this for testing could be useful for development on this issue.
Contributor guide
Research direction
Start with node/rpc.go to understand the Boost RPC API, then review the referenced Docker support work for the local development setup. Define the tracing integration, configurable sampling rate, disabled-by-default behavior, and local Grafana reporting before implementation. Done means sampled RPC traces can be viewed locally and the feature remains off unless enabled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, go
- Domain
- api, devops, observability-sre
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100