Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: update plugin error handling and request response docs. #5876

Merged
merged 6 commits into from
Mar 13, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion content/shared/v3-core-plugins/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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

Expand All @@ -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
Expand Down