Documentation

Execute Flux queries

This page documents an earlier version of InfluxDB. InfluxDB v2 is the latest stable version. See the equivalent InfluxDB v2 documentation: Execute queries.

There are multiple ways to execute Flux queries with InfluxDB and Chronograf v1.8+. This guide covers the different options:

  1. Chronograf’s Data Explorer
  2. Influx CLI
  3. InfluxDB API

Before attempting these methods, make sure Flux is enabled by setting flux-enabled = true in the [http] section of your InfluxDB configuration file.

Chronograf’s Data Explorer

Chronograf v1.8+ supports Flux in its Data Explorer. Flux queries can be built, executed, and visualized from within the Chronograf user interface.

Influx CLI

To start an interactive Flux read-eval-print-loop (REPL) with the InfluxDB 1.8+ influx CLI, run the influx command with the following flags:

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

If authentication is enabled on your InfluxDB instance, use the -username flag to provide your InfluxDB username and the -password flag to provide your password.

Enter an interactive Flux REPL
influx -type=flux -path-prefix=/api/v2/query
influx -type=flux \
  -path-prefix=/api/v2/query \
  -username myuser \
  -password PasSw0rd

Any Flux query can be executed within the REPL.

Submit a Flux query via parameter

Flux queries can also be passed to the Flux REPL as a parameter using the influx CLI’s -type=flux option and the -execute parameter. The accompanying string is executed as a Flux query and results are output in your terminal.

influx -type=flux \
  -path-prefix=/api/v2/query \
  -execute '<flux query>'
influx -type=flux \
  -path-prefix=/api/v2/query \
  -username myuser \
  -password PasSw0rd \
  -execute '<flux query>'

Submit a Flux query via via STDIN

Flux queries an be piped into the influx CLI via STDIN. Query results are otuput in your terminal.

echo '<flux query>' | influx -type=flux -path-prefix=/api/v2/query
echo '<flux query>' | influx -type=flux \
  -path-prefix=/api/v2/query \
  -username myuser \
  -password PasSw0rd

InfluxDB API

Flux can be used to query InfluxDB through InfluxDB’s /api/v2/query endpoint. Queried data is returned in annotated CSV format.

In your request, set the following:

  • Accept header to application/csv
  • Content-type header to application/vnd.flux
  • If authentication is enabled on your InfluxDB instance, Authorization header to Token <username>:<password>

This allows you to POST the Flux query in plain text and receive the annotated CSV response.

Below is an example curl command that queries InfluxDB using Flux:

curl -XPOST localhost:8086/api/v2/query -sS \
  -H 'Accept:application/csv' \
  -H 'Content-type:application/vnd.flux' \
  -d 'from(bucket:"telegraf")
        |> range(start:-5m)
        |> filter(fn:(r) => r._measurement == "cpu")'
curl -XPOST localhost:8086/api/v2/query -sS \
  -H 'Accept:application/csv' \
  -H 'Content-type:application/vnd.flux' \
  -H 'Authorization: Token <username>:<password>' \
  -d 'from(bucket:"telegraf")
        |> range(start:-5m)
        |> filter(fn:(r) => r._measurement == "cpu")'

Was this page helpful?

Thank you for your feedback!


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: