prometheus / prometheus/client_java

Improve Summary quantiles with DataSketches

Aperta
#2,084 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Java
Stelle
2.3k
Fork
833
Merge medio
2g 16h
PR unite (30g)
86

Descrizione

Summary.observe() can become expensive when quantiles are recorded at high frequency. This can make the current quantile path visible on hot request paths.

We saw this in ZooKeeper's Prometheus metrics path. In an internal ZooKeeper 3.9.2 fork, a version inspired by ZooKeeper's unmerged DataSketches Summary PR improved peak throughput by about 2x.

DataSketches KLL may be a useful way to improve this in client_java. The goal would be to reduce the cost of the observe path while keeping the external Summary behavior as close as practical.

This would not have to replace the current CKMS-based Summary immediately. DataSketches KLL has a different accuracy model, memory cost, and quantile visibility behavior, so an explicit opt-in path may be a better first step.

Initial questions:

  • Does using DataSketches for Summary quantiles sound like a direction worth exploring?
  • If so, would a separate opt-in artifact be a reasonable way to introduce it?
  • What behavior details and benchmark data would be most useful before going further?

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia da Summary.observe() e traccia il percorso attuale dei quantili basato su CKMS in client_java. Esamina il ZooKeeper DataSketches Summary PR e confronta un approccio basato su KLL utilizzando dati di benchmark, includendo accuratezza, utilizzo della memoria e visibilità dei quantili. Il lavoro è completato quando sono disponibili una direzione documentata e prove che indichino se un’implementazione opt-in valga la pena.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
observability-sre
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Tranquilla
Chiarezza
Da chiarire
Idoneità per principianti
32/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.