All skills
aws avatar

/timestream-influxdb

@ba14cd9

Retrieves authoritative guidance on Amazon Timestream for InfluxDB across its supported engine variants. Applicable to any InfluxDB-on-AWS request including engine variant and licensing selection, provisioning and IAM, encryption at rest (AWS-owned and customer-managed KMS keys, key policies, and key lifecycle), schema design (tags vs fields, cardinality, HTTP/sensor/metric data modeling), migration from LiveAnalytics, Processing Engine plugins, connectivity (database endpoints and private or public access), and write/query errors.

Use this Skill: https://skilld.dev/gh/aws/agent-toolkit-for-aws/timestream-influxdb

This session only. Nothing lands on disk.

referencesprocessing-engine-guide.md

≈1.8k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Processing Engine Guide

When to Activate

User asks about data processing plugins, triggers, downsampling, data transformation, alerting, or the Processing Engine feature of InfluxDB 3.

Prerequisite: Processing Engine is InfluxDB 3 only. If the user is on V2, inform them and offer to route to migration.

Overview

The Processing Engine is an embedded Python virtual machine inside InfluxDB 3 that extends database functionality with plugins. Only InfluxData certified plugins are supported — custom user-written plugins are not supported.

Available Certified Plugins

Plugin Trigger Type Use Case
Downsampler Scheduled, HTTP Aggregate high-frequency data into lower-resolution summaries
Basic Transformation Scheduled, Data write Field name normalization, unit conversions, data cleaning
MAD Anomaly Detection Data write Real-time outlier detection using Median Absolute Deviation
State Change Monitor Scheduled, Data write Track field value changes, alert on state transitions
System Metrics Collector Scheduled Collect CPU, memory, disk, network metrics from the host
LiveAnalytics Migration HTTP Migrate data from Timestream for LiveAnalytics (smaller migrations under 1B records)

Source code and documentation: InfluxData Plugins Repository

Trigger Types

Trigger Specification When It Fires
Data write table:<name> or all_tables When data is written to tables
Scheduled every:<interval> or cron:<expression> At specified intervals
HTTP request request:<endpoint> When HTTP requests hit the plugin endpoint

Creating Triggers

# Load V3_TOKEN from Secrets Manager as shown in the getting-started guide.
export INFLUXDB3_AUTH_TOKEN="$V3_TOKEN"

# Downsampler — aggregate CPU metrics hourly
influxdb3 create trigger \
  --database metrics \
  --plugin-filename "downsampler/downsampler.py" \
  --trigger-spec "every:1h" \
  --trigger-arguments 'source_measurement=cpu_detailed,target_measurement=cpu_hourly,interval=1h,window=6h,calculations="usage:avg.max_usage:max"' \
  cpu_downsampler

# MAD Anomaly Detection — real-time outlier detection on sensor data
# Fetch the Slack webhook from Secrets Manager — never hardcode secrets in trigger arguments
SLACK_WEBHOOK=$(aws secretsmanager get-secret-value --secret-id influxdb3/slack-webhook --query SecretString --output text)
influxdb3 create trigger \
  --database sensors \
  --plugin-filename "mad_check/mad_check_plugin.py" \
  --trigger-spec "all_tables" \
  --trigger-arguments "measurement=temperature_sensors,mad_thresholds=\"temp:2.5:20:5\",senders=slack,slack_webhook_url=\"$SLACK_WEBHOOK\"" \
  temp_anomaly_detector

# Basic transformation — clean field names on incoming data
influxdb3 create trigger \
  --database iot \
  --plugin-filename "basic_transformation/basic_transformation.py" \
  --trigger-spec "all_tables" \
  --trigger-arguments 'measurement=raw_sensors,target_measurement=clean_sensors,names_transformations=.*:"snake alnum_underscore_only"' \
  sensor_cleaner

# State Change Monitor — alert on equipment status changes
influxdb3 create trigger \
  --database factory \
  --plugin-filename "state_change/state_change_check_plugin.py" \
  --trigger-spec "every:5m" \
  --trigger-arguments 'measurement=equipment,field_change_count="status:3",window=15m,senders=slack' \
  equipment_monitor

# System Metrics Collector — collect host metrics every 30s
influxdb3 create trigger \
  --database monitoring \
  --plugin-filename "system_metrics/system_metrics.py" \
  --trigger-spec "every:30s" \
  --trigger-arguments 'hostname=db-server-01,include_cpu=true,include_memory=true,include_disk=true,include_network=true' \
  system_monitor

unset INFLUXDB3_AUTH_TOKEN V3_TOKEN SLACK_WEBHOOK

Managing Triggers

# Load V3_TOKEN from Secrets Manager as shown in the getting-started guide.
export INFLUXDB3_AUTH_TOKEN="$V3_TOKEN"

# List triggers
influxdb3 show system summary --database <db>

# Disable a trigger
influxdb3 disable trigger --database <db> --trigger-name <name>

# Delete a trigger
influxdb3 delete trigger --database <db> --trigger-name <name>

unset INFLUXDB3_AUTH_TOKEN V3_TOKEN

Configuration Options

Trigger arguments: Pass key=value pairs to configure plugin behavior:

--trigger-arguments 'threshold=90,notify_email=admin@example.com'

Secrets in plugin arguments: Do not hardcode webhook URLs, API keys, or other credentials directly in scripts or source control. Store them in AWS Secrets Manager and retrieve them only when creating the trigger, using a transient variable as shown above. If a plugin supports a reference-based secret mechanism, prefer it over embedding a resolved value.

Exposure limitation: A resolved secret written into a trigger specification can be queried in plaintext through system.processing_engine_triggers. Restrict access to database and system tables, and rotate any value exposed this way. Require encryption at rest and follow encryption guidance; verify customer-managed KMS key support and encryption scope before recommending it. At-rest encryption protects stored media but does not prevent an authorized database user from querying the plaintext trigger argument. Verify native audit coverage for reads of this system table and monitor those events only when the engine documentation confirms they exist; do not claim that CloudTrail records data-plane reads.

Error handling: --error-behavior log (default), retry, or disable

Async execution: --run-asynchronous for heavy processing tasks

TOML config files: For complex configurations, use --trigger-arguments "config_file_path=config.toml"

Multi-Node Deployment

Plugin Type Run On Reason
Data write plugins Ingester nodes Process data at ingestion point
HTTP request plugins Querier nodes Handle API traffic
Scheduled plugins Any configured node Pin to single node to avoid duplicates

Monitoring Plugin Execution

-- View plugin logs
SELECT * FROM system.processing_engine_logs
WHERE trigger_name = 'your_trigger_name'
  AND time > now() - INTERVAL '1 hour'
ORDER BY event_time DESC;

-- Check trigger status
SELECT * FROM system.processing_engine_triggers
WHERE database = 'your_database';

Troubleshooting

Issue Fix
Plugin not triggering Verify trigger is enabled via influxdb3 show system summary. Check trigger spec syntax
High memory usage Reduce window sizes, adjust batch processing intervals
Duplicate processing on multi-node Pin scheduled triggers to a single node
Too many alerts Increase trigger counts/thresholds, add debounce duration

What's NOT Supported

  • Custom user-written plugins — only InfluxData certified plugins are available. Custom user-written plugins are not supported.
  • Custom Python package installation — plugins run with the packages bundled in the certified plugin set
  • Arbitrary filesystem or network access — plugins operate within a constrained sandbox

Source: SKILL.md on GitHub

1 warningtoday3 checks · Risk SAFE
  • Gen Agent Trust Hubtoday

    This skill provides authoritative guidance for Amazon Timestream for InfluxDB and follows established security best practices. It incorporates input validation for CLI parameters, secure secret retrieval via AWS Secrets Manager, and restrictive file permissions for local tokens. The skill also handles data handoffs from parent skills using schema validation and scope checks to manage potential injection risks.

  • Sockettoday

    No alerts

  • Snyktoday

    Risk: MEDIUM · 1 issue

Signed by skilld at ba14cd9. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 2 days ago
version
2

README badge

README badge for aws/agent-toolkit-for-aws/timestream-influxdb