Grafana + PostgreSQL = ♥️#

Grafana SQL Distribution (Histogram)#

Grafana 11

query

WITH raw AS (
    SELECT
        (width_bucket(ai_score, 0, 1, 100))::TEXT AS bucket,
        count(*)
    FROM  foo
    GROUP BY bucket
    ORDER BY bucket
)
SELECT
    bucket,
    count
FROM raw
WHERE bucket IS NOT NULL
  • Bar chart

  • X Axis: bucket

Grafana SQL Stacked Bar Chart#

Grafana 11

query

SELECT
    'score' AS label,
    count(*) FILTER (WHERE score IS NOT NULL) AS scored,
    count(*) FILTER (WHERE score IS NULL) AS missing
FROM foo
;

It is imperative to have a string label as first column.

  • Bar chart

  • X Axis: label

  • Stacking: Normal

  • Legend

    • Table

    • Right

    • Values: Last*

  • Color scheme: Single color (green)

  • Field Override 1

    • Field with name: “missing”

    • Color scheme: Single color (red)