mmaitag: AI-based classification
Module Name: |
mmaitag |
Author: |
Adiscon |
Available: |
9.0+ |
Purpose
The mmaitag module enriches log messages with classification tags obtained from an external AI service. Each message is sent to the provider individually and the resulting tag is stored in a custom variable.
Gemini response limits
The Gemini provider bounds each synchronous request so that a stalled or malformed provider response cannot consume resources indefinitely. By default, it accepts at most 1 MiB (1,048,576 bytes) of response data, allows 60 seconds for the complete transfer and 10 seconds to establish the connection, and aborts a transfer that remains below one byte per second for 15 seconds.
These budgets can be tuned per action. Their built-in ceilings preserve a finite defense-in-depth bound: responses cannot exceed 64 MiB, request and connection timeouts cannot exceed one hour, the low-speed threshold cannot exceed 1 MiB per second, and its observation period cannot exceed one hour.
When a request exceeds a limit or otherwise fails, mmaitag uses the
REGULAR fallback tag and records an error without copying the provider
response body into rsyslog diagnostics.
Default labels
Label |
Description |
NOISE |
Can be ignored, redundant, or irrelevant for most purposes |
REGULAR |
Normal messages of operational interest |
IMPORTANT |
Should be logged and may indicate early signs of issues |
CRITICAL |
Indicates immediate or serious problems |
Configuration Parameters
Note
Parameter names are case-insensitive; camelCase is recommended for readability.
Action Parameters
Parameter |
Summary |
|---|---|
Selects which backend provider processes the classification ( |
|
Names the message variable used to store the classification tag. |
|
Specifies the AI model identifier used by the provider. |
|
Provides a custom prompt text used by the AI provider before classifying messages. |
|
Selects which message property is classified instead of the raw message. |
|
Sets the API key used to authenticate with the provider. |
|
Specifies a file containing the API key for the provider. |
|
Sets the maximum Gemini response body size retained for one request. |
|
Sets the maximum total duration of one Gemini request in milliseconds. |
|
Sets the Gemini connection-establishment timeout in milliseconds. |
|
Sets the minimum acceptable Gemini transfer rate in bytes per second. |
|
Sets how long a slow Gemini transfer may remain below the rate threshold. |
Example
module(load="mmaitag")
action(type="mmaitag" provider="gemini" apikey="ABC" tag="$.aitag")
Support: rsyslog Assistant | GitHub Discussions | GitHub Issues: rsyslog source project
Contributing: Source & docs: rsyslog source project
© 2008–2026 Rainer Gerhards and others. Licensed under the Apache License 2.0.