-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Closed
Description
go-libp2p v18 is shipping with a resource manager - yahoo! This issue encompasses the work to fully land this as a feature exposed to go-ipfs users. This includes:
- Integrating go-libp2p (i.e., doing the dependency update): feat: opt-in Swarm.ResourceMgr (go-libp2p v0.18) #8680:
- Estimate: 1 - needs review & cleanup – wip @lidel – see feat: opt-in Swarm.ResourceMgr (go-libp2p v0.18) #8680 (comment)
- Creating a command for resource manager stats: create a command for resource manager stats #8722
- Covered in the PR above feat: opt-in Swarm.ResourceMgr (go-libp2p v0.18) #8680 – see feat: opt-in Swarm.ResourceMgr (go-libp2p v0.18) #8680 (comment)
- Expose stats to prometheus: feat: export rcmgr metrics to prometheus #8785 (will be easier once have done feat: opt-in Swarm.ResourceMgr (go-libp2p v0.18) #8680):
- Estimate: .5
- Make it self-service for go-ipfs users to configure the resource manager limits (Lotus example: improve resource manager integration filecoin-project/lotus#8318) . – see feat: opt-in Swarm.ResourceMgr (go-libp2p v0.18) #8680 (comment)
- For now use
$IPFS_PATH/limit.jsonfile + implicit defaults, not guaranteeing a contract. We want to learn about ergonomics from testing in production. In the end we may switch toSwarm.ResourceMgr.Limitsconfig that works the same as the output ofipfs swarm limitcommands. - Implement
ipfs swarm limit [scope] --reset- tracked in Implement ipfs swarm limit [scope] --reset #8918 (not a blocker, could be in best-effort track for now)
- Expose Prometheus metrics from ResourceManager: feat: Expose Prometheus metrics from the libp2p ResourceManager #9385
- Testing in production (and fixing bugs):
- Dashboard changes
- Bootstrappers
- Clusters
- Gateway staging
- Gateway banking https://github.com/protocol/bifrost-infra/issues/1815
- Estimate: 8 (high uncertainty - potential dragon 🐉 )
- 0.17.0-rc1: ResourceMgr defaults sabotage DHT routing in Desktop/Brave nodes #9406
- 0.17.0-rc1: ResourceMgr defaults clash with AcceleratedDHTClient #9405
- Cleanup bifrost configuration: https://github.com/protocol/bifrost-infra/issues/1815#issuecomment-1316651157
- Cleanup
- remove limits.json support? (see how big of a pain this is for libp2p-maintainers if we remove it)
- process any remaining UX work from ResourceMgr UX improvements #8858
- process any remaining UX work from Improve resource manager UX #9001
- enable resource manager by default after selecting some default resource limits. We don't want to rely on implicit defaults from go-libp2p: Discussion: ResourceManager defaults when active by default #9322
- Confirm that the system scope limits protect nodes (and not just the peer scope limits) per feat: Improve ResourceManager UX #9338 (comment)
- Config documentation and Release notes about this feature:
- Estimate: 1
- Pre on-by-default: Need to add a reminder: "if you are using internal config flags, these are the risks..."
- On by default: This should show up in https://github.com/ipfs/kubo/blob/master/docs/changelogs/v0.17.md
Total 2022-04-01 estimate: 12 (rounded up from 11.5)
Note: doing the configuration part will be easier once config is moved back into go-ipfs: ipfs/go-ipfs-config#151
dokterbob
Metadata
Metadata
Assignees
Labels
status/in-progressIn progressIn progress