Skip to content

Grafana

Grafana connects to Elasticsearch via the Arrow Flight SQL protocol using the Flight SQL data source plugin, enabling SQL-based dashboards and panels. Grafana is a Tested tool (via Arrow Flight SQL).

Some advanced SQL (subqueries, CTEs) is not in this release yet — see Known Limitations.

Prerequisites

  • A running Arrow Flight SQL server (see Arrow Flight SQL guide)
  • Grafana 10+ with the Flight SQL data source plugin

Quick Start with Docker

The demo includes a pre-configured Grafana with the Flight SQL data source plugin and sample dashboards:

Terminal window
docker compose --profile grafana up

Then open Grafana at http://localhost:3000.

Manual Setup

1. Install the Flight SQL Plugin

Install the Apache Arrow Flight SQL data source plugin:

Terminal window
grafana-cli plugins install apache-arrow-flight-sql-datasource

Or via the Grafana UI: Configuration > Plugins > Search “Flight SQL”.

2. Add Data Source

  1. Go to Configuration > Data Sources > Add data source
  2. Select Apache Arrow Flight SQL
  3. Configure:
    • Host: localhost:32010
    • Auth: Leave empty (or configure if your Flight SQL server requires authentication)
  4. Click Save & Test

3. Create Dashboards

Use the full SoftClient4ES SQL syntax in Grafana panels:

SELECT
DATE_TRUNC(order_date, DAY) AS day,
SUM(total_price) AS revenue,
COUNT(*) AS orders
FROM ecommerce
GROUP BY DATE_TRUNC(order_date, DAY)
ORDER BY day;

Cross-cluster log correlation (SRE)

The SRE wedge: correlate data that lives in two different Elasticsearch clusters — for example logs in one region and metrics or traces in another — in a single SQL query, then render it in one Grafana panel. Elasticsearch can’t do this across clusters; SoftClient4ES does.

The query uses catalog-qualified names, where each catalog is a federation servers.<name> alias:

-- Correlate two indices living in two different ES clusters, in one SQL query.
-- Requires the federation server (Pro+, ≥2 clusters).
SELECT o.id, c.name
FROM `prod_us`.orders o
JOIN `prod_eu`.customers c ON o.id = c.id;
-- two source catalogs (prod_us, prod_eu) → coordinator-local join

Substitute your own per-region index names — e.g. `us-east`.logs joined to `eu-west`.metrics (illustrative — substitute your own per-region catalog and index names).

Requires the federation server (Pro+, ≥2 clusters). See the Federation operator guide to deploy it. For the full JOIN matrix including cross-cluster JOINs, see the Cross-Index JOIN walkthrough. Cluster count is metered — see Pricing.

Grafana table panel showing a cross-cluster correlation across two Elasticsearch clusters (prod_us and prod_eu)

Screenshot coming in a follow-up release. Captured with Grafana against SoftClient4ES 0.2.1 (Arrow Flight SQL), 2026-06.

Supported Features

FeatureStatus
SELECT queriesTested
Aggregations (GROUP BY)Tested
Date/time functionsTested
Time series panelsTested
Table panelsTested
Dashboard variablesCompatible

Known limitations

Subqueries, CTEs (WITH), and set operators beyond UNION ALL are not in this release. See Known Limitations & Roadmap for exactly what works today, what’s coming in the next release (Quarter 4 2026), and the per-tool workaround.

License

Grafana integration uses the Arrow Flight SQL server, licensed under the Elastic License 2.0.