8.4 KiB
The influxdb3 create trigger
command creates a new trigger for the
processing engine.
Usage
influxdb3 create trigger [OPTIONS] \
--database <DATABASE_NAME> \
--token <AUTH_TOKEN> \
--plugin-filename <PLUGIN_FILENAME> \
--trigger-spec <TRIGGER_SPECIFICATION> \
<TRIGGER_NAME>
Arguments
- TRIGGER_NAME: A name for the new trigger.
Options
Option | Description | |
---|---|---|
-H |
--host |
Host URL of the running {{< product-name >}} server (default is http://127.0.0.1:8181 ) |
-d |
--database |
({{< req >}}) Name of the database to operate on |
--token |
({{< req >}}) Authentication token | |
--plugin-filename |
({{< req >}}) Name of the file, stored in the server's plugin-dir , that contains the Python plugin code to run |
|
--trigger-spec |
Trigger specification: table:<TABLE_NAME> , all_tables , every:<DURATION> , cron:<EXPRESSION> , or request:<REQUEST_PATH> |
|
--trigger-arguments |
Additional arguments for the trigger, in the format key=value , separated by commas (for example, arg1=val1,arg2=val2 ) |
|
--disabled |
Create the trigger in disabled state | |
--error-behavior |
Error handling behavior: log , retry , or disable |
|
--run-asynchronous |
Run the trigger asynchronously, allowing multiple triggers to run simultaneously (default is synchronous) | |
--tls-ca |
Path to a custom TLS certificate authority (for testing or self-signed certificates) | |
-h |
--help |
Print help information |
--help-all |
Print detailed help information |
If you want to use a plugin from the Plugin Library repo, use the URL path with gh:
specified as the prefix.
For example, to use the System Metrics plugin, the plugin filename is gh:examples/schedule/system_metrics/system_metrics.py
.
Option environment variables
You can use the following environment variables to set command options:
Environment Variable | Option |
---|---|
INFLUXDB3_HOST_URL |
--host |
INFLUXDB3_DATABASE_NAME |
--database |
INFLUXDB3_AUTH_TOKEN |
--token |
Examples
The following examples show how to use the influxdb3 create trigger
command to create triggers in different scenarios.
- Create a trigger for a specific table
- Create a trigger for all tables
- Create a trigger with a schedule
- Create a trigger for HTTP requests
- Create a trigger with additional arguments
- Create a disabled trigger
- Create a trigger with error handling
Replace the following placeholders with your values:
- {{% code-placeholder-key %}}
DATABASE_NAME
{{% /code-placeholder-key %}}: Database name - {{% code-placeholder-key %}}
AUTH_TOKEN
{{% /code-placeholder-key %}}: Authentication token - {{% code-placeholder-key %}}
PLUGIN_FILENAME
{{% /code-placeholder-key %}}: Python plugin filename - {{% code-placeholder-key %}}
TRIGGER_NAME
{{% /code-placeholder-key %}}: Name of the trigger to create - {{% code-placeholder-key %}}
TABLE_NAME
{{% /code-placeholder-key %}}: Name of the table to trigger on
{{% code-placeholders "(DATABASE|TRIGGER)_NAME|AUTH_TOKEN|TABLE_NAME" %}}
Create a trigger for a specific table
Create a trigger that processes data from a specific table.
influxdb3 create trigger \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--plugin-filename PLUGIN_FILENAME \
--trigger-spec table:TABLE_NAME \
TRIGGER_NAME
PLUGIN_FILENAME
must implement the data write plugin interface.
Create a trigger for all tables
Create a trigger that applies to all tables in the specified database.
influxdb3 create trigger \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--plugin-filename <PLUGIN_FILENAME> \
--trigger-spec all_tables \
TRIGGER_NAME
PLUGIN_FILENAME
must implement the data write plugin interface.
This is useful when you want a trigger to apply to any table in the database, regardless of name.
Create a trigger with a schedule
Create a trigger that runs at a specific interval using a duration. Supported duration units: s
(seconds), m
(minutes), h
(hours), d
(days), w
(weeks), M
(months), y
(years). Maximum interval is 1 year.
influxdb3 create trigger \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--plugin-filename <PLUGIN_FILENAME> \
--trigger-spec every:5m \
TRIGGER_NAME
Create a trigger that runs based on a cron schedule using extended 6-field cron format. The cron expression follows the format:
second minute hour day_of_month month day_of_week
Fields:
- second: 0-59
- minute: 0-59
- hour: 0-23
- day_of_month: 1-31
- month: 1-12 or JAN-DEC
- day_of_week: 0-7 (0 or 7 is Sunday) or SUN-SAT
Example: Run at 6:00 AM every weekday (Monday-Friday):
influxdb3 create trigger \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--plugin-filename <PLUGIN_FILENAME> \
--trigger-spec "cron:0 0 6 * * 1-5" \
TRIGGER_NAME
PLUGIN_FILENAME
must implement the scheduled plugin interface.
Create a trigger for HTTP requests
Create a trigger that provides an API endpoint and processes HTTP requests.
influxdb3 create trigger \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--plugin-filename PLUGIN_FILENAME \
--trigger-spec request:REQUEST_PATH \
TRIGGER_NAME
PLUGIN_FILENAME
must implement the HTTP request plugin interface.
Create a trigger with additional arguments
influxdb3 create trigger \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--plugin-filename <PLUGIN_FILENAME> \
--trigger-spec table:TABLE_NAME \
--trigger-arguments arg1=value1,arg2=value2 \
TRIGGER_NAME
Create a disabled trigger
Create a trigger in a disabled state.
influxdb3 create trigger \
--disabled \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--plugin-filename <PLUGIN_FILENAME> \
--trigger-spec table:TABLE_NAME \
TRIGGER_NAME
Creating a trigger in a disabled state prevents it from running immediately. You can enable it later when you're ready to activate it.
Create a trigger with error handling
Log the error to the service output and the system.processing_engine_logs
table:
influxdb3 create trigger \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--plugin-filename <PLUGIN_FILENAME> \
--trigger-spec table:TABLE_NAME \
--error-behavior log \
TRIGGER_NAME
Rerun the trigger if it fails:
influxdb3 create trigger \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--plugin-filename <PLUGIN_FILENAME> \
--trigger-spec table:TABLE_NAME \
--error-behavior retry \
TRIGGER_NAME
Disable the trigger if it fails:
influxdb3 create trigger \
--database DATABASE_NAME \
--token AUTH_TOKEN \
--plugin-filename <PLUGIN_FILENAME> \
--trigger-spec table:TABLE_NAME \
--error-behavior disable \
TRIGGER_NAME
{{% /code-placeholders %}}