Grafana Now Offers Flux as a Native Query Language
As part of a sweeping set of upgrades for version 6.0, the open source Grafana analytics visualization software now supports the Flux query language for time-series data, initially as a plugin, but soon as the default query language for the InfluxDB time-series database.
“Flux is incredibly powerful, compared to other time-series database query languages on the market today, it blows them away by a large magnitude,” said Grafana Software Engineer Jacob Lisi, speaking before a group at InfluxData’s InfluxDays event in New York last week. Both Flux and InfluxDB are open source projects managed by InfluxData. “It’s by far in a league of its own for its querying capabilities.”
This nod of approval from the popular visualization software could help spur adoption of the new open source query language in a world long dominated by SQL. In his own keynote at InfluxDays, InfluxData CEO Evan Kaplan noted that time-series databases are the fastest growing category of databases (followed by graph databases). Yet SQL itself has difficulty in describing time-series data, which is where Flux — which is not strongly tied to InfluxDB — could help.
When Grafana is installed on a server, some packages are installed by default. These support connections to third-party software such as the Graphite and Prometheus monitoring tools. The Flux plug-in will be an extension of the first InfluxDB plugin already available. Without this native support, users would have to manually install the plugin from the plugin catalog.
Grafana can be handy for admins because it is one of the few monitoring programs that can easily support multiple backends, such as traditional databases alongside time-series databases such as InfluxDB. This can be great for aggregating operational data from a variety of sources.
Already Grafana users have been installing Flux. In a follow-up interview, Lisi noted that a large percentage of Grafana users are also deploying InfluxDB, though most still use that database system’s original query language. In fact, InfluxDB originally gained popularity in part because of its SQL-like querying, which as easy for database admins and programmers to quickly learn. Flux has more of a learning curve, Lisi admitted, but it offers far more in return.
InfluxDB created Flux as a way to decouple the database querying process with the backend storage holding the data, InfluxData cofounder Paul Dix explained last year. In this way, developers don’t have to write the same query repeatedly for different data sources. It is actually a fully-formed Turing Complete functional programming language, one that more resembles a scripting language than a set of query commands.
“Flux is a very powerful and expressive language,” Lisi agreed, in a follow-up interview. Flux goes beyond normal querying, offering the ability to do data transformations, for instance, or to join multiple data sets. Functions can be chained together. All these things “are not easily done in SQL,” Lisi said.
In upcoming releases, Grafana will move to make Flux the default language for InfluxDB, though it will also support the InfluxDB’s original language for backward compatibility.
Version 6.0 of Grafana was released last month, during the open source project’s annual user conference, GrafanaCon 2019. With this release, the project is moving from simple metrics into building a “complete observability stack,” Grafana creator Torkel Odegaard explained in a keynote talk. The project has moved to a new, more responsive panel architecture and a new edit interface (thanks to a move from Angular.js to React.js for the front-end design).
InfluxData is a sponsor of The New Stack.