feat: add metric for client connection lifetime#688
Merged
Conversation
Store start_time in client connection registry, then periodically emit telemetry for active client connections.
v0idpwn
commented
Jun 30, 2025
Comment on lines
41
to
53
| 500, | ||
| 1_000, | ||
| 5_000, | ||
| 10_000, | ||
| 60_000, | ||
| 300_000, | ||
| 1_800_000, | ||
| 7_200_000, | ||
| 28_800_000, | ||
| 86_400_000, | ||
| 259_200_000, | ||
| 604_800_000, | ||
| 2_592_000_000 |
Member
Author
There was a problem hiding this comment.
I wanted to use more "semantic" times here with e.g.: timer.hours(24) or 24 * 3600 * 1000, but it turns out that Peep does some ast manipulation and can only deal with integer literals. Can add comments instead but looks pretty ugly :)
Contributor
There was a problem hiding this comment.
Yeah, under the hood, Peep does some macro magic, and it expects a plain list of numbers when you define custom buckets. So the most reliable and readable way is to just use comments
Member
Author
There was a problem hiding this comment.
What's sad is that the formatter won't let me do
[
1000, # 1 second
5000, # 5 seconds
]as it formats to
[
# 1 second
1000,
# 5 seconds
5000
]😭
abc3
reviewed
Jul 1, 2025
abc3
reviewed
Jul 1, 2025
Co-authored-by: abc3 <sts@abc3.dev>
chasers
approved these changes
Jul 1, 2025
Merged
v0idpwn
added a commit
that referenced
this pull request
Jul 29, 2025
### Features - **Authentication cleartext password support** - Added support for cleartext password authentication method (#707) - **Runtime-configurable connection retries** - Support for runtime configuration of connection retries and infinite retries (#705) - **Enhanced health checks** - Check database and eRPC capabilities during health check operations (#691) - **More consistency with postgres on auth errors** - Improves errors in some client libraries (#711) ### Performance Improvements - **Optimized ranch usage** - Supavisor now uses a constant number of ranch instances for improved performance and resource management when hosting a large number of pools (#706) ### Monitoring - **New OS memory metrics** - gives a more accurate picture of memory usage (#704) - **Add a promex plugin for cluster metrics** - for tracking latency and connection status (#690) - **Client connection lifetime metrics** - adds a metric about how long each connection is connected for (#688) - **Process monitoring** - Log when large process heaps and long message queues (#689) ### Bug Fixes - **Client handler query cancellation** - Fixed handling of `:cancel_query` when state is `:idle` (#692) ### Migration Notes - Instances running a small number of pools may see an increase in memory usage. This can be mitigated by changing the ranch shard or the acceptor counts. - If using any of the new used ports, may need to change the defaults - Review monitoring dashboards and include new metrics
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Store start_time in client connection registry, then periodically emit telemetry for active client connections.