diff --git a/content/v2.0/reference/flux/stdlib/contrib/influxdb/_index.md b/content/v2.0/reference/flux/stdlib/contrib/influxdb/_index.md new file mode 100644 index 000000000..6e26e0a5f --- /dev/null +++ b/content/v2.0/reference/flux/stdlib/contrib/influxdb/_index.md @@ -0,0 +1,29 @@ +--- +title: Flux InfluxDB package +list_title: InfluxDB package +description: > + The Flux InfluxDB package provides additional functions for querying data from InfluxDB. + Import the `contrib/jsternberg/influxdb` package. +menu: + v2_0_ref: + name: InfluxDB + identifier: contrib_influxdb + parent: Contributed +weight: 202 +v2.0/tags: [functions, package, query] +--- + +The Flux InfluxDB package provides additional functions for querying data from InfluxDB. +Import the `contrib/jsternberg/influxdb` package: + +```js +import "contrib/jsternberg/influxdb" +``` + +{{< children type="functions" show="pages" >}} + +{{% note %}} +#### Package author and maintainer +**Github:** [@jsternberg](https://github.com/jsternberg) +**InfluxDB Slack:** [@Jonathan Sternberg](https://influxdata.com/slack) +{{% /note %}} diff --git a/content/v2.0/reference/flux/stdlib/contrib/influxdb/select.md b/content/v2.0/reference/flux/stdlib/contrib/influxdb/select.md new file mode 100644 index 000000000..0b455f2f1 --- /dev/null +++ b/content/v2.0/reference/flux/stdlib/contrib/influxdb/select.md @@ -0,0 +1,180 @@ +--- +title: influxdb.select() function +description: > + The `influxdb.select()` function is an alternate implementation of `from()`, `range()`, `filter()` + and `pivot()` that returns pivoted query results and masks the `_start` and `_stop` column + Results are similar to those returned by InfluxQL `SELECT` statements. +menu: + v2_0_ref: + name: influxdb.select + parent: contrib_influxdb +weight: 202 +v2.0/tags: [functions, package, query] +related: + - /v2.0/reference/flux/stdlib/built-in/inputs/from/ + - /v2.0/reference/flux/stdlib/built-in/transformations/range/ + - /v2.0/reference/flux/stdlib/built-in/transformations/filter/ + - /v2.0/reference/flux/stdlib/built-in/transformations/pivot/ +--- + +The `influxdb.select()` function is an alternate implementation of `from()`, `range()`, `filter()` +and `pivot()` that returns pivoted query results and masks the `_start` and `_stop` columns. +Results are similar to those returned by InfluxQL `SELECT` statements. + +_**Function type:** Input_ + +```js +import "contrib/jsternberg/influxdb" + +influxdb.select( + from: "example-bucket", + start: -1d, + stop: now(), + m: "example-measurement", + fields: [], + where: (r) => true, + host: "https://example.com", + org: "example-org", + token: "MySuP3rSecr3Tt0k3n" +) +``` + +## Parameters + +{{% note %}} +[host](#host), [org](#org), and [token](#token) parameters are only required when +querying data from a **different organization** or a **remote InfluxDB instance**. +{{% /note %}} + +### from +Required Name of the bucket to query. + +_**Data type:** String_ + +### start +Required Earliest time to include in results. +Results **include** points that match the specified start time. +Use a relative duration or absolute time. +For example, `-1h` or `2019-08-28T22:00:00Z`. +Durations are relative to `now()`. + +_**Data type:** Duration | Time_ + +### stop +Latest time to include in results. +Results **exclude** points that match the specified stop time. +Use a relative duration or absolute time. +For example, `-1h` or `2019-08-28T22:00:00Z`. +Durations are relative to `now()`. +Defaults to `now()`. + +_**Data type:** Duration | Time_ + +### m +Required Name of the measurement to query. + +_**Data type:** String_ + +### fields +List of fields to query. + +_**Data type:** Array of Strings_ + +### where +A single argument predicate function that evaluates true or false and filters results based on tag values. +Records are passed to the function. +Those that evaluate to true are included in the output tables. +Records that evaluate to _null_ or false are not included in the output tables. +Defaults to `(r) => true`. + +_**Data type:** Function_ + +{{% note %}} +Objects evaluated in `fn` functions are represented by `r`, short for "record" or "row". +{{% /note %}} + +### host +URL of the InfluxDB instance to query. +_See [InfluxDB URLs](/v2.0/reference/urls/)._ + +_**Data type:** String_ + +### org +Organization name. + +_**Data type:** String_ + +### token +InfluxDB [authentication token](/v2.0/security/tokens/). + +_**Data type:** String_ + + +## Examples + +- [Query a single field](#query-a-single-field) +- [Query multiple fields](#query-multiple-fields) +- [Query all fields and filter by tags](#query-all-fields-and-filter-by-tags) +- [Query data from a remote InfluxDB Cloud instance](#query-data-from-a-remote-influxdb-cloud-instance) + +##### Query a single field +```js +import "contrib/jsternberg/influxdb" + +influxdb.select( + from: "example-bucket", + start: -1d, + m: "example-measurement", + fields: ["field1"] +) +``` + +##### Query multiple fields +```js +import "contrib/jsternberg/influxdb" + +influxdb.select( + from: "example-bucket", + start: -1d, + m: "example-measurement", + fields: ["field1", "field2", "field3"] +) +``` + +##### Query all fields and filter by tags +```js +import "contrib/jsternberg/influxdb" + +influxdb.select( + from: "example-bucket", + start: -1d, + m: "example-measurement", + where: (r) => r.host == "host1" and r.region == "us-west" +) +``` + +##### Query data from a remote InfluxDB Cloud instance +```js +import "contrib/jsternberg/influxdb" +import "influxdata/influxdb/secrets" + +token = secrets.get(key: "INFLUXDB_CLOUD_TOKEN") + +influxdb.select( + from: "example-bucket", + start: -1d, + m: "example-measurement", + fields: ["field1", "field2"], + host: "https://cloud2.influxdata.com", + org: "example-org", + token: token +) +``` + +--- + +{{% note %}} +#### Package author and maintainer +**Github:** [@jsternberg](https://github.com/jsternberg) +**InfluxDB Slack:** [@Jonathan Sternberg](https://influxdata.com/slack) +{{% /note %}}