From bb5f9e08b919662be2fb2469c02b56c6c01db114 Mon Sep 17 00:00:00 2001 From: Tobias Mayer Date: Wed, 8 Apr 2026 19:55:23 +0200 Subject: [PATCH 1/2] Document new ZeroMQ transport operators --- src/content/docs/integrations/zeromq.mdx | 56 ++++++++--- src/content/docs/reference/operators.mdx | 48 ++++++++++ .../docs/reference/operators/accept_zmq.mdx | 82 ++++++++++++++++ src/content/docs/reference/operators/from.mdx | 4 +- .../docs/reference/operators/from_zmq.mdx | 93 +++++++++++++++++++ .../docs/reference/operators/load_zmq.mdx | 10 ++ .../docs/reference/operators/save_zmq.mdx | 10 ++ .../docs/reference/operators/serve_zmq.mdx | 76 +++++++++++++++ src/content/docs/reference/operators/to.mdx | 4 +- .../docs/reference/operators/to_zmq.mdx | 75 +++++++++++++++ 10 files changed, 440 insertions(+), 18 deletions(-) create mode 100644 src/content/docs/reference/operators/accept_zmq.mdx create mode 100644 src/content/docs/reference/operators/from_zmq.mdx create mode 100644 src/content/docs/reference/operators/serve_zmq.mdx create mode 100644 src/content/docs/reference/operators/to_zmq.mdx diff --git a/src/content/docs/integrations/zeromq.mdx b/src/content/docs/integrations/zeromq.mdx index 213824cc8..9242df2db 100644 --- a/src/content/docs/integrations/zeromq.mdx +++ b/src/content/docs/integrations/zeromq.mdx @@ -5,41 +5,69 @@ title: ZeroMQ [ZeroMQ](https://zeromq.org/) (0mq) is a light-weight messaging framework with various socket types. Tenzir supports writing to [PUB sockets](https://zeromq.org/socket-api/#pub-socket) and reading from [SUB -sockets](https://zeromq.org/socket-api/#sub-socket), both in server (listening) -and client (connect) mode. +sockets](https://zeromq.org/socket-api/#sub-socket), both in bind mode and +connect mode. ![ZeroMQ](zeromq.svg) Use the IP address `0.0.0.0` to listen on all available network interfaces. +The event-oriented ZeroMQ operators are: + +- from_zmq: Connects as a `SUB` socket and receives events. +- accept_zmq: Binds a `SUB` socket and receives events. +- to_zmq: Connects as a `PUB` socket and sends events. +- serve_zmq: Binds a `PUB` socket and sends events. + +Tenzir documents these operators for PUB/SUB-style use. ZeroMQ itself does not +have a first-class topic abstraction. Instead, Tenzir uses an optional `prefix` +that is prepended to outgoing messages and matched by subscribers with ZeroMQ's +native byte-prefix filtering. Receivers strip the matched prefix before running +their nested `read_*` pipeline unless `keep_prefix=true`. + Because ZeroMQ is entirely asynchronous, publishers send messages even when no subscriber is present. This can lead to lost messages when the publisher begins operating before the subscriber. To avoid data loss due to such races, pass -`monitor=true` to activate message buffering until at least one remote peer has -connected. +`monitor=true` on to_zmq, serve_zmq, or the legacy +save_zmq operator to wait until at least one remote peer has connected +on TCP transports. :::tip[URL Support] The URL scheme `zmq://` dispatches to -load_zmq and -save_zmq for seamless URL-style use via -from and to. +from_zmq and +to_zmq for URL-style use via from and to. +Use accept_zmq and serve_zmq when Tenzir should bind the +endpoint. ::: ## Examples -### Accept Syslog messages over ZeroMQ +### Connect to a remote publisher and parse JSON ```tql -from "zmq://127.0.0.1:541" { - read_syslog +from_zmq "tcp://collector.example.com:5555" { + read_json } ``` -### Send events to a ZeroMQ socket +### Receive a prefixed stream ```tql -from {message: "Tenzir"} -to "zmq://1.2.3.4:8080" { - write_ndjson +accept_zmq "tcp://0.0.0.0:5555", prefix="alerts/" { + read_ndjson } ``` + +### Publish events with a dynamic prefix + +```tql +export +serve_zmq "tcp://0.0.0.0:5555", encoding="json", prefix=kind + "/" +``` + +### Connect and publish JSON + +```tql +export +to_zmq "tcp://collector.example.com:5555", encoding="json" +``` diff --git a/src/content/docs/reference/operators.mdx b/src/content/docs/reference/operators.mdx index c8c68ce4c..311475781 100644 --- a/src/content/docs/reference/operators.mdx +++ b/src/content/docs/reference/operators.mdx @@ -359,6 +359,10 @@ operators: description: 'Sends and receives HTTP/1.1 requests.' example: 'from_http "0.0.0.0:8080"' path: 'reference/operators/from_http' + - name: 'from_zmq' + description: 'Connects to a remote ZeroMQ publisher and receives events.' + example: 'from_zmq "tcp://collector.example.com:5555", prefix="alerts/" { read_json }' + path: 'reference/operators/from_zmq' - name: 'from_stdin' description: 'Reads and parses events from standard input.' example: 'from_stdin { read_json }' @@ -631,6 +635,10 @@ operators: description: 'Parses an incoming `Zeek TSV` stream into events.' example: 'read_zeek_tsv' path: 'reference/operators/read_zeek_tsv' + - name: 'accept_zmq' + description: 'Listens on a ZeroMQ endpoint and receives events.' + example: 'accept_zmq "tcp://0.0.0.0:5555", prefix="alerts/" { read_json }' + path: 'reference/operators/accept_zmq' - name: 'save_amqp' description: 'Saves a byte stream via AMQP messages.' example: 'save_amqp' @@ -711,6 +719,10 @@ operators: description: 'Sends events to the Microsoft Azure Logs Ingestion API.' example: 'to_azure_log_analytics tenant_id="...", workspace_id="..."' path: 'reference/operators/to_azure_log_analytics' + - name: 'to_zmq' + description: 'Connects to a remote ZeroMQ subscriber endpoint and sends events.' + example: 'to_zmq "tcp://collector.example.com:5555", encoding="json", prefix=kind + "/"' + path: 'reference/operators/to_zmq' - name: 'to_clickhouse' description: 'Sends events to a ClickHouse table.' example: 'to_clickhouse table="my_table"' @@ -731,6 +743,10 @@ operators: description: 'Sends unstructured events to a Google SecOps Chronicle instance.' example: 'to_google_secops …' path: 'reference/operators/to_google_secops' + - name: 'serve_zmq' + description: 'Listens on a ZeroMQ endpoint and sends events.' + example: 'serve_zmq "tcp://0.0.0.0:5555", encoding="json", prefix=kind + "/"' + path: 'reference/operators/serve_zmq' - name: 'to_hive' description: 'Writes events to a URI using hive partitioning.' example: 'to_hive "s3://…", partition_by=[x]' @@ -2195,6 +2211,14 @@ from_http "0.0.0.0:8080" + + +```tql +from_zmq "tcp://collector.example.com:5555", prefix="alerts/" { read_json } +``` + + + ```tql @@ -2259,6 +2283,14 @@ from_velociraptor subscribe="Windows" + + +```tql +accept_zmq "tcp://0.0.0.0:5555", prefix="alerts/" { read_json } +``` + + + ## Node @@ -2509,6 +2541,14 @@ to_azure_log_analytics tenant_id="...", workspace_id="..." + + +```tql +to_zmq "tcp://collector.example.com:5555", encoding="json", prefix=kind + "/" +``` + + + ```tql @@ -2549,6 +2589,14 @@ to_google_secops … + + +```tql +serve_zmq "tcp://0.0.0.0:5555", encoding="json", prefix=kind + "/" +``` + + + ```tql diff --git a/src/content/docs/reference/operators/accept_zmq.mdx b/src/content/docs/reference/operators/accept_zmq.mdx new file mode 100644 index 000000000..d195d5107 --- /dev/null +++ b/src/content/docs/reference/operators/accept_zmq.mdx @@ -0,0 +1,82 @@ +--- +title: accept_zmq +category: Inputs/Events +example: 'accept_zmq "tcp://0.0.0.0:5555", prefix="alerts/" { read_json }' +--- + +import Op from '@components/see-also/Op.astro'; +import Integration from '@components/see-also/Integration.astro'; + +Listens on a ZeroMQ endpoint and receives events. + +```tql +accept_zmq endpoint:string, [prefix=string, keep_prefix=bool, { … }] +``` + +## Description + +Binds a ZeroMQ `SUB` socket to the specified endpoint and receives messages that +match the configured subscription prefix. + +Use `accept_zmq` when Tenzir should own the listening endpoint. This matches the +naming used by other transport operators such as accept_tcp, even +though ZeroMQ itself calls this binding rather than accepting. + +As with from_zmq, the `prefix` option uses ZeroMQ's raw subscription +filtering. When `keep_prefix=false`, the operator strips the matched prefix +before handing the remaining bytes to the nested pipeline. + +### `endpoint: string` + +The endpoint to listen on, for example `tcp://0.0.0.0:5555`, `ipc://path`, or +`inproc://name`. + +### `prefix = string (optional)` + +A constant subscription prefix to install on the `SUB` socket. + +The expression must evaluate to a string before the operator starts receiving +messages. It cannot depend on event fields. + +Defaults to the empty string, which subscribes to all messages. + +### `keep_prefix = bool (optional)` + +Whether to keep the matched prefix in the bytes that are passed to the nested +pipeline. + +Defaults to `false`. + +### `{ … } (optional)` + +The pipeline to run for incoming message payloads. It receives bytes and must +produce events, for example `{ read_json }` or `{ read_syslog }`. + +If you omit the nested pipeline, the operator emits one event per message with a +single field `message` containing the message payload as a `blob`. + +## Examples + +### Listen for JSON messages + +```tql +accept_zmq "tcp://0.0.0.0:5555" { + read_json +} +``` + +### Listen with a subscription prefix + +```tql +accept_zmq "tcp://0.0.0.0:5555", prefix="suricata/" { + read_suricata +} +``` + +## See Also + +- from_zmq +- to_zmq +- serve_zmq +- load_zmq +- zeromq diff --git a/src/content/docs/reference/operators/from.mdx b/src/content/docs/reference/operators/from.mdx index 47639293e..4585d70c2 100644 --- a/src/content/docs/reference/operators/from.mdx +++ b/src/content/docs/reference/operators/from.mdx @@ -144,14 +144,14 @@ load_tcp "tcp://0.0.0.0:12345", parallel=10 { | `ftp`, `ftps` | load_ftp | `from "ftp://example.com/file.json"` | | `gs` | load_gcs | `from "gs://bucket/object.json"` | | `http`, `https` | load_http | `from "http://example.com/file.json"` | -| `inproc` | load_zmq | `from "inproc://127.0.0.1:56789" { read_json }` | +| `inproc` | from_zmq | `from "inproc://worker", prefix="alerts/" { read_json }` | | `kafka` | load_kafka | `from "kafka://topic" { read_json }` | | `opensearch` | from_opensearch | `from "opensearch://1.2.3.4:9200` | | `s3` | load_s3 | `from "s3://bucket/file.json"` | | `sqs` | load_sqs | `from "sqs://my-queue" { read_json }` | | `tcp` | load_tcp | `from "tcp://127.0.0.1:13245" { read_json }` | | `udp` | load_udp | `from "udp://127.0.0.1:56789" { read_json }` | -| `zmq` | load_zmq | `from "zmq://127.0.0.1:56789" { read_json }` | +| `zmq` | from_zmq | `from "zmq://127.0.0.1:56789", prefix="alerts/" { read_json }` | Please see the respective operator pages for details on the URI's locator format. diff --git a/src/content/docs/reference/operators/from_zmq.mdx b/src/content/docs/reference/operators/from_zmq.mdx new file mode 100644 index 000000000..5fa59c6b7 --- /dev/null +++ b/src/content/docs/reference/operators/from_zmq.mdx @@ -0,0 +1,93 @@ +--- +title: from_zmq +category: Inputs/Events +example: 'from_zmq "tcp://collector.example.com:5555", prefix="alerts/" { read_json }' +--- + +import Op from '@components/see-also/Op.astro'; +import Integration from '@components/see-also/Integration.astro'; + +Connects to a remote ZeroMQ publisher and receives events. + +```tql +from_zmq endpoint:string, [prefix=string, keep_prefix=bool, { … }] +``` + +## Description + +Connects to the specified ZeroMQ endpoint as a `SUB` socket and receives +messages that match the configured subscription prefix. + +Tenzir documents these operators for PUB/SUB-style use. ZeroMQ itself does not +have a first-class notion of a topic. Instead, the `prefix` option performs a +raw prefix match on the incoming message bytes, using ZeroMQ subscription +filtering at the socket. + +When `keep_prefix=false`, the operator strips the matched prefix from the +message before running the nested pipeline. This lets you combine prefix-based +routing at the transport layer with regular `read_*` operators inside TQL. + +If the connection fails, the operator retries with exponential backoff. + +### `endpoint: string` + +The remote endpoint to connect to. This is typically a ZeroMQ endpoint such as +`tcp://host:port`, `ipc://path`, or `inproc://name`. + +### `prefix = string (optional)` + +A constant subscription prefix to install on the `SUB` socket. + +The expression must evaluate to a string before the operator starts receiving +messages. It cannot depend on event fields. + +Defaults to the empty string, which subscribes to all messages. + +### `keep_prefix = bool (optional)` + +Whether to keep the matched prefix in the bytes that are passed to the nested +pipeline. + +Defaults to `false`. + +### `{ … } (optional)` + +The pipeline to run for incoming message payloads. It receives bytes and must +produce events, for example `{ read_json }` or `{ read_syslog }`. + +If you omit the nested pipeline, the operator emits one event per message with a +single field `message` containing the message payload as a `blob`. + +## Examples + +### Connect to a publisher and parse JSON + +```tql +from_zmq "tcp://collector.example.com:5555" { + read_json +} +``` + +### Subscribe to a prefixed stream + +```tql +from_zmq "tcp://collector.example.com:5555", prefix="alerts/" { + read_ndjson +} +``` + +### Keep the matched prefix + +```tql +from_zmq "tcp://collector.example.com:5555", prefix="syslog ", keep_prefix=true { + read_syslog +} +``` + +## See Also + +- accept_zmq +- to_zmq +- serve_zmq +- load_zmq +- zeromq diff --git a/src/content/docs/reference/operators/load_zmq.mdx b/src/content/docs/reference/operators/load_zmq.mdx index ebacb3e85..5b2ea1707 100644 --- a/src/content/docs/reference/operators/load_zmq.mdx +++ b/src/content/docs/reference/operators/load_zmq.mdx @@ -4,6 +4,14 @@ category: Inputs/Bytes example: 'load_zmq' --- +import Op from '@components/see-also/Op.astro'; +import Integration from '@components/see-also/Integration.astro'; + +:::caution[Deprecated] +Use from_zmq for connect mode or accept_zmq for bind mode +when you want event-oriented ZeroMQ pipelines. +::: + Receives ZeroMQ messages. ```tql @@ -73,5 +81,7 @@ read_json ## See Also +- from_zmq +- accept_zmq - save_zmq - zeromq diff --git a/src/content/docs/reference/operators/save_zmq.mdx b/src/content/docs/reference/operators/save_zmq.mdx index fcb21b52b..bc52177e5 100644 --- a/src/content/docs/reference/operators/save_zmq.mdx +++ b/src/content/docs/reference/operators/save_zmq.mdx @@ -4,6 +4,14 @@ category: Outputs/Bytes example: 'save_zmq' --- +import Op from '@components/see-also/Op.astro'; +import Integration from '@components/see-also/Integration.astro'; + +:::caution[Deprecated] +Use to_zmq for connect mode or serve_zmq for bind mode when +you want event-oriented ZeroMQ pipelines. +::: + Sends bytes as ZeroMQ messages. ```tql @@ -59,5 +67,7 @@ save_zmq connect=true ## See Also +- to_zmq +- serve_zmq - load_zmq - zeromq diff --git a/src/content/docs/reference/operators/serve_zmq.mdx b/src/content/docs/reference/operators/serve_zmq.mdx new file mode 100644 index 000000000..19379a3fd --- /dev/null +++ b/src/content/docs/reference/operators/serve_zmq.mdx @@ -0,0 +1,76 @@ +--- +title: serve_zmq +category: Outputs/Events +example: 'serve_zmq "tcp://0.0.0.0:5555", encoding="json", prefix=kind + "/"' +--- + +import Op from '@components/see-also/Op.astro'; +import Integration from '@components/see-also/Integration.astro'; + +Listens on a ZeroMQ endpoint and sends events. + +```tql +serve_zmq endpoint:string, encoding=string, [prefix=string, monitor=bool] +``` + +## Description + +Binds a ZeroMQ `PUB` socket to the specified endpoint and publishes one message +per input event. + +The operator serializes each event with the selected `encoding` and optionally +prepends a prefix to the serialized bytes before publishing the message. This +lets subscribers use ZeroMQ's native prefix filtering while keeping the event +payload available to a `read_*` operator on the receiving side. + +Use `serve_zmq` when Tenzir should own the listening endpoint. This mirrors the +transport-oriented naming used by operators such as serve_tcp. + +### `endpoint: string` + +The endpoint to listen on, for example `tcp://0.0.0.0:5555`, `ipc://path`, or +`inproc://name`. + +### `encoding = string` + +The encoding to use when serializing input events into ZeroMQ message payloads. + +Use the same format names that you would otherwise select with a `write_*` +operator, for example `json`, `ndjson`, `csv`, or `yaml`. + +### `prefix = string (optional)` + +An expression that evaluates to the prefix to prepend to each published +message. + +This expression may depend on event fields. The operator evaluates it for every +input event. + +### `monitor = bool (optional)` + +Waits for the first peer connection before publishing messages on TCP +transports. + +## Examples + +### Listen and publish JSON + +```tql +export +serve_zmq "tcp://0.0.0.0:5555", encoding="json" +``` + +### Publish with a dynamic prefix + +```tql +export +serve_zmq "tcp://0.0.0.0:5555", encoding="json", prefix=kind + "/" +``` + +## See Also + +- to_zmq +- from_zmq +- accept_zmq +- save_zmq +- zeromq diff --git a/src/content/docs/reference/operators/to.mdx b/src/content/docs/reference/operators/to.mdx index 56da630a5..d9d640ff1 100644 --- a/src/content/docs/reference/operators/to.mdx +++ b/src/content/docs/reference/operators/to.mdx @@ -91,14 +91,14 @@ If no scheme is present, the connector attempts to save to the local filesystem. | `ftp`, `ftps` | save_ftp | `to "ftp://example.com/file.json"` | | `gs` | save_gcs | `to "gs://bucket/object.json"` | | `http`, `https` | save_http | `to "http://example.com/file.json"` | -| `inproc` | save_zmq | `to "inproc://127.0.0.1:56789" { write_json }` | +| `inproc` | to_zmq | `to "inproc://worker", encoding="json", prefix="alerts/"` | | `kafka` | save_kafka | `to "kafka://topic" { write_json }` | | `opensearch` | to_opensearch | `to "opensearch://…` | | `s3` | save_s3 | `to "s3://bucket/file.json"` | | `sqs` | save_sqs | `to "sqs://my-queue" { write_json }` | | `tcp` | save_tcp | `to "tcp://127.0.0.1:56789" { write_json }` | | `udp` | save_udp | `to "udp://127.0.0.1:56789" { write_json }` | -| `zmq` | save_zmq | `to "zmq://127.0.0.1:56789" { write_json }` | +| `zmq` | to_zmq | `to "zmq://127.0.0.1:56789", encoding="json", prefix="alerts/"` | | `smtp`, `smtps`, `mailto`, `email` | save_email | `to "smtp://john@example.com"` | Please see the respective operator pages for details on the URI's locator format. diff --git a/src/content/docs/reference/operators/to_zmq.mdx b/src/content/docs/reference/operators/to_zmq.mdx new file mode 100644 index 000000000..7b5beae7d --- /dev/null +++ b/src/content/docs/reference/operators/to_zmq.mdx @@ -0,0 +1,75 @@ +--- +title: to_zmq +category: Outputs/Events +example: 'to_zmq "tcp://collector.example.com:5555", encoding="json", prefix=kind + "/"' +--- + +import Op from '@components/see-also/Op.astro'; +import Integration from '@components/see-also/Integration.astro'; + +Connects to a remote ZeroMQ subscriber endpoint and sends events. + +```tql +to_zmq endpoint:string, encoding=string, [prefix=string, monitor=bool] +``` + +## Description + +Connects to the specified ZeroMQ endpoint as a `PUB` socket and publishes one +message per input event. + +The operator serializes each event with the selected `encoding` and optionally +prepends a prefix to the serialized bytes before publishing the message. This +prefix is intended for PUB/SUB-style routing and matches the `prefix` option of +from_zmq and accept_zmq. + +If the connection fails, the operator retries with exponential backoff. + +### `endpoint: string` + +The remote endpoint to connect to. This is typically a ZeroMQ endpoint such as +`tcp://host:port`, `ipc://path`, or `inproc://name`. + +### `encoding = string` + +The encoding to use when serializing input events into ZeroMQ message payloads. + +Use the same format names that you would otherwise select with a `write_*` +operator, for example `json`, `ndjson`, `csv`, or `yaml`. + +### `prefix = string (optional)` + +An expression that evaluates to the prefix to prepend to each published +message. + +Unlike the read-side `prefix`, this expression may depend on event fields. The +operator evaluates it for every input event. + +### `monitor = bool (optional)` + +Waits for the first peer connection before publishing messages on TCP +transports. + +## Examples + +### Connect and publish JSON + +```tql +export +to_zmq "tcp://collector.example.com:5555", encoding="json" +``` + +### Publish per-event prefixes + +```tql +export +to_zmq "tcp://collector.example.com:5555", encoding="ndjson", prefix=source + "/" +``` + +## See Also + +- serve_zmq +- from_zmq +- accept_zmq +- save_zmq +- zeromq From 799650a640b3448133f40ab31fe79a15cb2a4dc6 Mon Sep 17 00:00:00 2001 From: Tobias Mayer Date: Mon, 13 Apr 2026 12:52:21 +0200 Subject: [PATCH 2/2] Clarify ZeroMQ rollout docs --- src/content/docs/integrations/zeromq.mdx | 10 +--------- src/content/docs/reference/operators/from.mdx | 4 ++-- src/content/docs/reference/operators/load_zmq.mdx | 7 ++++--- src/content/docs/reference/operators/save_zmq.mdx | 6 +++--- src/content/docs/reference/operators/to.mdx | 4 ++-- 5 files changed, 12 insertions(+), 19 deletions(-) diff --git a/src/content/docs/integrations/zeromq.mdx b/src/content/docs/integrations/zeromq.mdx index 9242df2db..c768d3fcd 100644 --- a/src/content/docs/integrations/zeromq.mdx +++ b/src/content/docs/integrations/zeromq.mdx @@ -12,7 +12,7 @@ connect mode. Use the IP address `0.0.0.0` to listen on all available network interfaces. -The event-oriented ZeroMQ operators are: +The new executor provides event-oriented ZeroMQ operators: - from_zmq: Connects as a `SUB` socket and receives events. - accept_zmq: Binds a `SUB` socket and receives events. @@ -32,14 +32,6 @@ operating before the subscriber. To avoid data loss due to such races, pass save_zmq operator to wait until at least one remote peer has connected on TCP transports. -:::tip[URL Support] -The URL scheme `zmq://` dispatches to -from_zmq and -to_zmq for URL-style use via from and to. -Use accept_zmq and serve_zmq when Tenzir should bind the -endpoint. -::: - ## Examples ### Connect to a remote publisher and parse JSON diff --git a/src/content/docs/reference/operators/from.mdx b/src/content/docs/reference/operators/from.mdx index 4585d70c2..4e5c26311 100644 --- a/src/content/docs/reference/operators/from.mdx +++ b/src/content/docs/reference/operators/from.mdx @@ -144,14 +144,14 @@ load_tcp "tcp://0.0.0.0:12345", parallel=10 { | `ftp`, `ftps` | load_ftp | `from "ftp://example.com/file.json"` | | `gs` | load_gcs | `from "gs://bucket/object.json"` | | `http`, `https` | load_http | `from "http://example.com/file.json"` | -| `inproc` | from_zmq | `from "inproc://worker", prefix="alerts/" { read_json }` | +| `inproc` | load_zmq | `from "inproc://worker" { read_json }` | | `kafka` | load_kafka | `from "kafka://topic" { read_json }` | | `opensearch` | from_opensearch | `from "opensearch://1.2.3.4:9200` | | `s3` | load_s3 | `from "s3://bucket/file.json"` | | `sqs` | load_sqs | `from "sqs://my-queue" { read_json }` | | `tcp` | load_tcp | `from "tcp://127.0.0.1:13245" { read_json }` | | `udp` | load_udp | `from "udp://127.0.0.1:56789" { read_json }` | -| `zmq` | from_zmq | `from "zmq://127.0.0.1:56789", prefix="alerts/" { read_json }` | +| `zmq` | load_zmq | `from "zmq://127.0.0.1:56789" { read_json }` | Please see the respective operator pages for details on the URI's locator format. diff --git a/src/content/docs/reference/operators/load_zmq.mdx b/src/content/docs/reference/operators/load_zmq.mdx index 5b2ea1707..b6334acd7 100644 --- a/src/content/docs/reference/operators/load_zmq.mdx +++ b/src/content/docs/reference/operators/load_zmq.mdx @@ -7,9 +7,10 @@ example: 'load_zmq' import Op from '@components/see-also/Op.astro'; import Integration from '@components/see-also/Integration.astro'; -:::caution[Deprecated] -Use from_zmq for connect mode or accept_zmq for bind mode -when you want event-oriented ZeroMQ pipelines. +:::note[New executor] +For the new executor, use from_zmq for connect mode or +accept_zmq for bind mode when you want event-oriented ZeroMQ +pipelines. ::: Receives ZeroMQ messages. diff --git a/src/content/docs/reference/operators/save_zmq.mdx b/src/content/docs/reference/operators/save_zmq.mdx index bc52177e5..9dba7080b 100644 --- a/src/content/docs/reference/operators/save_zmq.mdx +++ b/src/content/docs/reference/operators/save_zmq.mdx @@ -7,9 +7,9 @@ example: 'save_zmq' import Op from '@components/see-also/Op.astro'; import Integration from '@components/see-also/Integration.astro'; -:::caution[Deprecated] -Use to_zmq for connect mode or serve_zmq for bind mode when -you want event-oriented ZeroMQ pipelines. +:::note[New executor] +For the new executor, use to_zmq for connect mode or +serve_zmq for bind mode when you want event-oriented ZeroMQ pipelines. ::: Sends bytes as ZeroMQ messages. diff --git a/src/content/docs/reference/operators/to.mdx b/src/content/docs/reference/operators/to.mdx index d9d640ff1..4f82df5f8 100644 --- a/src/content/docs/reference/operators/to.mdx +++ b/src/content/docs/reference/operators/to.mdx @@ -91,14 +91,14 @@ If no scheme is present, the connector attempts to save to the local filesystem. | `ftp`, `ftps` | save_ftp | `to "ftp://example.com/file.json"` | | `gs` | save_gcs | `to "gs://bucket/object.json"` | | `http`, `https` | save_http | `to "http://example.com/file.json"` | -| `inproc` | to_zmq | `to "inproc://worker", encoding="json", prefix="alerts/"` | +| `inproc` | save_zmq | `to "inproc://worker" { write_json }` | | `kafka` | save_kafka | `to "kafka://topic" { write_json }` | | `opensearch` | to_opensearch | `to "opensearch://…` | | `s3` | save_s3 | `to "s3://bucket/file.json"` | | `sqs` | save_sqs | `to "sqs://my-queue" { write_json }` | | `tcp` | save_tcp | `to "tcp://127.0.0.1:56789" { write_json }` | | `udp` | save_udp | `to "udp://127.0.0.1:56789" { write_json }` | -| `zmq` | to_zmq | `to "zmq://127.0.0.1:56789", encoding="json", prefix="alerts/"` | +| `zmq` | save_zmq | `to "zmq://127.0.0.1:56789" { write_json }` | | `smtp`, `smtps`, `mailto`, `email` | save_email | `to "smtp://john@example.com"` | Please see the respective operator pages for details on the URI's locator format.