content/enterprise_influxdb/v1/flux/execute-queries.md
There are multiple ways to execute Flux queries with InfluxDB Enterprise and Chronograf v1.8+. This guide covers the different options:
Before attempting these methods, make sure Flux is enabled by setting
flux-enabled = truein the[http]section of your InfluxDB configuration file.
Chronograf v1.8+ supports Flux in its Data Explorer. Flux queries can be built, executed, and visualized from within the Chronograf user interface.
To start an interactive Flux read-eval-print-loop (REPL) with the InfluxDB Enterprise 1.10+
influx CLI, run the influx command with the following flags:
-type=flux-path-prefix=/api/v2/query{{% note %}}
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.
{{% /note %}}
{{< code-tabs-wrapper >}} {{% code-tabs %}} No Auth Auth Enabled {{% /code-tabs %}} {{% code-tab-content %}}
influx -type=flux -path-prefix=/api/v2/query
{{% /code-tab-content %}} {{% code-tab-content %}}
influx -type=flux \
-path-prefix=/api/v2/query \
-username myuser \
-password PasSw0rd
{{% /code-tab-content %}} {{< /code-tabs-wrapper >}}
Any Flux query can be executed within the REPL.
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.
{{< code-tabs-wrapper >}} {{% code-tabs %}} No Auth Auth Enabled {{% /code-tabs %}} {{% code-tab-content %}}
influx -type=flux \
-path-prefix=/api/v2/query \
-execute '<flux query>'
{{% /code-tab-content %}} {{% code-tab-content %}}
influx -type=flux \
-path-prefix=/api/v2/query \
-username myuser \
-password PasSw0rd \
-execute '<flux query>'
{{% /code-tab-content %}} {{< /code-tabs-wrapper >}}
Flux queries an be piped into the influx CLI via STDIN.
Query results are otuput in your terminal.
{{< code-tabs-wrapper >}} {{% code-tabs %}} No Auth Auth Enabled {{% /code-tabs %}} {{% code-tab-content %}}
echo '<flux query>' | influx -type=flux -path-prefix=/api/v2/query
{{% /code-tab-content %}} {{% code-tab-content %}}
echo '<flux query>' | influx -type=flux \
-path-prefix=/api/v2/query \
-username myuser \
-password PasSw0rd
{{% /code-tab-content %}} {{< /code-tabs-wrapper >}}
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/csvContent-type header to application/vnd.fluxAuthorization 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:
{{< code-tabs-wrapper >}} {{% code-tabs %}} No Auth Auth Enabled {{% /code-tabs %}} {{% code-tab-content %}}
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")'
{{% /code-tab-content %}} {{% code-tab-content %}}
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")'
{{% /code-tab-content %}} {{< /code-tabs-wrapper >}}