4.0 KiB
4.0 KiB
title | description | menu | weight | flux/v0/tags | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
tickscript.join() function | `tickscript.join()` merges two input streams into a single output stream based on specified columns with equal values and appends a new measurement name. |
|
301 |
|
tickscript.join()
merges two input streams into a single output stream
based on specified columns with equal values and appends a new measurement name.
This function is comparable to Kapacitor JoinNode.
Function type signature
(measurement: A, tables: B, ?on: [string]) => stream[{C with _measurement: A}] where B: Record, C: Record
{{% caption %}} For more information, see Function type signatures. {{% /caption %}}
Parameters
tables
({{< req >}}) Map of two streams to join.
on
List of columns to join on. Default is ["_time"]
.
measurement
({{< req >}}) Measurement name to use in results.
Examples
Join two streams of data
import "array"
import "contrib/bonitoo-io/tickscript"
metrics =
array.from(
rows: [
{_time: 2021-01-01T00:00:00Z, host: "host1", _value: 1.2},
{_time: 2021-01-01T01:00:00Z, host: "host1", _value: 0.8},
{_time: 2021-01-01T02:00:00Z, host: "host1", _value: 3.2},
{_time: 2021-01-01T00:00:00Z, host: "host2", _value: 8.4},
{_time: 2021-01-01T01:00:00Z, host: "host2", _value: 7.3},
{_time: 2021-01-01T02:00:00Z, host: "host2", _value: 7.9},
],
)
|> group(columns: ["host"])
states =
array.from(
rows: [
{_time: 2021-01-01T00:00:00Z, host: "host1", _value: "dead"},
{_time: 2021-01-01T01:00:00Z, host: "host1", _value: "dead"},
{_time: 2021-01-01T02:00:00Z, host: "host1", _value: "alive"},
{_time: 2021-01-01T00:00:00Z, host: "host2", _value: "alive"},
{_time: 2021-01-01T01:00:00Z, host: "host2", _value: "alive"},
{_time: 2021-01-01T02:00:00Z, host: "host2", _value: "alive"},
],
)
|> group(columns: ["host"])
tickscript.join(
tables: {metric: metrics, state: states},
on: ["_time", "host"],
measurement: "example-m",
)
{{< expand-wrapper >}} {{% expand "View example output" %}}
Output data
*_measurement | _time | _value_metric | _value_state | *host |
---|---|---|---|---|
example-m | 2021-01-01T00:00:00Z | 1.2 | dead | host1 |
example-m | 2021-01-01T01:00:00Z | 0.8 | dead | host1 |
example-m | 2021-01-01T02:00:00Z | 3.2 | alive | host1 |
*_measurement | _time | _value_metric | _value_state | *host |
---|---|---|---|---|
example-m | 2021-01-01T00:00:00Z | 8.4 | alive | host2 |
example-m | 2021-01-01T01:00:00Z | 7.3 | alive | host2 |
example-m | 2021-01-01T02:00:00Z | 7.9 | alive | host2 |
{{% /expand %}} {{< /expand-wrapper >}}