typelevel / typelevel/skunk

[Proposal] Track connection pool metrics via jmx

Open
#236 0 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Scala
Stars
1.7k
Forks
175
Avg merge
5d 14h
Merged PRs (30d)
9

Description

I think a blocker for using Skunk in production is the ability to track hikari-equivalent metrics.

Specifically, hikari exposes these

  • Idle Connection count
  • Active Connections (in use)
  • Total Connections
  • The number of threads waiting for a connection

They may not exactly translate to the nonblocking api (especially the 'number of threads waiting', but getting something near parity would be massively helpful.

As a bonus, LISTEN-related metrics may be useful too - number of currently active LISTEN streams could be useful to track also.

Some conversation for context: https://gitter.im/skunk-pg/Lobby?at=5f31708aa4768b68568515af

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file, test, or entry point is named in the issue. Start by locating Skunk's connection-pool implementation and reviewing the linked Hikari JMX metrics and the referenced discussion. Define which nonblocking pool and LISTEN metrics are meaningful, then add coverage showing that the selected metrics are exposed and accurate.

Written by the indexing model from the issue text.

Assessment

Tech stack
postgres, scala
Domain
databases, observability
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.