Grafana
Grafana is a popular observability and monitoring application used to visualize data and help with time-series data analysis. It has an extensive ecosystem of widgets and plugins. QuestDB supports connecting to Grafana via the Postgres endpoint.
#
Prerequisites- Docker to run both Grafana and QuestDB
We will use the --add-host
parameter for both Grafana and QuestDB.
#
Start GrafanaStart Grafana using docker run
:
Once the Grafana server has started, you can access it via port 3000
(http://localhost:3000
). The default login credentials are as follows:
#
Start QuestDBThe Docker version for QuestDB can be run by exposing the port 8812
for the
PostgreSQL connection and port 9000
for the web and REST interface:
#
Add a data source- Open Grafana's UI (by default available at
http://localhost:3000
) - Go to the
Configuration
section and click onData sources
- Click
Add data source
- Choose the
PostgreSQL
plugin and configure it with the following settings:
- When adding a panel, use the "text edit mode" by clicking the pencil icon and adding a query
#
Global variablesUse global variables to simplify queries with dynamic elements such as date range filters.
$__timeFilter(timestamp)
#
This variable allows filtering results by sending a start-time and end-time to QuestDB. This expression evaluates to:
$__interval
#
This variable calculates a dynamic interval based on the time range applied to the dashboard. By using this function, the sampling interval changes automatically as the user zooms in and out of the panel.
#
Example query#
Known issuesFor alert queries generated by certain Grafana versions, the macro
$__timeFilter(timestamp)
produces timestamps with nanosecond precision, while
the expected precision is millisecond precision. As a result, the alert queries
are not compatible with QuestDB and lead to an Invalid date
error. To resolve
this, we recommend the following workaround:
See Grafana issues for more information.