-
Notifications
You must be signed in to change notification settings - Fork 5
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
Refactor metrics to simplify updating the values #187
Merged
Merged
Commits on Feb 12, 2024
-
Refactor metrics to only add callbacks once.
Use a private data structure to track per-network metrics, then use that data structure as data source for the metrics callbacks. The once-added callbacks can then serve the metrics for registered definitions. In addition to that, when a definition ends, we deregister it from the per- network metrics data structure, so we stop serving metrics about it. We are no longer using Tokio mutexes since this would require async closures for the callbacks, and async closures are unstable. std::sync::Mutex works perfectly OK for this use and, in fact, Tokio documentation states that standard mutexes can work fine with Tokio code, and should be preferred in most cases. https://docs.rs/tokio/1.24.2/tokio/sync/struct.Mutex.html#which-kind-of-mutex-should-you-use indicates we should use the standard mutex when we are not going to hold the lock across await points. Since that is exactly what we are doing (there are no awaits involved in the set() and get() code for the data structure being locked), then we can simply use the simple blocking mutex, which is what we have done here.
Configuration menu - View commit details
-
Copy full SHA for 4e2ef5c - Browse repository at this point
Copy the full SHA 4e2ef5cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2a6e09b - Browse repository at this point
Copy the full SHA 2a6e09bView commit details -
Configuration menu - View commit details
-
Copy full SHA for d8549b2 - Browse repository at this point
Copy the full SHA d8549b2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6f3dfbf - Browse repository at this point
Copy the full SHA 6f3dfbfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 41e6424 - Browse repository at this point
Copy the full SHA 41e6424View commit details -
Configuration menu - View commit details
-
Copy full SHA for 224b398 - Browse repository at this point
Copy the full SHA 224b398View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0c39df0 - Browse repository at this point
Copy the full SHA 0c39df0View commit details -
Configuration menu - View commit details
-
Copy full SHA for eb7ccb3 - Browse repository at this point
Copy the full SHA eb7ccb3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 537c34d - Browse repository at this point
Copy the full SHA 537c34dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 466e8ef - Browse repository at this point
Copy the full SHA 466e8efView commit details -
Configuration menu - View commit details
-
Copy full SHA for f980ec1 - Browse repository at this point
Copy the full SHA f980ec1View commit details
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.