Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C. 🔮 Ergonomic Observability #1458

Closed
2 tasks
p-shahi opened this issue Oct 20, 2022 · 7 comments
Closed
2 tasks

C. 🔮 Ergonomic Observability #1458

p-shahi opened this issue Oct 20, 2022 · 7 comments
Assignees
Labels
kind/enhancement A net-new feature or improvement to an existing feature P1 High: Likely tackled by core team if no one steps up starmaps

Comments

@p-shahi
Copy link
Member

p-shahi commented Oct 20, 2022

eta: 2022Q4

Why: Though we already expose per-component metrics in js-libp2p, the overhead of recording metrics is high (excessive object allocation per metric to record). This will be helpful to our users who record metrics on the order of thousands/second.

Goal:
We make the lives of js-libp2p easier by adding an improved metrics API.

1. Ergonomic metrics API

Create an ergonomic, generalized metrics recording interface which addresses current allocation overhead and duplication of information. Do not bloat the browser bundle with prom-client.

Related Issues/Linked PRs:

js-libp2p-tcp

js-libp2p-prometheus-metrics

js-libp2p-interfaces

js-libp2p

js-libp2p-kad-dht

js-libp2p-tracked-map

js-libp2p-noise

Todo:

js-libp2p-webtransport

js-libp2p-webrtc

js-libp2p-websockets

js-libp2p-gossipsub

@p-shahi p-shahi added kind/enhancement A net-new feature or improvement to an existing feature P1 High: Likely tackled by core team if no one steps up labels Oct 20, 2022
@p-shahi
Copy link
Member Author

p-shahi commented Nov 8, 2022

@mpetrunic Let's use this tracking issue to help fill out the remaining metrics work

@p-shahi p-shahi pinned this issue Nov 19, 2022
@BigLep
Copy link
Contributor

BigLep commented Nov 22, 2022

@achingbrain : what's the done criteria for this issue and do we have the list of work items to get there? For work items, is it the list of related items/links, or are there additional items to add?

@mpetrunic
Copy link
Member

@achingbrain : what's the done criteria for this issue and do we have the list of work items to get there? For work items, is it the list of related items/links, or are there additional items to add?

Look at related prs and issues in original description. Seems like only libp2p/js-libp2p-tcp#226 is left and it's waiting to be merged

@achingbrain
Copy link
Member

@libp2p/tcp is leading the charge on the metrics integration, but once it's settled down similar metrics will also need to be added to other transports:

We should also be collecting metrics from @chainsafe/gossipsub, I think that's the only other module with it's own metrics tracking, then I think we can call it done.

@BigLep
Copy link
Contributor

BigLep commented Nov 22, 2022

Ok. To give clarity on what's remaining, please add the checklist and link to any related issues/PRs for those checklist items.

In terms of done criteria, is the current statement comprehensive of everything we need to do?

Create an ergonomic, generalized metrics recording interface which addresses current allocation overhead and duplication of information. Do not bloat the browser bundle with prom-client.

(As an outsider, I'm not really certain of what we're getting here, but if it it makes sense to maintainers and users, then that's fine.)

Is there other work we also need to account for concerning documentation, examples, etc?

@p-shahi
Copy link
Member Author

p-shahi commented Feb 9, 2023

I'm going to close this as done. The main feature has rolled out and we can track the remaining modules seperately

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement A net-new feature or improvement to an existing feature P1 High: Likely tackled by core team if no one steps up starmaps
Projects
Archived in project
Development

No branches or pull requests

4 participants