titledescription
Grafana
Guide for time series data visualization with QuestDB and Grafana

Grafana is a popular observability and monitoring application used to visualize data and has an extensive ecosystem of widgets and plugins. QuestDB supports connecting to Grafana via the Postgres endpoint.

Prerequisites

Add a data source

  1. Open Grafana’s UI (by default available at http://localhost:3000)
  2. Go to the Configuration section and click on Data sources
  3. Click Add data source
  4. Choose the PostgreSQL plugin and configure it with the following settings:
  1. host: localhost:8812
  2. database: qdb
  3. user: admin
  4. password: quest
  5. SSL mode: disable
  1. When adding a panel, use the “text edit mode” by clicking the pencil icon and adding a query

Global variables

To simplify queries which have dynamic elements such as date range filters, the query can contain global variables which are documented in the Grafana reference documentation.

$__timeFilter(timestamp)

This variable allows filtering results by sending a start-time and end-time to QuestDB. This expression evaluates to:

  1. timestamp BETWEEN
  2. '2018-02-01T00:00:00Z' AND '2018-02-28T23:59:59Z'

$__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

  1. SELECT
  2. pickup_datetime AS time,
  3. avg(trip_distance) AS distance
  4. FROM taxi_trips
  5. WHERE $__timeFilter(pickup_datetime)
  6. SAMPLE BY $__interval;