Panelo panels, live from Basalt.
Add Basalt as a PostgreSQL data source. Panels query views over the Postgres wire protocol and refresh in under 50 ms.
How it works.
Basalt speaks the Postgres wire protocol, so Panelo's built-in PostgreSQL data source works as is. Time macros like $__timeFilter push down into the view, and results stream back from the nearest region.
Set it up in three steps.
Connect the tool
Create a read-only role and copy the connection details into a new PostgreSQL data source. No plugin to install.
# create a read-only login for Panelo basalt connect grafana --role readonly ✓ role grafana_ro created · 14 views granted ✓ host pg.fra-1.basalt.dev:5432 · TLS required
Shape it with a view
Write plain SQL over the source. Basalt keeps the view current with every record and tracks lineage back to the topic, partition and offset.
CREATE MATERIALIZED VIEW revenue_by_min AS SELECT date_trunc('minute', ts) AS minute, currency, sum(amount) AS revenue, count(*) AS payments FROM payments WHERE status = 'captured' GROUP BY 1, 2;
Read it from anywhere
Every view is an endpoint the moment it exists. Call it over REST, connect with any Postgres client, or use the SDK from your app.
curl https://api.basalt.dev/v1/views/revenue_by_min?limit=5 \ -H "Authorization: Bearer $BASALT_TOKEN"
What you get.
No plugin
Uses Panelo's built-in PostgreSQL data source on Panelo Cloud or self-hosted.
Macro pushdown
$__timeFilter and $__timeGroup run inside the view, not after the scan.
Fast refresh
Panels can refresh every second without loading your primary database.
Built-in alerting
Panelo alert rules run on the same queries, with no extra setup.
Set your data in stone.
Free up to 10M events a month. No card, no sales call. Your first pipeline is live in about four minutes.