tickscript.join() function
tickscript.join()
is a user-contributed function maintained by
the package author.
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
Parameters
tables
(Required) Map of two streams to join.
on
List of columns to join on. Default is ["_time"]
.
measurement
(Required) 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",
)
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.