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:
docker compose --profile grafana upThen open Grafana at http://localhost:3000.
Manual Setup
1. Install the Flight SQL Plugin
Install the Apache Arrow Flight SQL data source plugin:
grafana-cli plugins install apache-arrow-flight-sql-datasourceOr via the Grafana UI: Configuration > Plugins > Search “Flight SQL”.
2. Add Data Source
- Go to Configuration > Data Sources > Add data source
- Select Apache Arrow Flight SQL
- Configure:
- Host:
localhost:32010 - Auth: Leave empty (or configure if your Flight SQL server requires authentication)
- Host:
- 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 ordersFROM ecommerceGROUP 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.nameFROM `prod_us`.orders oJOIN `prod_eu`.customers c ON o.id = c.id;-- two source catalogs (prod_us, prod_eu) → coordinator-local joinSubstitute your own per-region index names — e.g.
`us-east`.logsjoined 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.
Screenshot coming in a follow-up release. Captured with Grafana against SoftClient4ES 0.2.1 (Arrow Flight SQL), 2026-06.
Supported Features
| Feature | Status |
|---|---|
| SELECT queries | Tested |
| Aggregations (GROUP BY) | Tested |
| Date/time functions | Tested |
| Time series panels | Tested |
| Table panels | Tested |
| Dashboard variables | Compatible |
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.