diff --git a/content/shared/v3-core-plugins/_index.md b/content/shared/v3-core-plugins/_index.md index bb5515c18..2566d551d 100644 --- a/content/shared/v3-core-plugins/_index.md +++ b/content/shared/v3-core-plugins/_index.md @@ -219,6 +219,39 @@ obj_to_log = {"hello": "world"} influxdb3_local.info("This is an info message with an object", obj_to_log) ``` +### Trigger Settings + +#### Control trigger execution + +By default, triggers run synchronously—each instance waits for previous instances to complete before executing. + +To allow multiple instances of the same trigger to run simultaneously, configure triggers to run asynchronously: + +```bash +# Create an asynchronous trigger +influx create trigger --run-asynchronously + +#### Configure error handling +#### Configure error behavior for plugins + +The Processing engine logs all plugin errors to stdout and the `system.processing_engine_logs` system table. + +To configure additional error handling for a trigger, use the `--error-behavior` flag: + +- `--error-behavior retry`: Attempt to run the plugin again immediately after an error +- `--error-behavior disable`: Automatically disable the plugin when an error occurs (can be re-enabled later via CLI) + +```bash +# Create a trigger that retries on error +influx create trigger --error-behavior retry + +# Create a trigger that disables the plugin on error +influx create trigger --error-behavior disable +This behavior can be changed by specifying the "Error behavior", via the `--error-behavior` flag. Apart from the default `log`, you may set + +* `--error-behavior retry` will immediately retry the plugin trigger in the event of error. +* `--error-behavior disable` will turn off the plugin as soon as an error occurs. You can enable it again using the CLI. + ### Trigger arguments A plugin can receive arguments from the trigger that runs it. @@ -388,6 +421,7 @@ influxdb3 create trigger \ On Request plugins are triggered by a request to a custom HTTP API endpoint. The plugin receives the shared API, query parameters `Dict[str, str]`, request headers `Dict[str, str]`, the request body (as bytes), and any arguments passed in the trigger definition. +On Request plugin responses follow conventions for [Flask responses](https://flask.palletsprojects.com/en/stable/quickstart/#about-responses). #### Example: On Request plugin @@ -411,7 +445,7 @@ def process_request(influxdb3_local, query_parameters, request_headers, request_ influxdb3_local.write(line) - return 200, {"Content-Type": "application/json"}, json.dumps({"status": "ok", "line": line_str}) + return {"status": "ok", "line": line_str} ``` #### On Request trigger configuration