Get started with Flux

This page documents an earlier version of InfluxDB. InfluxDB v2 is the latest stable version. See the equivalent InfluxDB v2 documentation: Get started with Flux and InfluxDB.

Flux is InfluxData’s new functional data scripting language designed for querying, analyzing, and acting on data.

This multi-part getting started guide walks through important concepts related to Flux. It covers querying time series data from InfluxDB using Flux, and introduces Flux syntax and functions.

What you will need

InfluxDB v1.8+

Flux v0.65 is built into InfluxDB v1.8 and can be used to query data stored in InfluxDB. InfluxDB v1.8’s influx CLI also includes a -type= option that, when set to flux, will start an interactive Flux Read-Eval-Print-Loop (REPL) allowing you to write and run Flux queries from the command line.

For information about downloading and installing InfluxDB, see InfluxDB installation.

Chronograf v1.8+

Not required but strongly recommended. Chronograf v1.8’s Data Explorer provides a user interface (UI) for writing Flux scripts and visualizing results. Dashboards in Chronograf v1.8+ also support Flux queries.

For information about downloading and installing Chronograf, see Chronograf installation.

Key concepts

Flux introduces important new concepts you should understand as you get started.


Flux introduces “buckets,” a new data storage concept for InfluxDB. A bucket is a named location where data is stored that has a retention policy. It’s similar to an InfluxDB v1.x “database,” but is a combination of both a database and a retention policy. When using multiple retention policies, each retention policy is treated as is its own bucket.

Flux’s from() function, which defines an InfluxDB data source, requires a bucket parameter. When using Flux with InfluxDB v1.x, use the following bucket naming convention which combines the database name and retention policy into a single bucket name:

InfluxDB v1.x bucket naming convention
// Pattern

// Example

Pipe-forward operator

Flux uses pipe-forward operators (|>) extensively to chain operations together. After each function or operation, Flux returns a table or collection of tables containing data. The pipe-forward operator pipes those tables into the next function or operation where they are further processed or manipulated.


Flux structures all data in tables. When data is streamed from data sources, Flux formats it as annotated comma-separated values (CSV), representing tables. Functions then manipulate or process them and output new tables. This makes it easy to chain together functions to build sophisticated queries.

Group keys

Every table has a group key which describes the contents of the table. It’s a list of columns for which every row in the table will have the same value. Columns with unique values in each row are not part of the group key.

As functions process and transform data, each modifies the group keys of output tables. Understanding how tables and group keys are modified by functions is key to properly shaping your data for the desired output.

Example group key
[_start, _stop, _field, _measurement, host]

Note that _time and _value are excluded from the example group key because they are unique to each row.

Tools for working with Flux

You have multiple options for writing and running Flux queries, but as you’re getting started, we recommend using the following:

1. Chronograf’s Data Explorer

Chronograf’s Data Explorer makes it easy to write your first Flux script and visualize the results. To use Chronograf’s Flux UI, open the Data Explorer and to the right of the source dropdown above the graph placeholder, select Flux as the source type.

This will provide Schema, Script, and Functions panes. The Schema pane allows you to explore your data. The Script pane is where you write your Flux script. The Functions pane provides a list of functions available in your Flux queries.

2. influx CLI

The influx CLI is an interactive shell for querying InfluxDB. With InfluxDB v1.8+, use the -type=flux and -path-prefix=/api/v2/query options to open a Flux REPL where you write and run Flux queries.

influx -type=flux -path-prefix=/api/v2/query

Was this page helpful?

Thank you for your feedback!

Introducing InfluxDB Clustered

A highly available InfluxDB 3.0 cluster on your own infrastructure.

InfluxDB Clustered is a highly available InfluxDB 3.0 cluster built for high write and query workloads on your own infrastructure.

InfluxDB Clustered is currently in limited availability and is only available to a limited group of InfluxData customers. If interested in being part of the limited access group, please contact the InfluxData Sales team.

Learn more
Contact InfluxData Sales

The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Flux is going into maintenance mode and will not be supported in InfluxDB 3.0. This was a decision based on the broad demand for SQL and the continued growth and adoption of InfluxQL. We are continuing to support Flux for users in 1.x and 2.x so you can continue using it with no changes to your code. If you are interested in transitioning to InfluxDB 3.0 and want to future-proof your code, we suggest using InfluxQL.

For information about the future of Flux, see the following:

State of the InfluxDB Cloud Serverless documentation

InfluxDB Cloud Serverless documentation is a work in progress.

The new documentation for InfluxDB Cloud Serverless is a work in progress. We are adding new information and content almost daily. Thank you for your patience!

If there is specific information you’re looking for, please submit a documentation issue.