Dev News Daily ENDE

PostgreSQL-Erweiterung speichert HDR-Histogramme als eigenen Typ für exakte Perzentile

pg_hdr_histogram hat am 26. Oktober die Version 1.0.0 erreicht. Die PostgreSQL-Erweiterung speichert ein vollständiges High-Dynamic-Range-Histogramm als eigenständigen Spaltentyp, sodass Latenz-Perzentile — p50, p99, p99.9 — aus der gespeicherten Verteilung berechnet statt aus wenigen festen Behältern geschätzt werden. Autor Vladimir Pavliv beziffert die Genauigkeit auf etwa 0,1 % relativen Fehler über sechs Größenordnungen. Entscheidend: Zwei Histogramme verschmelzen verlustfrei, man kann also Minutenzeilen zu einer Stunde verdichten oder dieselbe Kennzahl vieler Hosts verbinden, ohne den Fehler, der beim Mitteln von Perzentilen sonst entsteht. Sie baut auf HdrHistogram_c auf, bringt die Aggregate hdr_add und hdr_merge mit, ist parallelsicher und als trusted markiert.

PostgreSQL-Erweiterung speichert HDR-Histogramme als eigenen Typ für exakte Perzentile
PostgreSQL-Erweiterung speichert HDR-Histogramme als eigenen Typ für exakte Perzentile — Dev News Daily

Was das bedeutet

Perzentile zu mitteln ist eine der stillen Sünden der Überwachung — der Mittelwert zweier p99-Werte ergibt nichts Sinnvolles, und doch tun Dashboards es ständig. Das Histogramm selbst in der Datenbank zu halten, als Typ, der korrekt verschmilzt, ist die Lösung: Die Aggregatfunktion tut das Richtige, und die Anwendung hört auf, über ihren Ausläufer zu lügen. Dass sie als trusted gilt, wiegt schwerer, als es klingt, denn eine solche Erweiterung darf ein Nicht-Superuser installieren — der Unterschied zwischen "auf verwaltetem Postgres verfügbar" und "Ticket einreichen". Wer Latenz in Postgres statt in einem eigenen Metrikspeicher ablegt, bekommt hier ein kleines, scharfes Werkzeug.

Geschrieben von Victoria Shinder.