Merge branch 'master' into beta-14
commit
91c849dee0
|
@ -546,6 +546,18 @@ The following options are available:
|
||||||
- third
|
- third
|
||||||
- quarter
|
- quarter
|
||||||
|
|
||||||
|
### Tooltips
|
||||||
|
Use the `{{< tooltips >}}` shortcode to add tooltips to text.
|
||||||
|
The **1st** argument is the text shown in the tooltip.
|
||||||
|
The **2nd** argument is the highlighted text that triggers the tooltip.
|
||||||
|
|
||||||
|
```md
|
||||||
|
I like {{< tooltip "Butterflies are awesome!" "butterflies" >}}.
|
||||||
|
```
|
||||||
|
|
||||||
|
The example above renders as "I like butterflies" with "butterflies" highlighted.
|
||||||
|
When you hover over "butterflies," a tooltip appears with the text: "Butterflies are awesome!"
|
||||||
|
|
||||||
### Reference content
|
### Reference content
|
||||||
The InfluxDB documentation is "task-based," meaning content primarily focuses on
|
The InfluxDB documentation is "task-based," meaning content primarily focuses on
|
||||||
what a user is **doing**, not what they are **using**.
|
what a user is **doing**, not what they are **using**.
|
||||||
|
|
|
@ -58,7 +58,18 @@ function storeUrl(newUrl, prevUrl) {
|
||||||
Cookies.set('influxdb_url', newUrl)
|
Cookies.set('influxdb_url', newUrl)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Preserver URLs in codeblocks that come just after or are inside a div
|
// Store custom URL session cookie – influxdb_custom_url
|
||||||
|
function storeCustomUrl(customUrl) {
|
||||||
|
Cookies.set('influxdb_custom_url', customUrl)
|
||||||
|
$('input#custom[type=radio]').val(customUrl)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove custom URL session cookie – influxdb_custom_url
|
||||||
|
function removeCustomUrl() {
|
||||||
|
Cookies.remove('influxdb_custom_url')
|
||||||
|
}
|
||||||
|
|
||||||
|
// Preserve URLs in codeblocks that come just after or are inside a div
|
||||||
// with the class, .keep-url
|
// with the class, .keep-url
|
||||||
function addPreserve() {
|
function addPreserve() {
|
||||||
$('.keep-url').each(function () {
|
$('.keep-url').each(function () {
|
||||||
|
@ -88,9 +99,6 @@ updateUrls(defaultUrl, getUrl())
|
||||||
// Append URL selector buttons to code blocks
|
// Append URL selector buttons to code blocks
|
||||||
appendUrlSelector(getUrl())
|
appendUrlSelector(getUrl())
|
||||||
|
|
||||||
// Set active radio button on page load
|
|
||||||
setRadioButton(getUrl())
|
|
||||||
|
|
||||||
// Update URLs whenever you focus on the browser tab
|
// Update URLs whenever you focus on the browser tab
|
||||||
$(window).focus(function() {
|
$(window).focus(function() {
|
||||||
updateUrls(getPrevUrl(), getUrl())
|
updateUrls(getPrevUrl(), getUrl())
|
||||||
|
@ -115,3 +123,51 @@ $('button.url-trigger, #callout-url-selector .close').click(function() {
|
||||||
$('#callout-url-selector').fadeOut(200)
|
$('#callout-url-selector').fadeOut(200)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
///////////////////////////////// CUSTOM URLs /////////////////////////////////
|
||||||
|
|
||||||
|
// Trigger radio button on custom URL field focus
|
||||||
|
$('input#custom-url-field').focus(function(e) {
|
||||||
|
$('input#custom[type="radio"]').trigger('click')
|
||||||
|
})
|
||||||
|
|
||||||
|
$("#custom-url").submit(function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
$('#modal-close').trigger('click')
|
||||||
|
});
|
||||||
|
|
||||||
|
// Store the custom InfluxDB URL when exiting the field
|
||||||
|
$('#custom-url-field').blur(function() {
|
||||||
|
custUrl = $(this).val()
|
||||||
|
if (custUrl.length > 0 ) {
|
||||||
|
storeCustomUrl(custUrl)
|
||||||
|
updateUrls(getUrl(), custUrl)
|
||||||
|
storeUrl(custUrl, getPrevUrl())
|
||||||
|
} else {
|
||||||
|
$('input#custom').val('http://example.com:8080')
|
||||||
|
removeCustomUrl();
|
||||||
|
$('input[name="influxdb-loc"][value="' + defaultUrl + '"]').trigger('click')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Populate the custom InfluxDB URL field on page load
|
||||||
|
if ( Cookies.get('influxdb_custom_url') != undefined ) {
|
||||||
|
$('input#custom').val(Cookies.get('influxdb_custom_url'))
|
||||||
|
$('#custom-url-field').val(Cookies.get('influxdb_custom_url'))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set active radio button on page load
|
||||||
|
setRadioButton(getUrl())
|
||||||
|
|
||||||
|
/////////////////////////// Dynamically update URLs ///////////////////////////
|
||||||
|
|
||||||
|
// Extract the protocol and hostname of referrer
|
||||||
|
referrerHost = document.referrer.match(/^(?:[^\/]*\/){2}[^\/]+/g)[0]
|
||||||
|
|
||||||
|
// Check if the referrerHost is one of the cloud URLs
|
||||||
|
// cloudUrls is built dynamically in layouts/partials/footer/javascript.html
|
||||||
|
if (cloudUrls.includes(referrerHost)) {
|
||||||
|
storeUrl(referrerHost, getUrl())
|
||||||
|
updateUrls(getPrevUrl(), referrerHost)
|
||||||
|
setRadioButton(referrerHost)
|
||||||
|
}
|
||||||
|
|
|
@ -136,6 +136,42 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
li.custom {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
#custom-url {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
padding-left: .5rem;
|
||||||
|
input {
|
||||||
|
&#custom-url-field {
|
||||||
|
font-family: $rubik;
|
||||||
|
font-weight: $medium;
|
||||||
|
background: $modal-field-bg;
|
||||||
|
border-radius: $radius;
|
||||||
|
border: 1px solid $sidebar-search-bg;
|
||||||
|
padding: .5em;
|
||||||
|
width: 100%;
|
||||||
|
color: $sidebar-search-text;
|
||||||
|
transition-property: border, box-shadow;
|
||||||
|
transition-duration: .2s;
|
||||||
|
box-shadow: 2px 2px 6px $sidebar-search-shadow;
|
||||||
|
&:focus {
|
||||||
|
outline: none;
|
||||||
|
border-color: $sidebar-search-highlight;
|
||||||
|
box-shadow: 1px 1px 10px rgba($sidebar-search-highlight, .5);
|
||||||
|
border-radius: $radius;
|
||||||
|
}
|
||||||
|
&::placeholder {
|
||||||
|
color: rgba($sidebar-search-text, .45);
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.radio {
|
.radio {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
|
@ -22,5 +22,5 @@
|
||||||
"layouts/algolia-search-overrides",
|
"layouts/algolia-search-overrides",
|
||||||
"layouts/landing",
|
"layouts/landing",
|
||||||
"layouts/error-page",
|
"layouts/error-page",
|
||||||
"layouts/cloud-selector",
|
"layouts/url-selector",
|
||||||
"layouts/feature-callouts";
|
"layouts/feature-callouts";
|
||||||
|
|
|
@ -182,6 +182,9 @@ $tooltip-color-alt: $br-chartreuse;
|
||||||
$tooltip-bg: $br-chartreuse;
|
$tooltip-bg: $br-chartreuse;
|
||||||
$tooltip-text: $g2-kevlar;
|
$tooltip-text: $g2-kevlar;
|
||||||
|
|
||||||
|
// URL Modal colors
|
||||||
|
$modal-field-bg: $g1-raven;
|
||||||
|
|
||||||
// SVG colors
|
// SVG colors
|
||||||
$svg-table-header: $g6-smoke;
|
$svg-table-header: $g6-smoke;
|
||||||
$svg-table-stroke: $g0-obsidian;
|
$svg-table-stroke: $g0-obsidian;
|
||||||
|
|
|
@ -182,6 +182,9 @@ $tooltip-color-alt: $p-twilight !default;
|
||||||
$tooltip-bg: $p-amethyst !default;
|
$tooltip-bg: $p-amethyst !default;
|
||||||
$tooltip-text: $g20-white !default;
|
$tooltip-text: $g20-white !default;
|
||||||
|
|
||||||
|
// URL Modal colors
|
||||||
|
$modal-field-bg: $g20-white !default;
|
||||||
|
|
||||||
// SVG colors
|
// SVG colors
|
||||||
$svg-table-header: $g15-platinum !default;
|
$svg-table-header: $g15-platinum !default;
|
||||||
$svg-table-stroke: $g7-graphite !default;
|
$svg-table-stroke: $g7-graphite !default;
|
||||||
|
|
|
@ -572,7 +572,7 @@ and [Manually update Telegraf configurations](/v2.0/write-data/use-telegraf/manu
|
||||||
#### Scrape data
|
#### Scrape data
|
||||||
|
|
||||||
**InfluxDB OSS** lets you scrape Prometheus-formatted metrics from HTTP endpoints.
|
**InfluxDB OSS** lets you scrape Prometheus-formatted metrics from HTTP endpoints.
|
||||||
For details, see [Scrape data](/v2.0/write-data/scrape-data/).
|
For details, see [Scrape data](/v2.0/write-data/no-code/scrape-data/).
|
||||||
|
|
||||||
#### API, CLI, and client libraries
|
#### API, CLI, and client libraries
|
||||||
|
|
||||||
|
@ -607,7 +607,7 @@ See [Monitor and alert](/v2.0/monitor-alert/).
|
||||||
{{< cloud-name >}} is API-compatible and functionally compatible with InfluxDB OSS 2.0.
|
{{< cloud-name >}} is API-compatible and functionally compatible with InfluxDB OSS 2.0.
|
||||||
The primary differences between InfluxDB OSS 2.0 and InfluxDB Cloud 2.0 are:
|
The primary differences between InfluxDB OSS 2.0 and InfluxDB Cloud 2.0 are:
|
||||||
|
|
||||||
- [InfluxDB scrapers](/v2.0/write-data/scrape-data/) that collect data from specified
|
- [InfluxDB scrapers](/v2.0/write-data/no-code/scrape-data/) that collect data from specified
|
||||||
targets are not available in {{< cloud-name "short" >}}.
|
targets are not available in {{< cloud-name "short" >}}.
|
||||||
- {{< cloud-name "short" >}} instances are currently limited to a single organization.
|
- {{< cloud-name "short" >}} instances are currently limited to a single organization.
|
||||||
|
|
||||||
|
|
|
@ -50,11 +50,6 @@ In **InfluxDB Cloud**, your user account is an organization.
|
||||||
|
|
||||||
4. Export the template _(see [below](#export-a-template))_.
|
4. Export the template _(see [below](#export-a-template))_.
|
||||||
|
|
||||||
{{% warn %}}
|
|
||||||
InfluxDB templates do not support the [table visualization type](/v2.0/visualize-data/visualization-types/table/).
|
|
||||||
Dashboard cells that use table visualization are not included in exported templates.
|
|
||||||
{{% /warn %}}
|
|
||||||
|
|
||||||
## Export a template
|
## Export a template
|
||||||
Do one of the following to export a template:
|
Do one of the following to export a template:
|
||||||
|
|
||||||
|
|
|
@ -9,15 +9,20 @@ menu:
|
||||||
weight: 202
|
weight: 202
|
||||||
---
|
---
|
||||||
|
|
||||||
## View buckets in the InfluxDB UI
|
## View a list of buckets
|
||||||
|
|
||||||
|
### View buckets in the InfluxDB UI
|
||||||
|
|
||||||
1. In the navigation menu on the left, select **Data (Load Data)** > **Buckets**.
|
1. In the navigation menu on the left, select **Data (Load Data)** > **Buckets**.
|
||||||
|
|
||||||
{{< nav-icon "data" >}}
|
{{< nav-icon "data" >}}
|
||||||
|
|
||||||
2. Click a bucket to open it **Data Explorer**.
|
A list of buckets with their retention policies and IDs appears.
|
||||||
|
|
||||||
## View buckets using the influx CLI
|
2. Click a bucket to open it in the **Data Explorer**.
|
||||||
|
3. Click the bucket ID to copy it to the clipboard.
|
||||||
|
|
||||||
|
### View buckets using the influx CLI
|
||||||
|
|
||||||
Use the [`influx bucket list` command](/v2.0/reference/cli/influx/bucket/list)
|
Use the [`influx bucket list` command](/v2.0/reference/cli/influx/bucket/list)
|
||||||
to view a buckets in an organization.
|
to view a buckets in an organization.
|
||||||
|
|
|
@ -3,7 +3,7 @@ title: Calculate the increase
|
||||||
seotitle: Calculate the increase in Flux
|
seotitle: Calculate the increase in Flux
|
||||||
list_title: Increase
|
list_title: Increase
|
||||||
description: >
|
description: >
|
||||||
Use the [`increase()` function](/v2.0/reference/flux/stdlib/built-in/transformations/aggregates/increase/)
|
Use the [`increase()` function](/v2.0/reference/flux/stdlib/built-in/transformations/increase/)
|
||||||
to track increases across multiple columns in a table.
|
to track increases across multiple columns in a table.
|
||||||
This function is especially useful when tracking changes in counter values that
|
This function is especially useful when tracking changes in counter values that
|
||||||
wrap over time or periodically reset.
|
wrap over time or periodically reset.
|
||||||
|
@ -18,7 +18,7 @@ related:
|
||||||
list_query_example: increase
|
list_query_example: increase
|
||||||
---
|
---
|
||||||
|
|
||||||
Use the [`increase()` function](/v2.0/reference/flux/stdlib/built-in/transformations/aggregates/increase/)
|
Use the [`increase()` function](/v2.0/reference/flux/stdlib/built-in/transformations/increase/)
|
||||||
to track increases across multiple columns in a table.
|
to track increases across multiple columns in a table.
|
||||||
This function is especially useful when tracking changes in counter values that
|
This function is especially useful when tracking changes in counter values that
|
||||||
wrap over time or periodically reset.
|
wrap over time or periodically reset.
|
||||||
|
|
|
@ -16,7 +16,7 @@ menu:
|
||||||
name: Rate
|
name: Rate
|
||||||
v2.0/tags: [query, rate]
|
v2.0/tags: [query, rate]
|
||||||
related:
|
related:
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/derivative/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/derivative/
|
||||||
- /v2.0/reference/flux/stdlib/experimental/aggregate/rate/
|
- /v2.0/reference/flux/stdlib/experimental/aggregate/rate/
|
||||||
list_query_example: rate_of_change
|
list_query_example: rate_of_change
|
||||||
---
|
---
|
||||||
|
|
|
@ -4,7 +4,8 @@ seotitle: Query SQL data sources with InfluxDB
|
||||||
list_title: Query SQL data
|
list_title: Query SQL data
|
||||||
description: >
|
description: >
|
||||||
The Flux `sql` package provides functions for working with SQL data sources.
|
The Flux `sql` package provides functions for working with SQL data sources.
|
||||||
Use `sql.from()` to query SQL databases like PostgreSQL, MySQL, Snowflake, and SQLite.
|
Use `sql.from()` to query SQL databases like PostgreSQL, MySQL, Snowflake,
|
||||||
|
SQLite, Microsoft SQL Server, and Amazon Athena.
|
||||||
v2.0/tags: [query, flux, sql]
|
v2.0/tags: [query, flux, sql]
|
||||||
menu:
|
menu:
|
||||||
v2_0:
|
v2_0:
|
||||||
|
@ -30,8 +31,10 @@ list_code_example: |
|
||||||
The [Flux](/v2.0/reference/flux) `sql` package provides functions for working with SQL data sources.
|
The [Flux](/v2.0/reference/flux) `sql` package provides functions for working with SQL data sources.
|
||||||
[`sql.from()`](/v2.0/reference/flux/stdlib/sql/from/) lets you query SQL data sources
|
[`sql.from()`](/v2.0/reference/flux/stdlib/sql/from/) lets you query SQL data sources
|
||||||
like [PostgreSQL](https://www.postgresql.org/), [MySQL](https://www.mysql.com/),
|
like [PostgreSQL](https://www.postgresql.org/), [MySQL](https://www.mysql.com/),
|
||||||
[Snowflake](https://www.snowflake.com/), and [SQLite](https://www.sqlite.org/index.html),
|
[Snowflake](https://www.snowflake.com/), [SQLite](https://www.sqlite.org/index.html),
|
||||||
and use the results with InfluxDB dashboards, tasks, and other operations.
|
[Microsoft SQL Server](https://www.microsoft.com/en-us/sql-server/default.aspx),
|
||||||
|
and [Amazon Athena](https://aws.amazon.com/athena/) and use the results with
|
||||||
|
InfluxDB dashboards, tasks, and other operations.
|
||||||
|
|
||||||
- [Query a SQL data source](#query-a-sql-data-source)
|
- [Query a SQL data source](#query-a-sql-data-source)
|
||||||
- [Join SQL data with data in InfluxDB](#join-sql-data-with-data-in-influxdb)
|
- [Join SQL data with data in InfluxDB](#join-sql-data-with-data-in-influxdb)
|
||||||
|
@ -57,6 +60,7 @@ To query a SQL data source:
|
||||||
[MySQL](#)
|
[MySQL](#)
|
||||||
[Snowflake](#)
|
[Snowflake](#)
|
||||||
[SQLite](#)
|
[SQLite](#)
|
||||||
|
[SQL Server](#)
|
||||||
{{% /code-tabs %}}
|
{{% /code-tabs %}}
|
||||||
|
|
||||||
{{% code-tab-content %}}
|
{{% code-tab-content %}}
|
||||||
|
@ -110,6 +114,21 @@ sql.from(
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
{{% /code-tab-content %}}
|
{{% /code-tab-content %}}
|
||||||
|
|
||||||
|
{{% code-tab-content %}}
|
||||||
|
```js
|
||||||
|
import "sql"
|
||||||
|
|
||||||
|
sql.from(
|
||||||
|
driverName: "sqlserver",
|
||||||
|
dataSourceName: "sqlserver://user:password@localhost:1234?database=examplebdb",
|
||||||
|
query: "GO SELECT * FROM Example.Table"
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
_For information about authenticating with SQL Server using ADO-style parameters,
|
||||||
|
see [SQL Server ADO authentication](/v2.0/reference/flux/stdlib/sql/from/#sql-server-ado-authentication)._
|
||||||
|
{{% /code-tab-content %}}
|
||||||
{{< /code-tabs-wrapper >}}
|
{{< /code-tabs-wrapper >}}
|
||||||
|
|
||||||
_See the [`sql.from()` documentation](/v2.0/reference/flux/stdlib/sql/from/) for
|
_See the [`sql.from()` documentation](/v2.0/reference/flux/stdlib/sql/from/) for
|
||||||
|
|
|
@ -27,6 +27,10 @@ reduce the amount of memory necessary to run a query.
|
||||||
- [range()](/v2.0/reference/flux/stdlib/built-in/transformations/range/)
|
- [range()](/v2.0/reference/flux/stdlib/built-in/transformations/range/)
|
||||||
- [filter()](/v2.0/reference/flux/stdlib/built-in/transformations/filter/)
|
- [filter()](/v2.0/reference/flux/stdlib/built-in/transformations/filter/)
|
||||||
- [group()](/v2.0/reference/flux/stdlib/built-in/transformations/group/)
|
- [group()](/v2.0/reference/flux/stdlib/built-in/transformations/group/)
|
||||||
|
- [count()](/v2.0/reference/flux/stdlib/built-in/transformations/aggregates/count/)
|
||||||
|
- [sum()](/v2.0/reference/flux/stdlib/built-in/transformations/aggregates/sum/)
|
||||||
|
- [first()](/v2.0/reference/flux/stdlib/built-in/transformations/selectors/first/)
|
||||||
|
- [last()](/v2.0/reference/flux/stdlib/built-in/transformations/selectors/last/)
|
||||||
|
|
||||||
Use pushdown functions at the beginning of your query.
|
Use pushdown functions at the beginning of your query.
|
||||||
Once a non-pushdown function runs, Flux pulls data into memory and runs all
|
Once a non-pushdown function runs, Flux pulls data into memory and runs all
|
||||||
|
|
|
@ -19,8 +19,23 @@ and includes absolute time ranges using the provided `--now` time.
|
||||||
influx transpile [InfluxQL query] [flags]
|
influx transpile [InfluxQL query] [flags]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
The InfluxQL query must be valid and contain both a database and measurement.
|
||||||
|
See the [InfluxQL documentation](https://docs.influxdata.com/influxdb/latest/query_language/) for more information.
|
||||||
|
{{% /note %}}
|
||||||
|
|
||||||
## Flags
|
## Flags
|
||||||
| Flag | | Description |
|
| Flag | | Description |
|
||||||
|:---- |:--- |:----------- |
|
|:---- |:--- |:----------- |
|
||||||
| `-h` | `--help` | Help for the `transpile` command |
|
| `-h` | `--help` | Help for the `transpile` command |
|
||||||
| | `--now` | RFC3339Nano timestamp to use as `now()` time (default is current UTC time) |
|
| | `--now` | RFC3339Nano timestamp to use as `now()` time (default is current UTC time) |
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
```sh
|
||||||
|
## Transpile an InfluxQL query that specifies the database,
|
||||||
|
## retention policy, and measurement.
|
||||||
|
influx transpile 'SELECT example-field FROM db.rp.measurement'
|
||||||
|
|
||||||
|
## Transpile InfluxQL query using default retention policy
|
||||||
|
influx transpile 'SELECT example-field FROM db..measurement'
|
||||||
|
```
|
||||||
|
|
|
@ -12,7 +12,7 @@ related:
|
||||||
- /v2.0/reference/flux/stdlib/system/time/
|
- /v2.0/reference/flux/stdlib/system/time/
|
||||||
---
|
---
|
||||||
|
|
||||||
The `now()` function returns the current time (UTC).
|
The `now()` function returns the current time (UTC) or the time defined in the `now` option.
|
||||||
|
|
||||||
_**Function type:** Date/Time_
|
_**Function type:** Date/Time_
|
||||||
_**Output data type:** Time_
|
_**Output data type:** Time_
|
||||||
|
@ -22,11 +22,21 @@ now()
|
||||||
```
|
```
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
##### Use the current UTC time as a query boundary
|
||||||
```js
|
```js
|
||||||
data
|
data
|
||||||
|> range(start: -10h, stop: now())
|
|> range(start: -10h, stop: now())
|
||||||
```
|
```
|
||||||
|
|
||||||
|
##### Return the now option time
|
||||||
|
```js
|
||||||
|
option now = () => 2020-01-01T00:00:00Z
|
||||||
|
|
||||||
|
now()
|
||||||
|
// Returns 2020-01-01T00:00:00.000000000Z
|
||||||
|
```
|
||||||
|
|
||||||
{{% note %}}
|
{{% note %}}
|
||||||
#### now() vs system.time()
|
#### now() vs system.time()
|
||||||
`now()` returns the current UTC time.
|
`now()` returns the current UTC time.
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
---
|
---
|
||||||
title: Flux built-in aggregate functions
|
title: Flux built-in aggregate transformations
|
||||||
list_title: Built-in aggregate functions
|
list_title: Built-in aggregate transformations
|
||||||
description: Flux's built-in aggregate functions take values from an input table and aggregate them in some way.
|
description: >
|
||||||
|
Flux's aggregate transformations take values from an input table and aggregate them in some way.
|
||||||
|
Output tables contain a single row with the aggregated value.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/transformations/aggregates
|
- /v2.0/reference/flux/functions/transformations/aggregates
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/
|
||||||
|
@ -16,8 +18,8 @@ related:
|
||||||
- /v2.0/query-data/flux/window-aggregate/
|
- /v2.0/query-data/flux/window-aggregate/
|
||||||
---
|
---
|
||||||
|
|
||||||
Flux's built-in aggregate functions take values from an input table and aggregate them in some way.
|
Flux's built-in aggregate transformations take values from an input table and aggregate them in some way.
|
||||||
The output table contains a single row with the aggregated value.
|
Output tables contain a single row with the aggregated value.
|
||||||
|
|
||||||
Aggregate operations output a table for every input table they receive.
|
Aggregate operations output a table for every input table they receive.
|
||||||
You must provide a column to aggregate.
|
You must provide a column to aggregate.
|
||||||
|
|
|
@ -24,7 +24,7 @@ count(column: "_value")
|
||||||
```
|
```
|
||||||
|
|
||||||
{{% note %}}
|
{{% note %}}
|
||||||
#### Count empty tables
|
#### Empty tables
|
||||||
`count()` returns `0` for empty tables.
|
`count()` returns `0` for empty tables.
|
||||||
To keep empty tables in your data, set the following parameters for the following functions:
|
To keep empty tables in your data, set the following parameters for the following functions:
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,11 @@ If there are multiple modes, it returns all of them in a sorted table.
|
||||||
Mode only considers non-null values.
|
Mode only considers non-null values.
|
||||||
If there is no mode, `mode()` returns `null`.
|
If there is no mode, `mode()` returns `null`.
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`mode()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
##### Supported data types
|
##### Supported data types
|
||||||
|
|
||||||
- String
|
- String
|
||||||
|
|
|
@ -5,11 +5,12 @@ description: >
|
||||||
developed by Tushar Chande.
|
developed by Tushar Chande.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/chandemomentumoscillator/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/chandemomentumoscillator/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/chandemomentumoscillator/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: chandeMomentumOscillator
|
name: chandeMomentumOscillator
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
related:
|
related:
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#triple-exponential-moving-average, InfluxQL CHANDE_MOMENTUM_OSCILLATOR()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#triple-exponential-moving-average, InfluxQL CHANDE_MOMENTUM_OSCILLATOR()
|
||||||
---
|
---
|
||||||
|
@ -17,7 +18,7 @@ related:
|
||||||
The `chandeMomentumOscillator()` function applies the technical momentum indicator
|
The `chandeMomentumOscillator()` function applies the technical momentum indicator
|
||||||
developed by Tushar Chande.
|
developed by Tushar Chande.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
chandeMomentumOscillator(
|
chandeMomentumOscillator(
|
||||||
|
@ -45,10 +46,16 @@ Defaults to `["_value"]`.
|
||||||
|
|
||||||
_**Data type: Array of Strings**_
|
_**Data type: Array of Strings**_
|
||||||
|
|
||||||
|
## Output tables
|
||||||
|
For each input table with `x` rows, `chandeMomentumOscillator()` outputs a table
|
||||||
|
with `x - n` rows.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
#### Table transformation with a ten point Chande Momentum Oscillator
|
#### Table transformation with a ten point Chande Momentum Oscillator
|
||||||
|
|
||||||
|
{{< flex >}}
|
||||||
|
{{% flex-content %}}
|
||||||
###### Input table
|
###### Input table
|
||||||
| _time | _value |
|
| _time | _value |
|
||||||
|:-----:|:------:|
|
|:-----:|:------:|
|
||||||
|
@ -81,7 +88,9 @@ _**Data type: Array of Strings**_
|
||||||
| 0027 | 3 |
|
| 0027 | 3 |
|
||||||
| 0028 | 2 |
|
| 0028 | 2 |
|
||||||
| 0029 | 1 |
|
| 0029 | 1 |
|
||||||
|
{{% /flex-content %}}
|
||||||
|
|
||||||
|
{{% flex-content %}}
|
||||||
###### Query
|
###### Query
|
||||||
```js
|
```js
|
||||||
// ...
|
// ...
|
||||||
|
@ -110,3 +119,5 @@ _**Data type: Array of Strings**_
|
||||||
| 0027 | -100 |
|
| 0027 | -100 |
|
||||||
| 0028 | -100 |
|
| 0028 | -100 |
|
||||||
| 0029 | -100 |
|
| 0029 | -100 |
|
||||||
|
{{% /flex-content %}}
|
||||||
|
{{< /flex >}}
|
|
@ -4,17 +4,18 @@ description: The `cov()` function computes the covariance between two streams by
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/transformations/aggregates/cov
|
- /v2.0/reference/flux/functions/transformations/aggregates/cov
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/cov/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/cov/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/cov/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: cov
|
name: cov
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
---
|
---
|
||||||
|
|
||||||
The `cov()` function computes the covariance between two streams by first joining the streams,
|
The `cov()` function computes the covariance between two streams by first joining the streams,
|
||||||
then performing the covariance operation.
|
then performing the covariance operation.
|
||||||
|
|
||||||
_**Function type:** Aggregate
|
_**Function type:** Transformation_
|
||||||
_**Output data type:** Float_
|
_**Output data type:** Float_
|
||||||
|
|
||||||
```js
|
```js
|
|
@ -4,16 +4,17 @@ description: The `covariance()` function computes the covariance between two col
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/transformations/aggregates/covariance
|
- /v2.0/reference/flux/functions/transformations/aggregates/covariance
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/covariance/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/covariance/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/covariance/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: covariance
|
name: covariance
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
---
|
---
|
||||||
|
|
||||||
The `covariance()` function computes the covariance between two columns.
|
The `covariance()` function computes the covariance between two columns.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
_**Output data type:** Float_
|
_**Output data type:** Float_
|
||||||
|
|
||||||
```js
|
```js
|
|
@ -7,8 +7,10 @@ aliases:
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: derivative
|
name: derivative
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
|
aliases:
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/derivative
|
||||||
related:
|
related:
|
||||||
- /v2.0/query-data/flux/rate/
|
- /v2.0/query-data/flux/rate/
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#derivative, InfluxQL – DERIVATIVE()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#derivative, InfluxQL – DERIVATIVE()
|
||||||
|
@ -18,13 +20,13 @@ The `derivative()` function computes the rate of change per [`unit`](#unit) of t
|
||||||
It assumes rows are ordered by the `_time` column.
|
It assumes rows are ordered by the `_time` column.
|
||||||
The output table schema is the same as the input table.
|
The output table schema is the same as the input table.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
_**Output data type:** Float_
|
_**Output data type:** Float_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
derivative(
|
derivative(
|
||||||
unit: 1s,
|
unit: 1s,
|
||||||
nonNegative: false,
|
nonNegative: true,
|
||||||
columns: ["_value"],
|
columns: ["_value"],
|
||||||
timeSrc: "_time"
|
timeSrc: "_time"
|
||||||
)
|
)
|
||||||
|
@ -39,8 +41,9 @@ Defaults to `1s`.
|
||||||
_**Data type:** Duration_
|
_**Data type:** Duration_
|
||||||
|
|
||||||
### nonNegative
|
### nonNegative
|
||||||
Indicates if the derivative is allowed to be negative.
|
Indicates if the derivative is allowed to be negative. Default is `true`.
|
||||||
When set to `true`, if a value is less than the previous value, it is assumed the previous value should have been a zero.
|
When `true`, if a value is less than the previous value, it is assumed the
|
||||||
|
previous value should have been a zero.
|
||||||
|
|
||||||
_**Data type:** Boolean_
|
_**Data type:** Boolean_
|
||||||
|
|
||||||
|
@ -56,6 +59,9 @@ Defaults to `"_time"`.
|
||||||
|
|
||||||
_**Data type:** String_
|
_**Data type:** String_
|
||||||
|
|
||||||
|
## Output tables
|
||||||
|
For each input table with `n` rows, `derivative()` outputs a table with `n - 1` rows.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
```js
|
```js
|
||||||
from(bucket: "example-bucket")
|
from(bucket: "example-bucket")
|
|
@ -7,8 +7,10 @@ aliases:
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: difference
|
name: difference
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
|
aliases:
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/difference
|
||||||
related:
|
related:
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#difference, InfluxQL – DIFFERENCE()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#difference, InfluxQL – DIFFERENCE()
|
||||||
---
|
---
|
||||||
|
@ -16,7 +18,7 @@ related:
|
||||||
The `difference()` function computes the difference between subsequent records.
|
The `difference()` function computes the difference between subsequent records.
|
||||||
The user-specified columns of numeric type are subtracted while others are kept intact.
|
The user-specified columns of numeric type are subtracted while others are kept intact.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
_**Output data type:** Float_
|
_**Output data type:** Float_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
@ -55,6 +57,8 @@ _**Data type:** Boolean_
|
||||||
- Some value `v` minus `null` is `v` minus the last non-null value seen before `v`;
|
- Some value `v` minus `null` is `v` minus the last non-null value seen before `v`;
|
||||||
or `null` if `v` is the first non-null value seen.
|
or `null` if `v` is the first non-null value seen.
|
||||||
|
|
||||||
|
## Output tables
|
||||||
|
For each input table with `n` rows, `difference()` outputs a table with `n - 1` rows.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
|
@ -6,16 +6,17 @@ description: >
|
||||||
the rate of `exponentialMovingAverage()`.
|
the rate of `exponentialMovingAverage()`.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/doubleema/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/doubleema/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/doubleema/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: doubleEMA
|
name: doubleEMA
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
related:
|
related:
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/movingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/movingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/tripleema/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/tripleema/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/timedmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/timedmovingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/exponentialmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/exponentialmovingaverage/
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#double-exponential-moving-average, InfluxQL DOUBLE_EXPONENTIAL_MOVING_AVERAGE()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#double-exponential-moving-average, InfluxQL DOUBLE_EXPONENTIAL_MOVING_AVERAGE()
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -23,7 +24,7 @@ The `doubleEMA()` function calculates the exponential moving average of values i
|
||||||
the `_value` column grouped into `n` number of points, giving more weight to recent
|
the `_value` column grouped into `n` number of points, giving more weight to recent
|
||||||
data at double the rate of [`exponentialMovingAverage()`](/v2.0/reference/flux/stdlib/built-in/transformations/aggregates/exponentialmovingaverage/).
|
data at double the rate of [`exponentialMovingAverage()`](/v2.0/reference/flux/stdlib/built-in/transformations/aggregates/exponentialmovingaverage/).
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
doubleEMA(n: 5)
|
doubleEMA(n: 5)
|
|
@ -5,16 +5,17 @@ description: >
|
||||||
in the `_value` column grouped into `n` number of points, giving more weight to recent data.
|
in the `_value` column grouped into `n` number of points, giving more weight to recent data.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/exponentialmovingaverage/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/exponentialmovingaverage/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/exponentialmovingaverage/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: exponentialMovingAverage
|
name: exponentialMovingAverage
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
related:
|
related:
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/movingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/movingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/timedmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/timedmovingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/doubleema/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/doubleema/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/tripleema/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/tripleema/
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#exponential-moving-average, InfluxQL EXPONENTIAL_MOVING_AVERAGE()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#exponential-moving-average, InfluxQL EXPONENTIAL_MOVING_AVERAGE()
|
||||||
---
|
---
|
||||||
|
|
|
@ -32,6 +32,19 @@ group(columns: ["_time"], mode:"except")
|
||||||
group()
|
group()
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Group does not guarantee sort order
|
||||||
|
`group()` does not guarantee the sort order of output records.
|
||||||
|
To ensure data is sorted correctly, use [`sort()`](/v2.0/reference/flux/stdlib/built-in/transformations/sort/)
|
||||||
|
after `group()`.
|
||||||
|
|
||||||
|
```js
|
||||||
|
data
|
||||||
|
|> group()
|
||||||
|
|> sort(columns: ["_time"])
|
||||||
|
```
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### columns
|
### columns
|
||||||
|
|
|
@ -5,18 +5,19 @@ description: >
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/transformations/aggregates/holtwinters
|
- /v2.0/reference/flux/functions/transformations/aggregates/holtwinters
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/holtwinters/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/holtwinters/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/holtwinters/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: holtWinters
|
name: holtWinters
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
related:
|
related:
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#holt-winters, InfluxQL HOLT_WINTERS()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#holt-winters, InfluxQL HOLT_WINTERS()
|
||||||
---
|
---
|
||||||
|
|
||||||
The `holtWinters()` function applies the Holt-Winters forecasting method to input tables.
|
The `holtWinters()` function applies the Holt-Winters forecasting method to input tables.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
_**Output data type:** Float_
|
_**Output data type:** Float_
|
||||||
|
|
||||||
```js
|
```js
|
|
@ -6,11 +6,12 @@ description: >
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/transformations/aggregates/increase
|
- /v2.0/reference/flux/functions/transformations/aggregates/increase
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/increase/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/increase/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/increase/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: increase
|
name: increase
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
related:
|
related:
|
||||||
- /v2.0/query-data/flux/increase/
|
- /v2.0/query-data/flux/increase/
|
||||||
---
|
---
|
||||||
|
@ -22,7 +23,7 @@ when they hit a threshold or are reset.
|
||||||
In the case of a wrap/reset, we can assume that the absolute delta between two
|
In the case of a wrap/reset, we can assume that the absolute delta between two
|
||||||
points will be at least their non-negative difference.
|
points will be at least their non-negative difference.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
_**Output data type:** Float_
|
_**Output data type:** Float_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
@ -37,6 +38,9 @@ Defaults to `["_value"]`.
|
||||||
|
|
||||||
_**Data type:** Array of strings_
|
_**Data type:** Array of strings_
|
||||||
|
|
||||||
|
## Output tables
|
||||||
|
For each input table with `n` rows, `derivative()` outputs a table with `n - 1` rows.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
```js
|
```js
|
||||||
from(bucket: "example-bucket")
|
from(bucket: "example-bucket")
|
||||||
|
@ -48,6 +52,8 @@ from(bucket: "example-bucket")
|
||||||
|> increase()
|
|> increase()
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{< flex >}}
|
||||||
|
{{% flex-content %}}
|
||||||
Given the following input table:
|
Given the following input table:
|
||||||
|
|
||||||
| _time | _value |
|
| _time | _value |
|
||||||
|
@ -56,7 +62,8 @@ Given the following input table:
|
||||||
| 00002 | 5 |
|
| 00002 | 5 |
|
||||||
| 00003 | 3 |
|
| 00003 | 3 |
|
||||||
| 00004 | 4 |
|
| 00004 | 4 |
|
||||||
|
{{% /flex-content %}}
|
||||||
|
{{% flex-content %}}
|
||||||
`increase()` produces the following table:
|
`increase()` produces the following table:
|
||||||
|
|
||||||
| _time | _value |
|
| _time | _value |
|
||||||
|
@ -64,6 +71,8 @@ Given the following input table:
|
||||||
| 00002 | 4 |
|
| 00002 | 4 |
|
||||||
| 00003 | 4 |
|
| 00003 | 4 |
|
||||||
| 00004 | 5 |
|
| 00004 | 5 |
|
||||||
|
{{% /flex-content %}}
|
||||||
|
{{< /flex >}}
|
||||||
|
|
||||||
## Function definition
|
## Function definition
|
||||||
```js
|
```js
|
|
@ -5,20 +5,21 @@ description: >
|
||||||
using values in an input table.
|
using values in an input table.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/kaufmansama/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/kaufmansama/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/kaufmansama/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: kaufmansAMA
|
name: kaufmansAMA
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
related:
|
related:
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/kaufmanser/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/kaufmanser/
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#kaufmans-adaptive-moving-average, InfluxQL KAUFMANS_ADAPTIVE_MOVING_AVERAGE()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#kaufmans-adaptive-moving-average, InfluxQL KAUFMANS_ADAPTIVE_MOVING_AVERAGE()
|
||||||
---
|
---
|
||||||
|
|
||||||
The `kaufmansAMA()` function calculates the Kaufman's Adaptive Moving Average (KAMA)
|
The `kaufmansAMA()` function calculates the Kaufman's Adaptive Moving Average (KAMA)
|
||||||
using values in an input table.
|
using values in an input table.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
kaufmansAMA(
|
kaufmansAMA(
|
|
@ -5,13 +5,14 @@ description: >
|
||||||
values in an input table.
|
values in an input table.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/kaufmanser/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/kaufmanser/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/kaufmanser/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: kaufmansER
|
name: kaufmansER
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
related:
|
related:
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/kaufmansama/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/kaufmansama/
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#kaufmans-efficiency-ratio, InfluxQL KAUFMANS_EFFICIENCY_RATIO()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#kaufmans-efficiency-ratio, InfluxQL KAUFMANS_EFFICIENCY_RATIO()
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -19,7 +20,7 @@ The `kaufmansER()` function calculates the Kaufman's Efficiency Ratio (KER) usin
|
||||||
values in an input table.
|
values in an input table.
|
||||||
The function operates on the `_value` column.
|
The function operates on the `_value` column.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
kaufmansER(n: 10)
|
kaufmansER(n: 10)
|
|
@ -4,24 +4,25 @@ description: >
|
||||||
The `movingAverage()` function calculates the mean of values grouped into `n` number of points.
|
The `movingAverage()` function calculates the mean of values grouped into `n` number of points.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/movingaverage/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/movingaverage/
|
||||||
|
- /v2.0/reference/flux/functions/built-in/transformations/movingaverage/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: movingAverage
|
name: movingAverage
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
related:
|
related:
|
||||||
- /v2.0/query-data/flux/moving-average/
|
- /v2.0/query-data/flux/moving-average/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/timedmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/timedmovingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/exponentialmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/exponentialmovingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/doubleema/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/doubleema/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/tripleema/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/tripleema/
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#moving-average, InfluxQL MOVING_AVERAGE()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#moving-average, InfluxQL MOVING_AVERAGE()
|
||||||
---
|
---
|
||||||
|
|
||||||
The `movingAverage()` function calculates the mean of values in the `_values` column
|
The `movingAverage()` function calculates the mean of values in the `_values` column
|
||||||
grouped into `n` number of points.
|
grouped into `n` number of points.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
movingAverage(n: 5)
|
movingAverage(n: 5)
|
|
@ -4,17 +4,18 @@ description: The `pearsonr()` function computes the Pearson R correlation coeffi
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/transformations/aggregates/pearsonr
|
- /v2.0/reference/flux/functions/transformations/aggregates/pearsonr
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/pearsonr/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/pearsonr/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/pearsonr/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: pearsonr
|
name: pearsonr
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
---
|
---
|
||||||
|
|
||||||
The `pearsonr()` function computes the Pearson R correlation coefficient between two streams
|
The `pearsonr()` function computes the Pearson R correlation coefficient between two streams
|
||||||
by first joining the streams, then performing the covariance operation normalized to compute R.
|
by first joining the streams, then performing the covariance operation normalized to compute R.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
_**Output data type:** Float_
|
_**Output data type:** Float_
|
||||||
|
|
||||||
```js
|
```js
|
|
@ -5,22 +5,23 @@ description: >
|
||||||
values in an input table.
|
values in an input table.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/relativestrengthindex/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/relativestrengthindex/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/relativestrengthindex/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: relativeStrengthIndex
|
name: relativeStrengthIndex
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
related:
|
related:
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/movingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/movingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/timedmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/timedmovingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/exponentialmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/exponentialmovingaverage/
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#relative-strength-index, InfluxQL RELATIVE_STRENGTH_INDEX()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#relative-strength-index, InfluxQL RELATIVE_STRENGTH_INDEX()
|
||||||
---
|
---
|
||||||
|
|
||||||
The `relativeStrengthIndex()` function measures the relative speed and change of
|
The `relativeStrengthIndex()` function measures the relative speed and change of
|
||||||
values in an input table.
|
values in an input table.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
relativeStrengthIndex(
|
relativeStrengthIndex(
|
||||||
|
@ -50,6 +51,10 @@ Columns to operate on. _Defaults to `["_value"]`_.
|
||||||
|
|
||||||
_**Data type:** Array of Strings_
|
_**Data type:** Array of Strings_
|
||||||
|
|
||||||
|
## Output tables
|
||||||
|
For each input table with `x` rows, `relativeStrengthIndex()` outputs a table
|
||||||
|
with `x - n` rows.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
#### Calculate a five point relative strength index
|
#### Calculate a five point relative strength index
|
||||||
|
@ -61,6 +66,8 @@ from(bucket: "example-bucket"):
|
||||||
|
|
||||||
#### Table transformation with a ten point RSI
|
#### Table transformation with a ten point RSI
|
||||||
|
|
||||||
|
{{< flex >}}
|
||||||
|
{{% flex-content %}}
|
||||||
###### Input table:
|
###### Input table:
|
||||||
| _time | A | B | tag |
|
| _time | A | B | tag |
|
||||||
|:-----:|:----:|:----:|:---:|
|
|:-----:|:----:|:----:|:---:|
|
||||||
|
@ -82,7 +89,8 @@ from(bucket: "example-bucket"):
|
||||||
| 0016 | 16 | 16 | tv |
|
| 0016 | 16 | 16 | tv |
|
||||||
| 0017 | 17 | null | tv |
|
| 0017 | 17 | null | tv |
|
||||||
| 0018 | 18 | 17 | tv |
|
| 0018 | 18 | 17 | tv |
|
||||||
|
{{% /flex-content %}}
|
||||||
|
{{% flex-content %}}
|
||||||
###### Query:
|
###### Query:
|
||||||
```js
|
```js
|
||||||
// ...
|
// ...
|
||||||
|
@ -103,3 +111,5 @@ from(bucket: "example-bucket"):
|
||||||
| 0016 | 90 | 90 | tv |
|
| 0016 | 90 | 90 | tv |
|
||||||
| 0017 | 81 | 90 | tv |
|
| 0017 | 81 | 90 | tv |
|
||||||
| 0018 | 72.9 | 81 | tv |
|
| 0018 | 72.9 | 81 | tv |
|
||||||
|
{{% flex-content %}}
|
||||||
|
{{< /flex >}}
|
|
@ -22,6 +22,11 @@ _**Output data type:** Object_
|
||||||
bottom(n:10, columns: ["_value"])
|
bottom(n:10, columns: ["_value"])
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`bottom()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### n
|
### n
|
||||||
|
|
|
@ -24,6 +24,11 @@ _**Output data type:** Object_
|
||||||
distinct(column: "host")
|
distinct(column: "host")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`distinct()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### column
|
### column
|
||||||
|
|
|
@ -23,6 +23,11 @@ _**Output data type:** Object_
|
||||||
first()
|
first()
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`first()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
```js
|
```js
|
||||||
from(bucket:"example-bucket")
|
from(bucket:"example-bucket")
|
||||||
|
|
|
@ -24,6 +24,11 @@ highestAverage(
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`highestAverage()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### n
|
### n
|
||||||
|
|
|
@ -24,6 +24,11 @@ highestCurrent(
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`highestCurrent()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### n
|
### n
|
||||||
|
|
|
@ -24,6 +24,11 @@ highestMax(
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`highestMax()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### n
|
### n
|
||||||
|
|
|
@ -23,6 +23,11 @@ _**Output data type:** Object_
|
||||||
last()
|
last()
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`last()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
```js
|
```js
|
||||||
from(bucket:"example-bucket")
|
from(bucket:"example-bucket")
|
||||||
|
|
|
@ -24,6 +24,11 @@ lowestAverage(
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`lowestAverage()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### n
|
### n
|
||||||
|
|
|
@ -24,6 +24,11 @@ lowestCurrent(
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`lowestCurrent()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### n
|
### n
|
||||||
|
|
|
@ -24,6 +24,11 @@ lowestMin(
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`lowestMin()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### n
|
### n
|
||||||
|
|
|
@ -22,6 +22,11 @@ _**Output data type:** Object_
|
||||||
max(column: "_value")
|
max(column: "_value")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`max()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### column
|
### column
|
||||||
|
|
|
@ -22,6 +22,11 @@ _**Output data type:** Object_
|
||||||
min(column: "_value")
|
min(column: "_value")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`min()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### column
|
### column
|
||||||
|
|
|
@ -22,6 +22,11 @@ _**Output data type:** Object_
|
||||||
sample(n:5, pos: -1)
|
sample(n:5, pos: -1)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`sample()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### n
|
### n
|
||||||
|
|
|
@ -20,6 +20,11 @@ _**Output data type:** Object_
|
||||||
top(n:10, columns: ["_value"])
|
top(n:10, columns: ["_value"])
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`top()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### n
|
### n
|
||||||
|
|
|
@ -21,6 +21,11 @@ _**Output data type:** Object_
|
||||||
unique(column: "_value")
|
unique(column: "_value")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
#### Empty tables
|
||||||
|
`unique()` drops empty tables.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
## Parameters
|
## Parameters
|
||||||
|
|
||||||
### column
|
### column
|
||||||
|
|
|
@ -5,23 +5,24 @@ description: >
|
||||||
range at a specified frequency.
|
range at a specified frequency.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/timedmovingaverage/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/timedmovingaverage/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/timedmovingaverage/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: timedMovingAverage
|
name: timedMovingAverage
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
related:
|
related:
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/movingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/movingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/exponentialmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/exponentialmovingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/doubleema/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/doubleema/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/tripleema/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/tripleema/
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#moving-average, InfluxQL MOVING_AVERAGE()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#moving-average, InfluxQL MOVING_AVERAGE()
|
||||||
---
|
---
|
||||||
|
|
||||||
The `timedMovingAverage()` function calculates the mean of values in a defined time
|
The `timedMovingAverage()` function calculates the mean of values in a defined time
|
||||||
range at a specified frequency.
|
range at a specified frequency.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
timedMovingAverage(
|
timedMovingAverage(
|
|
@ -6,16 +6,17 @@ description: >
|
||||||
than `exponentialMovingAverage()` and `doubleEMA()`.
|
than `exponentialMovingAverage()` and `doubleEMA()`.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/tripleema/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/tripleema/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/tripleema/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: tripleEMA
|
name: tripleEMA
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
related:
|
related:
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/movingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/movingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/doubleema/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/doubleema/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/timedmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/timedmovingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/exponentialmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/exponentialmovingaverage/
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#triple-exponential-moving-average, InfluxQL TRIPLE_EXPONENTIAL_MOVING_AVERAGE()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#triple-exponential-moving-average, InfluxQL TRIPLE_EXPONENTIAL_MOVING_AVERAGE()
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -25,7 +26,7 @@ data with less lag than
|
||||||
[`exponentialMovingAverage()`](/v2.0/reference/flux/stdlib/built-in/transformations/aggregates/exponentialmovingaverage/)
|
[`exponentialMovingAverage()`](/v2.0/reference/flux/stdlib/built-in/transformations/aggregates/exponentialmovingaverage/)
|
||||||
and [`doubleEMA()`](/v2.0/reference/flux/stdlib/built-in/transformations/aggregates/doubleema/).
|
and [`doubleEMA()`](/v2.0/reference/flux/stdlib/built-in/transformations/aggregates/doubleema/).
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
tripleEMA(n: 5)
|
tripleEMA(n: 5)
|
|
@ -5,18 +5,19 @@ description: >
|
||||||
derivative (TRIX) of input tables using `n` points.
|
derivative (TRIX) of input tables using `n` points.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/tripleexponentialderivative/
|
- /v2.0/reference/flux/functions/built-in/transformations/aggregates/tripleexponentialderivative/
|
||||||
|
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/tripleexponentialderivative/
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: tripleExponentialDerivative
|
name: tripleExponentialDerivative
|
||||||
parent: built-in-aggregates
|
parent: built-in-transformations
|
||||||
weight: 501
|
weight: 402
|
||||||
v2.0/tags: [technical analysis]
|
v2.0/tags: [technical analysis]
|
||||||
related:
|
related:
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/movingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/movingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/doubleema/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/doubleema/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/tripleema/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/tripleema/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/timedmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/timedmovingaverage/
|
||||||
- /v2.0/reference/flux/stdlib/built-in/transformations/aggregates/exponentialmovingaverage/
|
- /v2.0/reference/flux/stdlib/built-in/transformations/exponentialmovingaverage/
|
||||||
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#triple-exponential-derivative, InfluxQL TRIPLE_EXPONENTIAL_DERIVATIVE()
|
- https://docs.influxdata.com/influxdb/latest/query_language/functions/#triple-exponential-derivative, InfluxQL TRIPLE_EXPONENTIAL_DERIVATIVE()
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -24,7 +25,7 @@ The `tripleExponentialDerivative()` function calculates a triple exponential
|
||||||
derivative ([TRIX](https://en.wikipedia.org/wiki/Trix_(technical_analysis))) of
|
derivative ([TRIX](https://en.wikipedia.org/wiki/Trix_(technical_analysis))) of
|
||||||
input tables using `n` points.
|
input tables using `n` points.
|
||||||
|
|
||||||
_**Function type:** Aggregate_
|
_**Function type:** Transformation_
|
||||||
|
|
||||||
```js
|
```js
|
||||||
tripleExponentialDerivative(n: 5)
|
tripleExponentialDerivative(n: 5)
|
|
@ -5,7 +5,7 @@ description: >
|
||||||
User-contributed packages and functions are contributed and maintained by members of the InfluxDB and Flux communities.
|
User-contributed packages and functions are contributed and maintained by members of the InfluxDB and Flux communities.
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: User-contributed
|
name: Contributed
|
||||||
parent: Flux standard library
|
parent: Flux standard library
|
||||||
weight: 202
|
weight: 202
|
||||||
v2.0/tags: [contributed, functions, package]
|
v2.0/tags: [contributed, functions, package]
|
||||||
|
|
|
@ -7,7 +7,7 @@ description: >
|
||||||
menu:
|
menu:
|
||||||
v2_0_ref:
|
v2_0_ref:
|
||||||
name: Discord
|
name: Discord
|
||||||
parent: User-contributed
|
parent: Contributed
|
||||||
weight: 202
|
weight: 202
|
||||||
v2.0/tags: [functions, discord, package]
|
v2.0/tags: [functions, discord, package]
|
||||||
---
|
---
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
title: Flux Microsoft Teams package
|
||||||
|
list_title: Microsoft Teams package
|
||||||
|
description: >
|
||||||
|
The Flux Microsoft Teams package provides functions for sending messages to a
|
||||||
|
[Microsoft Teams](https://www.microsoft.com/microsoft-365/microsoft-teams/group-chat-software)
|
||||||
|
channel using an [incoming webhook](https://docs.microsoft.com/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook).
|
||||||
|
Import the `contrib/sranka/teams` package.
|
||||||
|
menu:
|
||||||
|
v2_0_ref:
|
||||||
|
name: Teams
|
||||||
|
parent: Contributed
|
||||||
|
weight: 202
|
||||||
|
v2.0/tags: [functions, teams, microsoft, package]
|
||||||
|
---
|
||||||
|
|
||||||
|
The Flux Microsoft Teams package provides functions for sending messages to a
|
||||||
|
[Microsoft Teams](https://www.microsoft.com/microsoft-365/microsoft-teams/group-chat-software)
|
||||||
|
channel using an [incoming webhook](https://docs.microsoft.com/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook).
|
||||||
|
Import the `contrib/sranka/teams` package:
|
||||||
|
|
||||||
|
```js
|
||||||
|
import "contrib/sranka/teams"
|
||||||
|
```
|
||||||
|
|
||||||
|
{{< children type="functions" show="pages" >}}
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
#### Package author and maintainer
|
||||||
|
**Github:** [@sranka](https://github.com/sranka)
|
||||||
|
**InfluxDB Slack:** [@sranka](https://influxdata.com/slack)
|
||||||
|
{{% /note %}}
|
|
@ -0,0 +1,78 @@
|
||||||
|
---
|
||||||
|
title: teams.endpoint() function
|
||||||
|
description: >
|
||||||
|
The `teams.endpoint()` function sends a message to a Microsoft Teams channel
|
||||||
|
using data from table rows.
|
||||||
|
menu:
|
||||||
|
v2_0_ref:
|
||||||
|
name: teams.endpoint
|
||||||
|
parent: Teams
|
||||||
|
weight: 202
|
||||||
|
---
|
||||||
|
|
||||||
|
The `teams.endpoint()` function sends a message to a Microsoft Teams channel
|
||||||
|
using data from table rows.
|
||||||
|
|
||||||
|
_**Function type:** Output_
|
||||||
|
|
||||||
|
```js
|
||||||
|
import "contrib/sranka/teams"
|
||||||
|
|
||||||
|
teams.endpoint(
|
||||||
|
url: "https://outlook.office.com/webhook/example-webhook"
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
### url
|
||||||
|
Incoming webhook URL.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
`teams.endpoint` is a factory function that outputs another function.
|
||||||
|
The output function requires a `mapFn` parameter.
|
||||||
|
|
||||||
|
### mapFn
|
||||||
|
A function that builds the object used to generate the POST request.
|
||||||
|
Requires an `r` parameter.
|
||||||
|
|
||||||
|
_**Data type:** Function_
|
||||||
|
|
||||||
|
`mapFn` accepts a table row (`r`) and returns an object that must include the
|
||||||
|
following fields:
|
||||||
|
|
||||||
|
- `title`
|
||||||
|
- `text`
|
||||||
|
- `summary`
|
||||||
|
|
||||||
|
_For more information, see [`teams.message()`](/v2.0/reference/flux/stdlib/contrib/teams/message/)._
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Send critical statuses to a Microsoft Teams channel
|
||||||
|
```js
|
||||||
|
import "contrib/sranka/teams"
|
||||||
|
|
||||||
|
url = "https://outlook.office.com/webhook/example-webhook"
|
||||||
|
endpoint = teams.endpoint(url: url)
|
||||||
|
|
||||||
|
crit_statuses = from(bucket: "example-bucket")
|
||||||
|
|> range(start: -1m)
|
||||||
|
|> filter(fn: (r) => r._measurement == "statuses" and status == "crit")
|
||||||
|
|
||||||
|
crit_statuses
|
||||||
|
|> endpoint(mapFn: (r) => ({
|
||||||
|
title: "Disk Usage"
|
||||||
|
text: "Disk usage is: **${r.status}**.",
|
||||||
|
summary: "Disk usage is ${r.status}"
|
||||||
|
})
|
||||||
|
)()
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
#### Package author and maintainer
|
||||||
|
**Github:** [@sranka](https://github.com/sranka)
|
||||||
|
**InfluxDB Slack:** [@sranka](https://influxdata.com/slack)
|
||||||
|
{{% /note %}}
|
|
@ -0,0 +1,78 @@
|
||||||
|
---
|
||||||
|
title: teams.message() function
|
||||||
|
description: >
|
||||||
|
The `teams.message()` function sends a single message to a Microsoft Teams channel using
|
||||||
|
an [incoming webhook](https://docs.microsoft.com/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook).
|
||||||
|
menu:
|
||||||
|
v2_0_ref:
|
||||||
|
name: teams.message
|
||||||
|
parent: Teams
|
||||||
|
weight: 202
|
||||||
|
---
|
||||||
|
|
||||||
|
The `teams.message()` function sends a single message to a Microsoft Teams channel using
|
||||||
|
an [incoming webhook](https://docs.microsoft.com/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook).
|
||||||
|
|
||||||
|
_**Function type:** Output_
|
||||||
|
|
||||||
|
```js
|
||||||
|
import "contrib/sranka/teams"
|
||||||
|
|
||||||
|
teams.message(
|
||||||
|
url: "https://outlook.office.com/webhook/example-webhook",
|
||||||
|
title: "Example message title",
|
||||||
|
text: "Example message text",
|
||||||
|
summary: "",
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
### url
|
||||||
|
Incoming webhook URL.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
### title
|
||||||
|
Message card title.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
### text
|
||||||
|
Message card text.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
### summary
|
||||||
|
Message card summary.
|
||||||
|
Default is `""`.
|
||||||
|
If no summary is provided, Flux generates the summary from the message text.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Send the last reported status to a Microsoft Teams channel
|
||||||
|
```js
|
||||||
|
import "contrib/sranka/teams"
|
||||||
|
|
||||||
|
lastReported =
|
||||||
|
from(bucket: "example-bucket")
|
||||||
|
|> range(start: -1m)
|
||||||
|
|> filter(fn: (r) => r._measurement == "statuses")
|
||||||
|
|> last()
|
||||||
|
|> findRecord(fn: (key) => true, idx: 0)
|
||||||
|
|
||||||
|
teams.message(
|
||||||
|
url: "https://outlook.office.com/webhook/example-webhook",
|
||||||
|
title: "Disk Usage"
|
||||||
|
text: "Disk usage is: *${lastReported.status}*.",
|
||||||
|
summary: "Disk usage is ${lastReported.status}"
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
#### Package author and maintainer
|
||||||
|
**Github:** [@sranka](https://github.com/sranka)
|
||||||
|
**InfluxDB Slack:** [@sranka](https://influxdata.com/slack)
|
||||||
|
{{% /note %}}
|
|
@ -0,0 +1,50 @@
|
||||||
|
---
|
||||||
|
title: Flux Telegram package
|
||||||
|
list_title: Telegram package
|
||||||
|
description: >
|
||||||
|
The Flux Telegram package provides functions for sending messages to
|
||||||
|
[Telegram](https://telegram.org/) using the [Telegram Bot API](https://core.telegram.org/bots/api).
|
||||||
|
Import the `contrib/sranka/telegram` package.
|
||||||
|
menu:
|
||||||
|
v2_0_ref:
|
||||||
|
name: Telegram
|
||||||
|
parent: Contributed
|
||||||
|
weight: 202
|
||||||
|
v2.0/tags: [functions, teams, microsoft, package]
|
||||||
|
---
|
||||||
|
|
||||||
|
The Flux Telegram package provides functions for sending messages to
|
||||||
|
[Telegram](https://telegram.org/) using the [Telegram Bot API](https://core.telegram.org/bots/api).
|
||||||
|
Import the `contrib/sranka/telegram` package:
|
||||||
|
|
||||||
|
```js
|
||||||
|
import "contrib/sranka/telegram"
|
||||||
|
```
|
||||||
|
|
||||||
|
{{< children type="functions" show="pages" >}}
|
||||||
|
|
||||||
|
## Set up a Telegram bot
|
||||||
|
The **Telegram Bot API** requires a **bot token** and a **channel ID**.
|
||||||
|
To set up a Telegram bot and obtain the required bot token and channel ID:
|
||||||
|
|
||||||
|
1. [Create a new Telegram account](https://telegram.org/) or use an existing account.
|
||||||
|
2. [Create a Telegram bot](https://core.telegram.org/bots#creating-a-new-bot).
|
||||||
|
Telegram provides a **bot token** for the newly created bot.
|
||||||
|
3. Use the **Telegram application** to create a new channel.
|
||||||
|
4. [Add the new bot to the channel](https://stackoverflow.com/questions/33126743/how-do-i-add-my-bot-to-a-channel) as an **Administrator**.
|
||||||
|
Ensure the bot has permissions necessary to **post messages**.
|
||||||
|
5. Send a message to bot in the channel.
|
||||||
|
6. Send a request to `https://api.telegram.org/bot$token/getUpdates`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
curl https://api.telegram.org/bot$token/getUpdates
|
||||||
|
```
|
||||||
|
|
||||||
|
Find your **channel ID** in the `id` field of the response.
|
||||||
|
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
#### Package author and maintainer
|
||||||
|
**Github:** [@sranka](https://github.com/sranka)
|
||||||
|
**InfluxDB Slack:** [@sranka](https://influxdata.com/slack)
|
||||||
|
{{% /note %}}
|
|
@ -0,0 +1,106 @@
|
||||||
|
---
|
||||||
|
title: telegram.endpoint() function
|
||||||
|
description: >
|
||||||
|
The `telegram.endpoint()` function sends a message to a Telegram channel
|
||||||
|
using data from table rows.
|
||||||
|
menu:
|
||||||
|
v2_0_ref:
|
||||||
|
name: telegram.endpoint
|
||||||
|
parent: Telegram
|
||||||
|
weight: 202
|
||||||
|
---
|
||||||
|
|
||||||
|
The `telegram.endpoint()` function sends a message to a Telegram channel
|
||||||
|
using data from table rows.
|
||||||
|
|
||||||
|
_**Function type:** Output_
|
||||||
|
|
||||||
|
```js
|
||||||
|
import "contrib/sranka/telegram"
|
||||||
|
|
||||||
|
telegram.endpoint(
|
||||||
|
url: "https://api.telegram.org/bot",
|
||||||
|
token: "S3crEtTel3gRamT0k3n",
|
||||||
|
parseMode: "MarkdownV2",
|
||||||
|
disableWebPagePreview: false,
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
For information about retrieving your Telegram **bot token** and **channel ID**,
|
||||||
|
see [Set up a Telegram bot](/v2.0/reference/flux/stdlib/contrib/telegram/#set-up-a-telegram-bot).
|
||||||
|
{{% /note %}}
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
### url
|
||||||
|
URL of the Telegram bot endpoint.
|
||||||
|
Default is `https://api.telegram.org/bot`.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
### token
|
||||||
|
<span class="req">Required</span>
|
||||||
|
Telegram bot token.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
### parseMode
|
||||||
|
[Parse mode](https://core.telegram.org/bots/api#formatting-options) of the message text.
|
||||||
|
Default is `"MarkdownV2"`.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
### disableWebPagePreview
|
||||||
|
Disable preview of web links in the sent message.
|
||||||
|
Default is `false`.
|
||||||
|
|
||||||
|
_**Data type:** Boolean_
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
`telegram.endpoint` is a factory function that outputs another function.
|
||||||
|
The output function requires a `mapFn` parameter.
|
||||||
|
|
||||||
|
### mapFn
|
||||||
|
A function that builds the object used to generate the POST request.
|
||||||
|
Requires an `r` parameter.
|
||||||
|
|
||||||
|
_**Data type:** Function_
|
||||||
|
|
||||||
|
`mapFn` accepts a table row (`r`) and returns an object that must include the
|
||||||
|
following fields:
|
||||||
|
|
||||||
|
- `channel`
|
||||||
|
- `text`
|
||||||
|
- `silent`
|
||||||
|
|
||||||
|
_For more information, see [`telegram.message()`](/v2.0/reference/flux/stdlib/contrib/telegram/message/)._
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Send critical statuses to a Telegram channel
|
||||||
|
```js
|
||||||
|
import "influxdata/influxdb/secrets"
|
||||||
|
import "contrib/sranka/telegram"
|
||||||
|
|
||||||
|
token = secrets.get(key: "TELEGRAM_TOKEN")
|
||||||
|
endpoint = telegram.endpoint(token: token)
|
||||||
|
|
||||||
|
crit_statuses = from(bucket: "example-bucket")
|
||||||
|
|> range(start: -1m)
|
||||||
|
|> filter(fn: (r) => r._measurement == "statuses" and status == "crit")
|
||||||
|
|
||||||
|
crit_statuses
|
||||||
|
|> endpoint(mapFn: (r) => ({
|
||||||
|
channel: "-12345",
|
||||||
|
text: "Disk usage is **${r.status}**.",
|
||||||
|
silent: true
|
||||||
|
})
|
||||||
|
)()
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
#### Package author and maintainer
|
||||||
|
**Github:** [@sranka](https://github.com/sranka)
|
||||||
|
**InfluxDB Slack:** [@sranka](https://influxdata.com/slack)
|
||||||
|
{{% /note %}}
|
|
@ -0,0 +1,107 @@
|
||||||
|
---
|
||||||
|
title: telegram.message() function
|
||||||
|
description: >
|
||||||
|
The `telegram.message()` function sends a single message to a Telegram channel using
|
||||||
|
the [`sendMessage` method of the Telegram Bot API](https://core.telegram.org/bots/api#sendmessage).
|
||||||
|
menu:
|
||||||
|
v2_0_ref:
|
||||||
|
name: telegram.message
|
||||||
|
parent: Telegram
|
||||||
|
weight: 202
|
||||||
|
---
|
||||||
|
|
||||||
|
The `telegram.message()` function sends a single message to a Telegram channel using
|
||||||
|
the [`sendMessage` method of the Telegram Bot API](https://core.telegram.org/bots/api#sendmessage).
|
||||||
|
|
||||||
|
_**Function type:** Output_
|
||||||
|
|
||||||
|
```js
|
||||||
|
import "contrib/sranka/telegram"
|
||||||
|
|
||||||
|
telegram.message(
|
||||||
|
url: "https://api.telegram.org/bot",
|
||||||
|
token: "S3crEtTel3gRamT0k3n",
|
||||||
|
channel: "-12345",
|
||||||
|
text: "Example message text",
|
||||||
|
parseMode: "MarkdownV2",
|
||||||
|
disableWebPagePreview: false,
|
||||||
|
silent: true
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
For information about retrieving your Telegram **bot token** and **channel ID**,
|
||||||
|
see [Set up a Telegram bot](/v2.0/reference/flux/stdlib/contrib/telegram/#set-up-a-telegram-bot).
|
||||||
|
{{% /note %}}
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
### url
|
||||||
|
URL of the Telegram bot endpoint.
|
||||||
|
Default is `https://api.telegram.org/bot`.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
### token
|
||||||
|
<span class="req">Required</span>
|
||||||
|
Telegram bot token.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
### channel
|
||||||
|
<span class="req">Required</span>
|
||||||
|
Telegram channel ID.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
### text
|
||||||
|
Message text.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
### parseMode
|
||||||
|
[Parse mode](https://core.telegram.org/bots/api#formatting-options) of the message text.
|
||||||
|
Default is `"MarkdownV2"`.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
### disableWebPagePreview
|
||||||
|
Disable preview of web links in the sent message.
|
||||||
|
Default is `false`.
|
||||||
|
|
||||||
|
_**Data type:** Boolean_
|
||||||
|
|
||||||
|
### silent
|
||||||
|
Send message [silently](https://telegram.org/blog/channels-2-0#silent-messages).
|
||||||
|
Default is `true`.
|
||||||
|
|
||||||
|
_**Data type:** Boolean_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Send the last reported status to a Microsoft Teams channel
|
||||||
|
```js
|
||||||
|
import "influxdata/influxdb/secrets"
|
||||||
|
import "contrib/sranka/telegram"
|
||||||
|
|
||||||
|
token = secrets.get(key: "TELEGRAM_TOKEN")
|
||||||
|
|
||||||
|
lastReported =
|
||||||
|
from(bucket: "example-bucket")
|
||||||
|
|> range(start: -1m)
|
||||||
|
|> filter(fn: (r) => r._measurement == "statuses")
|
||||||
|
|> last()
|
||||||
|
|> findRecord(fn: (key) => true, idx: 0)
|
||||||
|
|
||||||
|
telegram.message(
|
||||||
|
token: token,
|
||||||
|
channel: "-12345"
|
||||||
|
text: "Disk usage is **${lastReported.status}**.",
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
#### Package author and maintainer
|
||||||
|
**Github:** [@sranka](https://github.com/sranka)
|
||||||
|
**InfluxDB Slack:** [@sranka](https://influxdata.com/slack)
|
||||||
|
{{% /note %}}
|
|
@ -29,5 +29,39 @@ date.hour(t: 2019-07-17T12:05:21.012Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the hour of a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.hour(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 12
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the hour of a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.hour(t: -8h)
|
||||||
|
|
||||||
|
// Returns 4
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the hour of a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.hour(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 12
|
||||||
|
```
|
||||||
|
|
|
@ -29,5 +29,39 @@ date.microsecond(t: 2019-07-17T12:05:21.012934584Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the microsecond of a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.microsecond(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 293534
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the microsecond of a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.microsecond(t: -1890us)
|
||||||
|
|
||||||
|
// Returns 291644
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the microsecond of a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.microsecond(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 293534
|
||||||
|
```
|
||||||
|
|
|
@ -29,5 +29,39 @@ date.millisecond(t: 2019-07-17T12:05:21.012934584Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the millisecond of a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.millisecond(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 293
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the millisecond of a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.millisecond(t: -150ms)
|
||||||
|
|
||||||
|
// Returns 143
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the millisecond of a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.millisecond(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 293
|
||||||
|
```
|
||||||
|
|
|
@ -29,5 +29,39 @@ date.minute(t: 2019-07-17T12:05:21.012Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the minute of a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.minute(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 21
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the minute of a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.minute(t: -45m)
|
||||||
|
|
||||||
|
// Returns 36
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the minute of a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.minute(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 21
|
||||||
|
```
|
||||||
|
|
|
@ -29,5 +29,39 @@ date.month(t: 2019-07-17T12:05:21.012Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the month of a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.month(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 2
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the month of a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.month(t: -3mo)
|
||||||
|
|
||||||
|
// Returns 11
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the month of a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.month(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 2
|
||||||
|
```
|
||||||
|
|
|
@ -29,5 +29,39 @@ date.monthDay(t: 2019-07-17T12:05:21.012Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the day of the month for a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.monthDay(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 11
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the day of the month for a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.monthDay(t: -8d)
|
||||||
|
|
||||||
|
// Returns 3
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the day of the month for a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.monthDay(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 11
|
||||||
|
```
|
||||||
|
|
|
@ -29,5 +29,39 @@ date.nanosecond(t: 2019-07-17T12:05:21.012934584Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the nanosecond for a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.nanosecond(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 293534940Z
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the nanosecond for a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.nanosecond(t: -2111984ns)
|
||||||
|
|
||||||
|
// Returns 291422956
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the nanosecond for a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.nanosecond(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 293534940Z
|
||||||
|
```
|
||||||
|
|
|
@ -29,5 +29,39 @@ date.quarter(t: 2019-07-17T12:05:21.012Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the quarter for a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.quarter(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 1
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the quarter for a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.quarter(t: -7mo)
|
||||||
|
|
||||||
|
// Returns 3
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the quarter for a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.quarter(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 1
|
||||||
|
```
|
||||||
|
|
|
@ -29,5 +29,39 @@ date.second(t: 2019-07-17T12:05:21.012Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the second of a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.second(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 3
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the second of a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.second(t: -50s)
|
||||||
|
|
||||||
|
// Returns 13
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the second of a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.second(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 3
|
||||||
|
```
|
||||||
|
|
|
@ -30,8 +30,11 @@ date.truncate(
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
### unit
|
### unit
|
||||||
The unit of time to truncate to.
|
The unit of time to truncate to.
|
||||||
|
@ -44,16 +47,47 @@ For example: `1s`, `1m`, `1h`.
|
||||||
{{% /note %}}
|
{{% /note %}}
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
##### Truncate time values
|
||||||
```js
|
```js
|
||||||
import "date"
|
import "date"
|
||||||
|
|
||||||
date.truncate(t: "2019-06-03T13:59:01.000000000Z", unit: 1s)
|
date.truncate(t: 2019-06-03T13:59:01.000000000Z, unit: 1s)
|
||||||
// Returns 2019-06-03T13:59:01.000000000Z
|
// Returns 2019-06-03T13:59:01.000000000Z
|
||||||
|
|
||||||
date.truncate(t: "2019-06-03T13:59:01.000000000Z", unit: 1m)
|
date.truncate(t: 2019-06-03T13:59:01.000000000Z, unit: 1m)
|
||||||
// Returns 2019-06-03T13:59:00.000000000Z
|
// Returns 2019-06-03T13:59:00.000000000Z
|
||||||
|
|
||||||
date.truncate(t: "2019-06-03T13:59:01.000000000Z", unit: 1h)
|
date.truncate(t: 2019-06-03T13:59:01.000000000Z, unit: 1h)
|
||||||
|
// Returns 2019-06-03T13:00:00.000000000Z
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Truncate time values using durations
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-01-01T00:00:30.500000000Z
|
||||||
|
|
||||||
|
date.truncate(t: -30s, unit: 1s)
|
||||||
|
// Returns 2019-12-31T23:59:30.000000000Z
|
||||||
|
|
||||||
|
date.truncate(t: -1m, unit: 1m)
|
||||||
|
// Returns 2019-12-31T23:59:00.000000000Z
|
||||||
|
|
||||||
|
date.truncate(t: -1h, unit: 1h)
|
||||||
|
// Returns 2019-12-31T23:00:00.000000000Z
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Truncate time values using nanosecond Unix timestamps
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.truncate(t: 1559570341000000000, unit: 1s)
|
||||||
|
// Returns 2019-06-03T13:59:01.000000000Z
|
||||||
|
|
||||||
|
date.truncate(t: 1559570341000000000, unit: 1m)
|
||||||
|
// Returns 2019-06-03T13:59:00.000000000Z
|
||||||
|
|
||||||
|
date.truncate(t: 1559570341000000000, unit: 1h)
|
||||||
// Returns 2019-06-03T13:00:00.000000000Z
|
// Returns 2019-06-03T13:00:00.000000000Z
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -29,5 +29,39 @@ date.week(t: 2019-07-17T12:05:21.012Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the week of the year
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.week(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 7
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the week of the year using a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.week(t: -12d)
|
||||||
|
|
||||||
|
// Returns 5
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the week of the year using a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.week(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 7
|
||||||
|
```
|
||||||
|
|
|
@ -29,5 +29,39 @@ date.weekDay(t: 2019-07-17T12:05:21.012Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the day of the week for a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.weekDay(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 2
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the day of the week for a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.weekDay(t: -84h)
|
||||||
|
|
||||||
|
// Returns 6
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the day of the week for a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.weekDay(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 2
|
||||||
|
```
|
||||||
|
|
|
@ -27,5 +27,39 @@ date.year(t: 2019-07-17T12:05:21.012Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the year for a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.year(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 2020
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the year for a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.year(t: -14y)
|
||||||
|
|
||||||
|
// Returns 2006
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the year for a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.year(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 2020
|
||||||
|
```
|
||||||
|
|
|
@ -29,5 +29,39 @@ date.yearDay(t: 2019-07-17T12:05:21.012Z)
|
||||||
|
|
||||||
### t
|
### t
|
||||||
The time to operate on.
|
The time to operate on.
|
||||||
|
Use an absolute time, relative duration, or integer.
|
||||||
|
Durations are relative to `now()`.
|
||||||
|
Integers are **nanosecond** [Unix timestamps](/v2.0/reference/glossary/#unix-timestamp).
|
||||||
|
|
||||||
_**Data type:** Time_
|
_**Data type:** Time | Duration | Integer_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### Return the day of the year for a time value
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.yearDay(t: 2020-02-11T12:21:03.293534940Z)
|
||||||
|
|
||||||
|
// Returns 42
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the day of the year for a relative duration
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
option now = () => 2020-02-11T12:21:03.293534940Z
|
||||||
|
|
||||||
|
date.yearDay(t: -1mo)
|
||||||
|
|
||||||
|
// Returns 11
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Return the day of the year for a nanosecond Unix timestamp
|
||||||
|
```js
|
||||||
|
import "date"
|
||||||
|
|
||||||
|
date.yearDay(t: 1581423663293534940)
|
||||||
|
|
||||||
|
// Returns 42
|
||||||
|
```
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
---
|
||||||
|
title: http.pathEscape() function
|
||||||
|
description: >
|
||||||
|
The `http.pathEscape()` function escapes special characters in a string (including `/`)
|
||||||
|
and replaces non-ASCII characters with hexadecimal representations (`%XX`).
|
||||||
|
menu:
|
||||||
|
v2_0_ref:
|
||||||
|
name: http.pathEscape
|
||||||
|
parent: HTTP
|
||||||
|
weight: 202
|
||||||
|
---
|
||||||
|
|
||||||
|
The `http.pathEscape()` function escapes special characters in a string (including `/`)
|
||||||
|
and replaces non-ASCII characters with hexadecimal representations (`%XX`).
|
||||||
|
|
||||||
|
_**Function type:** Transformation_
|
||||||
|
|
||||||
|
```js
|
||||||
|
import "http"
|
||||||
|
|
||||||
|
http.pathEscape(
|
||||||
|
inputString: "/this/is/an/example-path.html"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Returns %2Fthis%2Fis%2Fan%2Fexample-path.html
|
||||||
|
```
|
||||||
|
|
||||||
|
## Parameters
|
||||||
|
|
||||||
|
### inputString
|
||||||
|
The string to escape.
|
||||||
|
|
||||||
|
_**Data type:** String_
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### URL-encode strings in a stream of tables
|
||||||
|
```js
|
||||||
|
import "http"
|
||||||
|
|
||||||
|
data
|
||||||
|
|> map(fn: (r) => ({ r with
|
||||||
|
path: http.pathEscape(inputString: r.path)
|
||||||
|
}))
|
||||||
|
```
|
|
@ -3,7 +3,7 @@ title: Flux SQL package
|
||||||
list_title: SQL package
|
list_title: SQL package
|
||||||
description: >
|
description: >
|
||||||
The Flux SQL package provides tools for working with data in SQL databases such
|
The Flux SQL package provides tools for working with data in SQL databases such
|
||||||
as MySQL, PostgreSQL, and SQLite.
|
as MySQL, PostgreSQL, Snowflake, SQLite, Microsoft SQL Server, and Amazon Athena.
|
||||||
Import the `sql` package.
|
Import the `sql` package.
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/reference/flux/functions/sql/
|
- /v2.0/reference/flux/functions/sql/
|
||||||
|
@ -17,8 +17,15 @@ related:
|
||||||
- /v2.0/query-data/flux/sql/
|
- /v2.0/query-data/flux/sql/
|
||||||
---
|
---
|
||||||
|
|
||||||
SQL Flux functions provide tools for working with data in SQL databases such as
|
SQL Flux functions provide tools for working with data in SQL databases such as:
|
||||||
MySQL, PostgreSQL, Snowflake, and SQLite.
|
|
||||||
|
- Amazon Athena
|
||||||
|
- Microsoft SQL Server
|
||||||
|
- MySQL
|
||||||
|
- PostgreSQL
|
||||||
|
- Snowflake
|
||||||
|
- SQLite
|
||||||
|
|
||||||
Import the `sql` package:
|
Import the `sql` package:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
|
|
@ -35,10 +35,12 @@ _**Data type:** String_
|
||||||
|
|
||||||
The following drivers are available:
|
The following drivers are available:
|
||||||
|
|
||||||
|
- awsathena
|
||||||
- mysql
|
- mysql
|
||||||
- postgres
|
- postgres
|
||||||
- snowflake
|
- snowflake
|
||||||
- sqlite3 – _Does not work with InfluxDB OSS or InfluxDB Cloud. More information [below](#query-an-sqlite-database)._
|
- sqlite3 – _Does not work with InfluxDB OSS or InfluxDB Cloud. More information [below](#query-an-sqlite-database)._
|
||||||
|
- sqlserver, mssql
|
||||||
|
|
||||||
### dataSourceName
|
### dataSourceName
|
||||||
The data source name (DSN) or connection string used to connect to the SQL database.
|
The data source name (DSN) or connection string used to connect to the SQL database.
|
||||||
|
@ -48,12 +50,16 @@ _**Data type:** String_
|
||||||
|
|
||||||
##### Driver dataSourceName examples
|
##### Driver dataSourceName examples
|
||||||
```sh
|
```sh
|
||||||
# Postgres Driver DSN
|
# Amazon Athena Driver DSN
|
||||||
postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full
|
s3://myorgqueryresults/?accessID=AKIAJLO3F...®ion=us-west-1&secretAccessKey=NnQ7MUMp9PYZsmD47c%2BSsXGOFsd%2F...
|
||||||
|
s3://myorgqueryresults/?accessID=AKIAJLO3F...&db=dbname&missingAsDefault=false&missingAsEmptyString=false®ion=us-west-1&secretAccessKey=NnQ7MUMp9PYZsmD47c%2BSsXGOFsd%2F...&WGRemoteCreation=false
|
||||||
|
|
||||||
# MySQL Driver DSN
|
# MySQL Driver DSN
|
||||||
username:password@tcp(localhost:3306)/dbname?param=value
|
username:password@tcp(localhost:3306)/dbname?param=value
|
||||||
|
|
||||||
|
# Postgres Driver DSN
|
||||||
|
postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full
|
||||||
|
|
||||||
# Snowflake Driver DSNs
|
# Snowflake Driver DSNs
|
||||||
username[:password]@accountname/dbname/schemaname?param1=value1¶mN=valueN
|
username[:password]@accountname/dbname/schemaname?param1=value1¶mN=valueN
|
||||||
username[:password]@accountname/dbname?param1=value1¶mN=valueN
|
username[:password]@accountname/dbname?param1=value1¶mN=valueN
|
||||||
|
@ -61,6 +67,12 @@ username[:password]@hostname:port/dbname/schemaname?account=<your_account>¶m
|
||||||
|
|
||||||
# SQLite Driver DSN
|
# SQLite Driver DSN
|
||||||
file:/path/to/test.db?cache=shared&mode=ro
|
file:/path/to/test.db?cache=shared&mode=ro
|
||||||
|
|
||||||
|
# Microsoft SQL Server Driver DSNs
|
||||||
|
sqlserver://username:password@localhost:1234?database=examplebdb
|
||||||
|
server=localhost;user id=username;database=examplebdb;
|
||||||
|
server=localhost;user id=username;database=examplebdb;azure auth=ENV
|
||||||
|
server=localhost;user id=username;database=examplebdbr;azure tenant id=77e7d537;azure client id=58879ce8;azure client secret=0123456789
|
||||||
```
|
```
|
||||||
|
|
||||||
### query
|
### query
|
||||||
|
@ -70,6 +82,13 @@ _**Data type:** String_
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
- [MySQL](#query-a-mysql-database)
|
||||||
|
- [Postgres](#query-a-postgres-database)
|
||||||
|
- [Snowflake](#query-a-snowflake-database)
|
||||||
|
- [SQLite](#query-an-sqlite-database)
|
||||||
|
- [Amazon Athena](#query-an-amazon-athena-database)
|
||||||
|
- [SQL Server](#query-a-sql-server-database)
|
||||||
|
|
||||||
{{% note %}}
|
{{% note %}}
|
||||||
The examples below use [InfluxDB secrets](/v2.0/security/secrets/) to populate
|
The examples below use [InfluxDB secrets](/v2.0/security/secrets/) to populate
|
||||||
sensitive connection credentials.
|
sensitive connection credentials.
|
||||||
|
@ -139,3 +158,95 @@ sql.from(
|
||||||
query: "SELECT * FROM example_table"
|
query: "SELECT * FROM example_table"
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Query an Amazon Athena database
|
||||||
|
```js
|
||||||
|
import "sql"
|
||||||
|
import "influxdata/influxdb/secrets"
|
||||||
|
|
||||||
|
region = us-west-1
|
||||||
|
accessID = secrets.get(key: "ATHENA_ACCESS_ID")
|
||||||
|
secretKey = secrets.get(key: "ATHENA_SECRET_KEY")
|
||||||
|
|
||||||
|
sql.from(
|
||||||
|
driverName: "awsathena",
|
||||||
|
dataSourceName: "s3://myorgqueryresults/?accessID=${accessID}®ion=${region}&secretAccessKey=${secretKey}",
|
||||||
|
query:"SELECT * FROM example_table"
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Athena connection string
|
||||||
|
To query an Amazon Athena database, use the following query parameters in your Athena
|
||||||
|
S3 connection string (DSN):
|
||||||
|
|
||||||
|
<span class="req">\* Required</span>
|
||||||
|
|
||||||
|
- **region** - AWS region <span class="req">\*</span>
|
||||||
|
- **accessID** - AWS IAM access ID <span class="req">\*</span>
|
||||||
|
- **secretAccessKey** - AWS IAM secret key <span class="req">\*</span>
|
||||||
|
- **db** - database name
|
||||||
|
- **WGRemoteCreation** - controls workgroup and tag creation
|
||||||
|
- **missingAsDefault** - replace missing data with default values
|
||||||
|
- **missingAsEmptyString** - replace missing data with empty strings
|
||||||
|
|
||||||
|
|
||||||
|
### Query a SQL Server database
|
||||||
|
```js
|
||||||
|
import "sql"
|
||||||
|
import "influxdata/influxdb/secrets"
|
||||||
|
|
||||||
|
username = secrets.get(key: "SQLSERVER_USER")
|
||||||
|
password = secrets.get(key: "SQLSERVER_PASS")
|
||||||
|
|
||||||
|
sql.from(
|
||||||
|
driverName: "sqlserver",
|
||||||
|
dataSourceName: "sqlserver://${username}:${password}@localhost:1234?database=examplebdb",
|
||||||
|
query: "GO SELECT * FROM Example.Table"
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SQL Server ADO authentication
|
||||||
|
Use one of the following methods to provide SQL Server authentication credentials as
|
||||||
|
[ActiveX Data Objects (ADO)](https://docs.microsoft.com/en-us/sql/ado/guide/ado-introduction?view=sql-server-ver15)
|
||||||
|
connection string parameters:
|
||||||
|
|
||||||
|
- [Retrieve authentication credentials from environment variables](#retrieve-authentication-credentials-from-environment-variables)
|
||||||
|
- [Retrieve authentication credentials from a file](#retrieve-authentication-credentials-from-a-file)
|
||||||
|
- [Specify authentication credentials in the connection string](#specify-authentication-credentials-in-the-connection-string)
|
||||||
|
- [Use a Managed identity in an Azure VM](#use-a-managed-identity-in-an-azure-vm)
|
||||||
|
|
||||||
|
##### Retrieve authentication credentials from environment variables
|
||||||
|
```
|
||||||
|
azure auth=ENV
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Retrieve authentication credentials from a file
|
||||||
|
{{% warn %}}
|
||||||
|
**InfluxDB OSS** and **{{< cloud-name "short" >}}** user interfaces do _**not**_ provide
|
||||||
|
access to the underlying file system and do not support reading credentials from a file.
|
||||||
|
To retrieve SQL Server credentials from a file, execute the query in the
|
||||||
|
[Flux REPL](/v2.0/reference/cli/influx/repl/) on your local machine.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
|
```powershel
|
||||||
|
azure auth=C:\secure\azure.auth
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Specify authentication credentials in the connection string
|
||||||
|
```powershell
|
||||||
|
# Example of providing tenant ID, client ID, and client secret token
|
||||||
|
azure tenant id=77...;azure client id=58...;azure client secret=0cf123..
|
||||||
|
|
||||||
|
# Example of providing tenant ID, client ID, certificate path and certificate password
|
||||||
|
azure tenant id=77...;azure client id=58...;azure certificate path=C:\secure\...;azure certificate password=xY...
|
||||||
|
|
||||||
|
# Example of providing tenant ID, client ID, and Azure username and password
|
||||||
|
azure tenant id=77...;azure client id=58...;azure username=some@myorg;azure password=a1...
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Use a managed identity in an Azure VM
|
||||||
|
_For information about managed identities, see [Microsoft managed identities](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview)._
|
||||||
|
|
||||||
|
```
|
||||||
|
azure auth=MSI
|
||||||
|
```
|
||||||
|
|
|
@ -38,6 +38,7 @@ The following drivers are available:
|
||||||
- postgres
|
- postgres
|
||||||
- snowflake
|
- snowflake
|
||||||
- sqlite3 – _Does not work with InfluxDB OSS or InfluxDB Cloud. More information [below](#write-data-to-an-sqlite-database)._
|
- sqlite3 – _Does not work with InfluxDB OSS or InfluxDB Cloud. More information [below](#write-data-to-an-sqlite-database)._
|
||||||
|
- sqlserver, mssql
|
||||||
|
|
||||||
### dataSourceName
|
### dataSourceName
|
||||||
The data source name (DSN) or connection string used to connect to the SQL database.
|
The data source name (DSN) or connection string used to connect to the SQL database.
|
||||||
|
@ -60,6 +61,12 @@ username[:password]@hostname:port/dbname/schemaname?account=<your_account>¶m
|
||||||
|
|
||||||
# SQLite Driver DSN
|
# SQLite Driver DSN
|
||||||
file:/path/to/test.db?cache=shared&mode=rw
|
file:/path/to/test.db?cache=shared&mode=rw
|
||||||
|
|
||||||
|
# Microsoft SQL Server Driver DSNs
|
||||||
|
sqlserver://username:password@localhost:1234?database=examplebdb
|
||||||
|
server=localhost;user id=username;database=examplebdb;
|
||||||
|
server=localhost;user id=username;database=examplebdb;azure auth=ENV
|
||||||
|
server=localhost;user id=username;database=examplebdbr;azure tenant id=77e7d537;azure client id=58879ce8;azure client secret=0123456789
|
||||||
```
|
```
|
||||||
|
|
||||||
### table
|
### table
|
||||||
|
@ -79,6 +86,12 @@ If writing to a **SQLite** database, set `batchSize` to `999` or less.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
- [MySQL](#write-data-to-a-mysql-database)
|
||||||
|
- [Postgres](#write-data-to-a-postgres-database)
|
||||||
|
- [Snowflake](#write-data-to-a-snowflake-database)
|
||||||
|
- [SQLite](#write-data-to-an-sqlite-database)
|
||||||
|
- [SQL Server](#write-data-to-a-sql-server-database)
|
||||||
|
|
||||||
{{% note %}}
|
{{% note %}}
|
||||||
The examples below use [InfluxDB secrets](/v2.0/security/secrets/) to populate
|
The examples below use [InfluxDB secrets](/v2.0/security/secrets/) to populate
|
||||||
sensitive connection credentials.
|
sensitive connection credentials.
|
||||||
|
@ -148,3 +161,69 @@ sql.to(
|
||||||
table: "example_table"
|
table: "example_table"
|
||||||
)
|
)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Write data to a SQL Server database
|
||||||
|
```js
|
||||||
|
import "sql"
|
||||||
|
import "influxdata/influxdb/secrets"
|
||||||
|
|
||||||
|
username = secrets.get(key: "SQLSERVER_USER")
|
||||||
|
password = secrets.get(key: "SQLSERVER_PASS")
|
||||||
|
|
||||||
|
sql.to(
|
||||||
|
driverName: "sqlserver",
|
||||||
|
dataSourceName: "sqlserver://${username}:${password}@localhost:1234?database=examplebdb",
|
||||||
|
table: "Example.Table"
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### SQL Server ADO authentication
|
||||||
|
Use one of the following methods to provide SQL Server authentication credentials as
|
||||||
|
[ActiveX Data Objects (ADO)](https://docs.microsoft.com/en-us/sql/ado/guide/ado-introduction?view=sql-server-ver15)
|
||||||
|
connection string parameters:
|
||||||
|
|
||||||
|
- [Retrieve authentication credentials from environment variables](#retrieve-authentication-credentials-from-environment-variables)
|
||||||
|
- [Retrieve authentication credentials from a file](#retrieve-authentication-credentials-from-a-file)
|
||||||
|
- [Specify authentication credentials in the connection string](#specify-authentication-credentials-in-the-connection-string)
|
||||||
|
- [Use a Managed identity in an Azure VM](#use-a-managed-identity-in-an-azure-vm)
|
||||||
|
|
||||||
|
##### Retrieve authentication credentials from environment variables
|
||||||
|
```
|
||||||
|
azure auth=ENV
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Retrieve authentication credentials from a file
|
||||||
|
{{% warn %}}
|
||||||
|
**InfluxDB OSS** and **{{< cloud-name "short" >}}** user interfaces do _**not**_ provide
|
||||||
|
access to the underlying file system and do not support reading credentials from a file.
|
||||||
|
To retrieve SQL Server credentials from a file, execute the query in the
|
||||||
|
[Flux REPL](/v2.0/reference/cli/influx/repl/) on your local machine.
|
||||||
|
{{% /warn %}}
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
azure auth=C:\secure\azure.auth
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Specify authentication credentials in the connection string
|
||||||
|
```powershell
|
||||||
|
# Example of providing tenant ID, client ID, and client secret token
|
||||||
|
azure tenant id=77...;azure client id=58...;azure client secret=0cf123..
|
||||||
|
|
||||||
|
# Example of providing tenant ID, client ID, certificate path and certificate password
|
||||||
|
azure tenant id=77...;azure client id=58...;azure certificate path=C:\secure\...;azure certificate password=xY...
|
||||||
|
|
||||||
|
# Example of providing tenant ID, client ID, and Azure username and password
|
||||||
|
azure tenant id=77...;azure client id=58...;azure username=some@myorg;azure password=a1...
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Use a managed identity in an Azure VM
|
||||||
|
_For information about managed identities, see [Microsoft managed identities](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview)._
|
||||||
|
|
||||||
|
```
|
||||||
|
azure auth=MSI
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% warn %}}
|
||||||
|
### sql.to does not support Amazon Athena
|
||||||
|
The `sql.to` function does not support writing data to [Amazon Athena](https://aws.amazon.com/athena/).
|
||||||
|
{{% /warn %}}
|
||||||
|
|
|
@ -31,12 +31,12 @@ _Hover over highlighted terms to get acquainted with InfluxDB terminology and la
|
||||||
|
|
||||||
**bucket:** `my_bucket`
|
**bucket:** `my_bucket`
|
||||||
|
|
||||||
| _time | _measurement | <span class ="tooltip" data-tooltip-text ="Tag key">location</span> | <span class ="tooltip" data-tooltip-text ="Tag key">scientist</span> | _field | _value |
|
| _time | _measurement | {{< tooltip "Tag key" "location" >}} | {{< tooltip "Tag key" "scientist" >}} | _field | _value |
|
||||||
|:------------------- |:------------ |:------- |:------ |:-- |:------ |
|
|:------------------- |:------------ |:------- |:------ |:-- |:------ |
|
||||||
| 2019-08-18T00:00:00Z | census | klamath | anderson | bees | 23 |
|
| 2019-08-18T00:00:00Z | census | klamath | anderson | bees | 23 |
|
||||||
| 2019-08-18T00:00:00Z | census | portland | mullen | ants | 30 |
|
| 2019-08-18T00:00:00Z | census | portland | mullen | ants | 30 |
|
||||||
| 2019-08-18T00:06:00Z | census | klamath | anderson | bees | 28 |
|
| 2019-08-18T00:06:00Z | census | klamath | anderson | bees | 28 |
|
||||||
| <span class="tooltip" data-tooltip-text="Timestamp">2019-08-18T00:06:00Z</span> | <span class="tooltip" data-tooltip-text="measurement"> census</span> | <span class ="tooltip" data-tooltip-text ="Tag value">portland</span> | <span class ="tooltip" data-tooltip-text ="Tag value">mullen</span> | <span class ="tooltip" data-tooltip-text ="Field key">ants</span> | <span class ="tooltip" data-tooltip-text ="Field value">32</span> |
|
| {{< tooltip "Timestamp" "2019-08-18T00:06:00Z" >}} | {{< tooltip "measurement" "census" >}} | {{< tooltip "Tag value" "portland" >}} | {{< tooltip "Tag value" "mullen">}} | {{< tooltip "Field key" "ants" >}} | {{< tooltip "Field value" "32" >}} |
|
||||||
|
|
||||||
## Timestamp
|
## Timestamp
|
||||||
|
|
||||||
|
@ -83,11 +83,13 @@ Tags include tag keys and tag values that are stored as strings and metadata.
|
||||||
### Tag key
|
### Tag key
|
||||||
|
|
||||||
The tag keys in the sample data are `location` and `scientist`.
|
The tag keys in the sample data are `location` and `scientist`.
|
||||||
|
_For information about tag key requirements, see [Line protocol – Tag set](/v2.0/reference/syntax/line-protocol/#tag-set)._
|
||||||
|
|
||||||
### Tag value
|
### Tag value
|
||||||
|
|
||||||
The tag key `location` has two tag values: `klamath` and `portland`.
|
The tag key `location` has two tag values: `klamath` and `portland`.
|
||||||
The tag key `scientist` also has two tag values: `anderson` and `mullen`.
|
The tag key `scientist` also has two tag values: `anderson` and `mullen`.
|
||||||
|
_For information about tag value requirements, see [Line protocol – Tag set](/v2.0/reference/syntax/line-protocol/#tag-set)._
|
||||||
|
|
||||||
### Tag set
|
### Tag set
|
||||||
|
|
||||||
|
@ -117,18 +119,18 @@ from(bucket: "bucket-name")
|
||||||
|
|
||||||
InfluxDB scans every field value in the dataset for `bees` before the query returns a response. If our sample `census` data grew to millions of rows, to optimize your query, you could rearrange your [schema](/v2.0/reference/glossary/#schema) so the fields (`bees` and `ants`) becomes tags and the tags (`location` and `scientist`) become fields:
|
InfluxDB scans every field value in the dataset for `bees` before the query returns a response. If our sample `census` data grew to millions of rows, to optimize your query, you could rearrange your [schema](/v2.0/reference/glossary/#schema) so the fields (`bees` and `ants`) becomes tags and the tags (`location` and `scientist`) become fields:
|
||||||
|
|
||||||
| _time | _measurement | <span class ="tooltip" data-tooltip-text ="Tag key">bees</span> | _field | _value |
|
| _time | _measurement | {{< tooltip "Tag key" "bees" >}} | _field | _value |
|
||||||
|:------------------- |:------------ |:------- |:-- |:------ |
|
|:------------------- |:------------ |:------- |:-- |:------ |
|
||||||
| 2019-08-18T00:00:00Z | census | 23 | location | klamath |
|
| 2019-08-18T00:00:00Z | census | 23 | location | klamath |
|
||||||
| 2019-08-18T00:00:00Z | census | 23 | scientist | anderson |
|
| 2019-08-18T00:00:00Z | census | 23 | scientist | anderson |
|
||||||
| 2019-08-18T00:06:00Z | census | <span class ="tooltip" data-tooltip-text ="Tag value">28</span> | <span class ="tooltip" data-tooltip-text ="Field key">location</span> | <span class ="tooltip" data-tooltip-text ="Field value">klamath</span> |
|
| 2019-08-18T00:06:00Z | census | {{< tooltip "Tag value" "28" >}} | {{< tooltip "Field key" "location" >}} | {{< tooltip "Field value" "klamath" >}} |
|
||||||
| 2019-08-18T00:06:00Z | census | 28 | scientist | anderson |
|
| 2019-08-18T00:06:00Z | census | 28 | scientist | anderson |
|
||||||
|
|
||||||
| _time | _measurement | <span class ="tooltip" data-tooltip-text ="Tag key">ants</span> | _field | _value |
|
| _time | _measurement | {{< tooltip "Tag key" "ants" >}} | _field | _value |
|
||||||
|:------------------- |:------------ |:------- |:-- |:------ |
|
|:------------------- |:------------ |:------- |:-- |:------ |
|
||||||
| 2019-08-18T00:00:00Z | census | 30 | location | portland |
|
| 2019-08-18T00:00:00Z | census | 30 | location | portland |
|
||||||
| 2019-08-18T00:00:00Z | census | 30 | scientist | mullen |
|
| 2019-08-18T00:00:00Z | census | 30 | scientist | mullen |
|
||||||
| 2019-08-18T00:06:00Z | census | <span class ="tooltip" data-tooltip-text ="Tag value">32</span> | <span class ="tooltip" data-tooltip-text ="Field key">location</span> | <span class ="tooltip" data-tooltip-text ="Field value">portland</span>|
|
| 2019-08-18T00:06:00Z | census | {{< tooltip "Tag value" "32" >}} | {{< tooltip "Field key" "location" >}} | {{< tooltip "Field value" "portland" >}} |
|
||||||
| 2019-08-18T00:06:00Z | census | 32 | scientist | mullen |
|
| 2019-08-18T00:06:00Z | census | 32 | scientist | mullen |
|
||||||
|
|
||||||
Now that `bees` and `ants` are tags, InfluxDB doesn't have to scan all `_field` and `_value` columns. This makes your queries faster.
|
Now that `bees` and `ants` are tags, InfluxDB doesn't have to scan all `_field` and `_value` columns. This makes your queries faster.
|
||||||
|
@ -139,7 +141,7 @@ Now that you're familiar with measurements, field sets, and tag sets, it's time
|
||||||
|
|
||||||
| _measurement | tag set | _field |
|
| _measurement | tag set | _field |
|
||||||
|:------------- |:------------------------------- |:------ |
|
|:------------- |:------------------------------- |:------ |
|
||||||
| census | <span class="tooltip" data-tooltip-text="Tag set">location=klamath,scientist=anderson</span> |<span class="tooltip" data-tooltip-text="Field key">bees</span>|
|
| census | {{< tooltip "Tag set" "location=klamath,scientist=anderson" >}} | {{< tooltip "Field key" "bees" >}} |
|
||||||
| census | location=portland,scientist=mullen | ants |
|
| census | location=portland,scientist=mullen | ants |
|
||||||
|
|
||||||
A **series** includes timestamps and field values for a given series key. From the sample data, here's a **series key** and the corresponding **series**:
|
A **series** includes timestamps and field values for a given series key. From the sample data, here's a **series key** and the corresponding **series**:
|
||||||
|
|
|
@ -11,11 +11,50 @@ aliases:
|
||||||
---
|
---
|
||||||
|
|
||||||
{{% note %}}
|
{{% note %}}
|
||||||
_The latest release of InfluxDB v2.0 beta includes **Flux v0.71.1**.
|
The latest release of InfluxDB v2.0 beta includes **Flux v0.71.1**.
|
||||||
Though newer versions of Flux may be available, they will not be included with
|
Though newer versions of Flux may be available, they will not be included with
|
||||||
InfluxDB until the next InfluxDB v2.0 release._
|
InfluxDB until the next InfluxDB v2.0 release._
|
||||||
{{% /note %}}
|
{{% /note %}}
|
||||||
|
|
||||||
|
## v0.71.1 [2020-07-03]
|
||||||
|
|
||||||
|
### Bug fixes
|
||||||
|
- Add a check to ensure `every` is non-negative.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## v0.71.0 [2020-06-30]
|
||||||
|
|
||||||
|
### Features
|
||||||
|
- Apply `Timeable` constraint to integer type to support integer values in
|
||||||
|
time-related function parameters.
|
||||||
|
- Implement schema mutation functions without performing any copies.
|
||||||
|
- Add [`http.pathEscape()` function](/v2.0/reference/flux/stdlib/http/pathescape/).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## v0.70.0 [2020-06-29]
|
||||||
|
### Features
|
||||||
|
- Update all `date` functions to accept time and duration types.
|
||||||
|
- Add [Microsoft Teams package](/v2.0/reference/flux/stdlib/contrib/teams/).
|
||||||
|
- Evaluate and store `now` in execution dependencies for `tableFind()`.
|
||||||
|
- Add `Timeable` constraint for time and duration types.
|
||||||
|
- Add [SQL Server support](/v2.0/reference/flux/stdlib/sql/from/#query-a-sql-server-database) to `sql` package.
|
||||||
|
- Add [Telegram package](/v2.0/reference/flux/stdlib/contrib/telegram/).
|
||||||
|
- Add [Amazon Athena support](/v2.0/reference/flux/stdlib/sql/from/#query-an-amazon-athena-database) to `sql` package.
|
||||||
|
- Add support for macOS builds.
|
||||||
|
|
||||||
|
### Bug fixes
|
||||||
|
- Move semantic analysis to the finalize step.
|
||||||
|
- Fix check for stream equality.
|
||||||
|
- Fix the compiler's return type when `with` operator is used.
|
||||||
|
- Include `stdlib` Flux dependencies from the Flux `build.rs`.
|
||||||
|
- Include a hash of the sources for `libflux`.
|
||||||
|
- Flux test for [experimental `json.parse()`](/v2.0/reference/flux/stdlib/experimental/json/parse/).
|
||||||
|
- Reorder `go generate` call to `libflux` in `stdlib`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## v0.69.2 [2020-06-10]
|
## v0.69.2 [2020-06-10]
|
||||||
|
|
||||||
### Bug fixes
|
### Bug fixes
|
||||||
|
|
|
@ -12,15 +12,6 @@ menu:
|
||||||
|
|
||||||
InfluxDB 2.0 is available both locally (OSS) or on multiple cloud providers in multiple regions (Cloud).
|
InfluxDB 2.0 is available both locally (OSS) or on multiple cloud providers in multiple regions (Cloud).
|
||||||
|
|
||||||
## InfluxDB OSS URL
|
|
||||||
|
|
||||||
For InfluxDB OSS, the default URL is the following:
|
|
||||||
|
|
||||||
{{< keep-url >}}
|
|
||||||
```
|
|
||||||
http://localhost:9999/
|
|
||||||
```
|
|
||||||
|
|
||||||
## InfluxDB Cloud URLs
|
## InfluxDB Cloud URLs
|
||||||
|
|
||||||
Each region has a unique InfluxDB Cloud URL and API endpoint.
|
Each region has a unique InfluxDB Cloud URL and API endpoint.
|
||||||
|
@ -29,3 +20,35 @@ Use the URLs below to interact with your InfluxDB Cloud instances with the
|
||||||
[`influx` CLI](/v2.0/reference/cli/influx/), or [Telegraf](/v2.0/write-data/use-telegraf/).
|
[`influx` CLI](/v2.0/reference/cli/influx/), or [Telegraf](/v2.0/write-data/use-telegraf/).
|
||||||
|
|
||||||
{{< cloud_regions >}}
|
{{< cloud_regions >}}
|
||||||
|
|
||||||
|
## InfluxDB OSS URLs
|
||||||
|
|
||||||
|
For InfluxDB OSS, the default URL is the following:
|
||||||
|
|
||||||
|
{{< keep-url >}}
|
||||||
|
```
|
||||||
|
http://localhost:9999/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Customize your InfluxDB OSS URL
|
||||||
|
To customize your InfluxDB host and port, use the
|
||||||
|
[`http-bind-address` configuration option](/v2.0/reference/config-options/#http-bind-address)
|
||||||
|
when starting `influxd`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Syntax
|
||||||
|
influxd --http-bind-address <custom-domain>:<custom-port>
|
||||||
|
|
||||||
|
# Example - Run InfluxDB at http://example.com:8080
|
||||||
|
influxd --http-bind-address example.com:8080
|
||||||
|
|
||||||
|
# Example - Run InfluxDB at http://localhost:8080
|
||||||
|
influxd --http-bind-address :8080
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
#### Configure DNS routing
|
||||||
|
You must configure DNS routing to successfully route requests to your custom hostname.
|
||||||
|
Methods for configuring DNS routing vary depending on your operating system and
|
||||||
|
network architecture and are not covered in this documentation.
|
||||||
|
{{% /note %}}
|
||||||
|
|
|
@ -6,19 +6,23 @@ menu:
|
||||||
v2_0:
|
v2_0:
|
||||||
parent: Store and use secrets
|
parent: Store and use secrets
|
||||||
weight: 201
|
weight: 201
|
||||||
products: [oss]
|
|
||||||
---
|
---
|
||||||
|
|
||||||
[Vault](https://www.vaultproject.io/) secures, stores, and tightly controls access
|
[Vault](https://www.vaultproject.io/) secures, stores, and controls access
|
||||||
to tokens, passwords, certificates, and other sensitive secrets.
|
to tokens, passwords, certificates, and other sensitive secrets.
|
||||||
Store sensitive secrets in Vault using the InfluxDB built-in Vault integration.
|
Store sensitive secrets in Vault using InfluxDB's built-in Vault integration.
|
||||||
|
|
||||||
|
## Use Vault with {{< cloud-name >}}
|
||||||
|
|
||||||
{{% cloud %}}
|
|
||||||
By default, all secrets added to **InfluxDB Cloud** are stored in the
|
By default, all secrets added to **InfluxDB Cloud** are stored in the
|
||||||
**InfluxDB Cloud Vault cluster**.
|
**InfluxDB Cloud Vault cluster**.
|
||||||
{{% /cloud %}}
|
|
||||||
|
|
||||||
## Start a Vault server
|
For more on adding and using secrets, see [Manage secrets](/v2.0/security/secrets/manage-secrets/).
|
||||||
|
Once added, use the [`secrets.get()`](/v2.0/reference/flux/stdlib/secrets/get/) function to retrieve secrets for use in Flux scripts.
|
||||||
|
|
||||||
|
## Use Vault with InfluxDB OSS
|
||||||
|
|
||||||
|
### Start a Vault server
|
||||||
|
|
||||||
Start a Vault server and ensure InfluxDB has network access to the server.
|
Start a Vault server and ensure InfluxDB has network access to the server.
|
||||||
|
|
||||||
|
@ -43,26 +47,26 @@ For this example, install Vault on your local machine and start a Vault dev serv
|
||||||
vault server -dev
|
vault server -dev
|
||||||
```
|
```
|
||||||
|
|
||||||
## Provide Vault server address and token
|
### Provide Vault server address and token
|
||||||
|
|
||||||
Use `influxd` Vault-related tags or [Vault environment variables](https://www.vaultproject.io/docs/commands/index.html#environment-variables)
|
Use `influxd` Vault-related tags or [Vault environment variables](https://www.vaultproject.io/docs/commands/index.html#environment-variables)
|
||||||
to provide connection credentials and other important Vault-related information to InfluxDB.
|
to provide connection credentials and other important Vault-related information to InfluxDB.
|
||||||
|
|
||||||
### Required credentials
|
#### Required credentials
|
||||||
|
|
||||||
#### Vault address
|
##### Vault address
|
||||||
Provide the API address of your Vault server _(available in the Vault server output)_
|
Provide the API address of your Vault server _(available in the Vault server output)_
|
||||||
using the [`--vault-addr` flag](/v2.0/reference/config-options/#vault-addr) when
|
using the [`--vault-addr` flag](/v2.0/reference/config-options/#vault-addr) when
|
||||||
starting `influxd` or with the `VAULT_ADDR` environment variable.
|
starting `influxd` or with the `VAULT_ADDR` environment variable.
|
||||||
|
|
||||||
#### Vault token
|
##### Vault token
|
||||||
Provide your [Vault token](https://learn.hashicorp.com/vault/getting-started/authentication)
|
Provide your [Vault token](https://learn.hashicorp.com/vault/getting-started/authentication)
|
||||||
(required to access your Vault server) using the [`--vault-token` flag](/v2.0/reference/config-options/#vault-token)
|
(required to access your Vault server) using the [`--vault-token` flag](/v2.0/reference/config-options/#vault-token)
|
||||||
when starting `influxd` or with the `VAULT_TOKEN` environment variable.
|
when starting `influxd` or with the `VAULT_TOKEN` environment variable.
|
||||||
|
|
||||||
_Your Vault server configuration may require other Vault settings._
|
_Your Vault server configuration may require other Vault settings._
|
||||||
|
|
||||||
## Start InfluxDB
|
### Start InfluxDB
|
||||||
|
|
||||||
Start the [`influxd` service](/v2.0/reference/cli/influxd/) with the `--secret-store`
|
Start the [`influxd` service](/v2.0/reference/cli/influxd/) with the `--secret-store`
|
||||||
option set to `vault` any other necessary flags.
|
option set to `vault` any other necessary flags.
|
||||||
|
@ -89,6 +93,6 @@ If set, these flags override any [Vault environment variables](https://www.vault
|
||||||
|
|
||||||
For more information, see [InfluxDB configuration options](/v2.0/reference/config-options/).
|
For more information, see [InfluxDB configuration options](/v2.0/reference/config-options/).
|
||||||
|
|
||||||
## Manage secrets through the InfluxDB API
|
### Manage secrets through the InfluxDB API
|
||||||
Use the InfluxDB `/org/{orgID}/secrets` API endpoint to add tokens to Vault.
|
Use the InfluxDB `/org/{orgID}/secrets` API endpoint to add tokens to Vault.
|
||||||
For details, see [Manage secrets](/v2.0/security/secrets/manage-secrets/).
|
For details, see [Manage secrets](/v2.0/security/secrets/manage-secrets/).
|
||||||
|
|
|
@ -14,6 +14,11 @@ weight: 201
|
||||||
Create authentication tokens using the InfluxDB user interface (UI) or the `influx`
|
Create authentication tokens using the InfluxDB user interface (UI) or the `influx`
|
||||||
command line interface (CLI).
|
command line interface (CLI).
|
||||||
|
|
||||||
|
|
||||||
|
Tokens are visible only to the user who created them and stop working when the user is deactivated. We recommend creating a generic IT user to create and manage tokens for writing data.
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
## Create a token in the InfluxDB UI
|
## Create a token in the InfluxDB UI
|
||||||
|
|
||||||
1. In the navigation menu on the left, select **Data (Load Data)** > **Tokens**.
|
1. In the navigation menu on the left, select **Data (Load Data)** > **Tokens**.
|
||||||
|
|
|
@ -14,6 +14,10 @@ weight: 202
|
||||||
View authentication tokens using the InfluxDB user interface (UI) or the `influx`
|
View authentication tokens using the InfluxDB user interface (UI) or the `influx`
|
||||||
command line interface (CLI).
|
command line interface (CLI).
|
||||||
|
|
||||||
|
{{% note %}}
|
||||||
|
Tokens are visible only to the user who created them and stop working when the user is deactivated. We recommend creating a generic IT user to create and manage tokens for writing data.
|
||||||
|
{{% note %}}
|
||||||
|
|
||||||
## View tokens in the InfluxDB UI
|
## View tokens in the InfluxDB UI
|
||||||
|
|
||||||
1. In the navigation menu on the left, select **Data (Load Data)** > **Tokens**.
|
1. In the navigation menu on the left, select **Data (Load Data)** > **Tokens**.
|
||||||
|
|
|
@ -13,8 +13,6 @@ weight: 203
|
||||||
|
|
||||||
InfluxDB lets you export dashboards from the InfluxDB user interface (UI).
|
InfluxDB lets you export dashboards from the InfluxDB user interface (UI).
|
||||||
|
|
||||||
## Export a dashboard
|
|
||||||
|
|
||||||
1. In the navigation menu on the left, select **Boards** (**Dashboards**).
|
1. In the navigation menu on the left, select **Boards** (**Dashboards**).
|
||||||
|
|
||||||
{{< nav-icon "dashboards" >}}
|
{{< nav-icon "dashboards" >}}
|
||||||
|
|
|
@ -149,7 +149,7 @@ After [setting up InfluxDB v2.0](/v2.0/get-started/#set-up-influxdb),
|
||||||
the "Let's start collecting data!" page displays options for collecting data.
|
the "Let's start collecting data!" page displays options for collecting data.
|
||||||
Click **Quick Start**.
|
Click **Quick Start**.
|
||||||
|
|
||||||
InfluxDB creates and configures a new [scraper](/v2.0/write-data/scrape-data/).
|
InfluxDB creates and configures a new [scraper](/v2.0/write-data/no-code/scrape-data/).
|
||||||
The target URL points to the `/metrics` HTTP endpoint of your local InfluxDB instance
|
The target URL points to the `/metrics` HTTP endpoint of your local InfluxDB instance
|
||||||
(for example, `http://localhost:9999/metrics`), which outputs internal InfluxDB
|
(for example, `http://localhost:9999/metrics`), which outputs internal InfluxDB
|
||||||
metrics in the [Prometheus data format](https://prometheus.io/docs/instrumenting/exposition_formats/).
|
metrics in the [Prometheus data format](https://prometheus.io/docs/instrumenting/exposition_formats/).
|
||||||
|
|
|
@ -11,16 +11,21 @@ v2.0/tags: [best practices, write]
|
||||||
|
|
||||||
Use these tips to optimize performance and system overhead when writing data to InfluxDB.
|
Use these tips to optimize performance and system overhead when writing data to InfluxDB.
|
||||||
|
|
||||||
|
- [Batch writes](#batch-writes)
|
||||||
|
- [Sort tags by key](#sort-tags-by-key)
|
||||||
|
- [Use the coarsest time precision possible](#use-the-coarsest-time-precision-possible)
|
||||||
|
- [Use gzip compression](#use-gzip-compression)
|
||||||
|
- [Synchronize hosts with NTP](#synchronize-hosts-with-ntp)
|
||||||
|
- [Write multiple data points in one request](#write-multiple-data-points-in-one-request)
|
||||||
|
|
||||||
{{% note %}}
|
{{% note %}}
|
||||||
The following tools write to InfluxDB and employ write optimizations by default:
|
The following tools write to InfluxDB and employ _most_ write optimizations by default:
|
||||||
|
|
||||||
- [Telegraf](/v2.0/write-data/use-telegraf/)
|
- [Telegraf](/v2.0/write-data/use-telegraf/)
|
||||||
- [InfluxDB scrapers](/v2.0/write-data/scrape-data/)
|
|
||||||
- [InfluxDB client libraries](/v2.0/reference/api/client-libraries/)
|
- [InfluxDB client libraries](/v2.0/reference/api/client-libraries/)
|
||||||
|
- [InfluxDB scrapers](/v2.0/write-data/no-code/scrape-data/)
|
||||||
{{% /note %}}
|
{{% /note %}}
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Batch writes
|
## Batch writes
|
||||||
|
|
||||||
Write data in batches to minimize network overhead when writing data to InfluxDB.
|
Write data in batches to minimize network overhead when writing data to InfluxDB.
|
||||||
|
@ -50,6 +55,53 @@ For better performance, use the coarsest precision possible for timestamps.
|
||||||
|
|
||||||
_Specify timestamp precision when [writing to InfluxDB](/v2.0/write-data/#timestamp-precision)._
|
_Specify timestamp precision when [writing to InfluxDB](/v2.0/write-data/#timestamp-precision)._
|
||||||
|
|
||||||
|
## Use gzip compression
|
||||||
|
|
||||||
|
Use gzip compression to speed up writes to InfluxDB.
|
||||||
|
Benchmarks have shown up to a 5x speed improvement when data is compressed.
|
||||||
|
|
||||||
|
{{< tabs-wrapper >}}
|
||||||
|
{{% tabs %}}
|
||||||
|
[Telegraf](#)
|
||||||
|
[Client libraries](#)
|
||||||
|
[InfluxDB API](#)
|
||||||
|
{{% /tabs %}}
|
||||||
|
{{% tab-content %}}
|
||||||
|
### Enable gzip compression in Telegraf
|
||||||
|
|
||||||
|
In the `influxdb_v2` output plugin configuration in your `telegraf.conf`, set the
|
||||||
|
`content_encoding` option to `gzip`:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[[outputs.influxdb_v2]]
|
||||||
|
urls = ["http://localhost:9999"]
|
||||||
|
# ...
|
||||||
|
content_encoding = "gzip"
|
||||||
|
```
|
||||||
|
{{% /tab-content %}}
|
||||||
|
{{% tab-content %}}
|
||||||
|
### Enable gzip compression in InfluxDB client libraries
|
||||||
|
|
||||||
|
Each [InfluxDB client library](/v2.0/reference/api/client-libraries/) provides
|
||||||
|
options for compressing write requests or enforces compression by default.
|
||||||
|
The method for enabling compression is different for each library.
|
||||||
|
For specific instructions, see the [InfluxDB client libraries documentation](/v2.0/reference/api/client-libraries/).
|
||||||
|
{{% /tab-content %}}
|
||||||
|
{{% tab-content %}}
|
||||||
|
### Use gzip compression with the InfluxDB API
|
||||||
|
|
||||||
|
When using the InfluxDB API `/write` endpoint to write data, set the `Content-Encoding`
|
||||||
|
header to `gzip` to compress the request data.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
curl -XPOST "http://localhost:9999/api/v2/write?org=YOUR_ORG&bucket=YOUR_BUCKET&precision=s" \
|
||||||
|
--header "Authorization: Token YOURAUTHTOKEN" \
|
||||||
|
--header "Content-Encoding: gzip" \
|
||||||
|
--data-raw "mem,host=host1 used_percent=23.43234543 1556896326"
|
||||||
|
```
|
||||||
|
{{% /tab-content %}}
|
||||||
|
{{< /tabs-wrapper >}}
|
||||||
|
|
||||||
## Synchronize hosts with NTP
|
## Synchronize hosts with NTP
|
||||||
|
|
||||||
Use the Network Time Protocol (NTP) to synchronize time between hosts.
|
Use the Network Time Protocol (NTP) to synchronize time between hosts.
|
||||||
|
|
|
@ -8,6 +8,7 @@ description: >
|
||||||
aliases:
|
aliases:
|
||||||
- /v2.0/collect-data/scraper-metrics-endpoint
|
- /v2.0/collect-data/scraper-metrics-endpoint
|
||||||
- /v2.0/collect-data/scrape-data
|
- /v2.0/collect-data/scrape-data
|
||||||
|
- /v2.0/write-data/scrape-data
|
||||||
- /v2.0/write-data/scrapable-endpoints
|
- /v2.0/write-data/scrapable-endpoints
|
||||||
v2.0/tags: [scraper]
|
v2.0/tags: [scraper]
|
||||||
menu:
|
menu:
|
||||||
|
|
|
@ -16,7 +16,7 @@ Update a scraper in the InfluxDB user interface (UI).
|
||||||
|
|
||||||
{{% note %}}
|
{{% note %}}
|
||||||
Scraper **Target URLs** and **Buckets** cannot be updated.
|
Scraper **Target URLs** and **Buckets** cannot be updated.
|
||||||
To modify either, [create a new scraper](/v2.0/write-data/scrape-data/manage-scrapers/create-a-scraper).
|
To modify either, [create a new scraper](/v2.0/write-data/no-code/scrape-data/manage-scrapers/create-a-scraper).
|
||||||
{{% /note %}}
|
{{% /note %}}
|
||||||
|
|
||||||
## Update a scraper in the InfluxDB UI
|
## Update a scraper in the InfluxDB UI
|
||||||
|
|
|
@ -5,6 +5,8 @@ oss:
|
||||||
regions:
|
regions:
|
||||||
- name: localhost:9999
|
- name: localhost:9999
|
||||||
url: http://localhost:9999
|
url: http://localhost:9999
|
||||||
|
- name: Custom
|
||||||
|
url: http://example.com:8080
|
||||||
|
|
||||||
cloud:
|
cloud:
|
||||||
product: InfluxDB Cloud
|
product: InfluxDB Cloud
|
||||||
|
|
|
@ -21,5 +21,5 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
{{ partial "footer/javascript.html" }}
|
{{ partial "footer/javascript.html" . }}
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -14,6 +14,20 @@
|
||||||
<div class="providers">
|
<div class="providers">
|
||||||
{{ range .providers }}
|
{{ range .providers }}
|
||||||
<div class="provider">
|
<div class="provider">
|
||||||
|
{{ if eq .name "Custom" }}
|
||||||
|
<h5>Custom</h5>
|
||||||
|
<ul>
|
||||||
|
<li class="custom">
|
||||||
|
<label for="{{ anchorize .name }}">
|
||||||
|
<input type="radio" name="influxdb-loc" id="{{ anchorize .name }}" value="{{ .url }}" checked>
|
||||||
|
<span class="radio"></span>
|
||||||
|
</label>
|
||||||
|
<form action="#" id="custom-url">
|
||||||
|
<input type="text" name="custom-url-field" id="custom-url-field" placeholder="{{ .url }}">
|
||||||
|
</form>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
{{ else }}
|
||||||
<h5>{{ if .short_name}}{{ .short_name }}{{ else }}{{ .name }}{{ end }}</h5>
|
<h5>{{ if .short_name}}{{ .short_name }}{{ else }}{{ .name }}{{ end }}</h5>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .regions }}
|
{{ range .regions }}
|
||||||
|
@ -25,6 +39,7 @@
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -3,6 +3,16 @@
|
||||||
{{ $searchInteractions := resources.Get "js/search-interactions.js" }}
|
{{ $searchInteractions := resources.Get "js/search-interactions.js" }}
|
||||||
{{ $telegrafFilters := resources.Get "js/telegraf-filters.js" }}
|
{{ $telegrafFilters := resources.Get "js/telegraf-filters.js" }}
|
||||||
{{ $influxdbURLs := resources.Get "js/influxdb-url.js" }}
|
{{ $influxdbURLs := resources.Get "js/influxdb-url.js" }}
|
||||||
{{ $footerjs := slice $versionSelector $contentInteractions $searchInteractions $telegrafFilters $influxdbURLs | resources.Concat "js/footer.bundle.js" | resources.Fingerprint}}
|
{{ $footerjs := slice $versionSelector $contentInteractions $searchInteractions $telegrafFilters $influxdbURLs | resources.Concat "js/footer.bundle.js" | resources.Fingerprint }}
|
||||||
|
|
||||||
|
<!-- Load cloudUrls array -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
cloudUrls = [
|
||||||
|
{{- range .Site.Data.influxdb_urls.cloud.providers }}
|
||||||
|
{{- range .regions }}"{{ safeHTML .url }}",{{ end -}}
|
||||||
|
{{ end -}}
|
||||||
|
]
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<!-- Load footer.js -->
|
||||||
<script type="text/javascript" src="{{ $footerjs.RelPermalink }}" ></script>
|
<script type="text/javascript" src="{{ $footerjs.RelPermalink }}" ></script>
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{{ $tooltip := .Get 0 }}
|
||||||
|
{{ $text := .Get 1 }}
|
||||||
|
<span class="tooltip" data-tooltip-text="{{ $tooltip }}">{{ $text }}</span>
|
Loading…
Reference in New Issue