Documentation

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
  • Copy
  • Fill window

For more information, see Function type signatures.

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",
)
  • Copy
  • Fill window

View example output


Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Read more

New in InfluxDB 3.2

Key enhancements in InfluxDB 3.2 and the InfluxDB 3 Explorer UI is now generally available.

See the Blog Post

InfluxDB 3.2 is now available for both Core and Enterprise, bringing the general availability of InfluxDB 3 Explorer, a new UI that simplifies how you query, explore, and visualize data. On top of that, InfluxDB 3.2 includes a wide range of performance improvements, feature updates, and bug fixes including automated data retention and more.

For more information, check out: