Skip to main content

generate

Generates messages at a given interval using a Bloblang mapping executed without a context. This allows you to generate messages for testing your pipeline configs.

Introduced in version 3.40.0.

# Config fields, showing default values
input:
label: ""
generate:
mapping: ""
interval: 1s
count: 0

Fields​

mapping​

A bloblang mapping to use for generating messages.

Type: string
Default: ""

# Examples
mapping: root = "hello world"
mapping: root = {"test":"message","id":uuid_v4()}

interval​

The time interval at which messages should be generated, expressed either as a duration string or as a cron expression. If set to an empty string messages will be generated as fast as downstream services can process them. Cron expressions can specify a timezone by prefixing the expression with TZ=<location name>, where the location name corresponds to a file within the IANA Time Zone database.

Type: string
Default: "1s"

# Examples
interval: 5s
interval: 1m
interval: 1h
interval: '@every 1s'
interval: 0,30 */2 * * * *
interval: TZ=Europe/London 30 3-6,20-23 * * *

count​

An optional number of messages to generate, if set above 0 the specified number of messages is generated and then the input will shut down.

Type: int
Default: 0

Examples​

A common use case for the generate input is to trigger processors on a schedule so that the processors themselves can behave similarly to an input. The following configuration reads rows from a PostgreSQL table every 5 minutes.

input:
generate:
interval: '@every 5m'
mapping: 'root = {}'
processors:
- sql_select:
driver: postgres
dsn: postgres://foouser:foopass@localhost:5432/testdb?sslmode=disable
table: foo
columns: [ "*" ]