35 lines
1.5 KiB
Markdown
35 lines
1.5 KiB
Markdown
---
|
|
title: Flux data scripting language
|
|
description: >
|
|
Flux is a functional data scripting language designed for querying, analyzing, and acting on time series data.
|
|
menu:
|
|
enterprise_influxdb_v1:
|
|
name: Flux
|
|
weight: 71
|
|
---
|
|
|
|
Flux is a functional data scripting language designed for querying, analyzing, and acting on time series data.
|
|
Its takes the power of [InfluxQL](/enterprise_influxdb/v1/query_language/spec/) and the functionality of [TICKscript](/kapacitor/v1/reference/tick/introduction/) and combines them into a single, unified syntax.
|
|
|
|
> Flux v0.65 is production-ready and included with **InfluxDB Enterprise v1.8+.
|
|
> The InfluxDB v1.8 implementation of Flux is read-only and does not support
|
|
> writing data back to InfluxDB.
|
|
|
|
## Flux design principles
|
|
Flux is designed to be usable, readable, flexible, composable, testable, contributable, and shareable.
|
|
Its syntax is largely inspired by [2018's most popular scripting language](https://insights.stackoverflow.com/survey/2018#technology),
|
|
JavaScript, and takes a functional approach to data exploration and processing.
|
|
|
|
The following example illustrates pulling data from a bucket (similar to an InfluxQL database) for the last five minutes,
|
|
filtering that data by the `cpu` measurement and the `cpu=cpu-total` tag, windowing the data in 1 minute intervals,
|
|
and calculating the average of each window:
|
|
|
|
```js
|
|
from(bucket: "telegraf/autogen")
|
|
|> range(start: -1h)
|
|
|> filter(fn: (r) => r._measurement == "cpu" and r.cpu == "cpu-total")
|
|
|> aggregateWindow(every: 1m, fn: mean)
|
|
```
|
|
|
|
{{< children >}}
|