Timestream Influxdb
AWSOfficialPublished by AWS
- Skill
- Tool integration
- Cloud and DevOps
- Apache-2.0
- Low risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides authoritative guidance for managing Amazon Timestream for InfluxDB across its supported engine variants (V2, V2 Read Replica, and V3). It covers provisioning, schema design, migration from LiveAnalytics, and operational tasks like encryption, connectivity, and troubleshooting. The skill emphasizes adherence to specific API models and documentation for each engine variant, ensuring that users follow correct procedures for IAM, networking, and resource lifecycle management.
What it does
- Provides guidance on selecting and provisioning InfluxDB engine variants on AWS.
- Offers instructions for schema design, including tag and field modeling.
- Details procedures for migrating from LiveAnalytics to InfluxDB 3.
- Provides operational commands for resource management using the AWS CLI.
- Outlines security best practices for IAM, encryption at rest, and secret management.
- Assists with troubleshooting connectivity, write, and query errors.
When to use it
- When planning a new deployment of Amazon Timestream for InfluxDB.
- When migrating existing LiveAnalytics workloads to InfluxDB 3.
- When configuring encryption, IAM roles, or network access for database instances.
- When troubleshooting operational issues or performance concerns related to schema design.
- When needing to perform administrative tasks like backups or log delivery configuration.
Advantages
- Ensures adherence to engine-specific API requirements and constraints.
- Promotes secure practices for credential and key management.
- Provides structured workflows for complex tasks like migration and provisioning.
- Reduces configuration errors by enforcing version-specific parameter validation.
Usage examples
- “How do I provision a new InfluxDB 3 cluster?”
- The agent will guide you through the InfluxDB 3 Core creation contract, including the required parameter-group identifier and API fields, while ensuring you apply mandatory resource tags.
- “What is the best way to design my schema for high cardinality data?”
- The agent will explain the difference between tags and fields, advising you to use fields for high-cardinality data to maintain query performance.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/aws/timestream-influxdb/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip timestream-influxdb.zip -d .agents/skills
Documentation by AWS
Amazon Timestream for InfluxDB
Overview
Amazon Timestream for InfluxDB is a managed time-series database with engine variants and deployment types whose capabilities differ. Before comparing them, retrieve the Timestream for InfluxDB documentation and inspect the applicable Create API models. For an existing resource, read its GetDbInstance or GetDbCluster response. Use those sources to verify the engine variant, endpoint port, query languages, data model, authentication flow, deployment types, licensing, and Processing Engine support for the user's Region. Do not infer one engine variant's capabilities from another variant or from examples in this skill.
For new workloads, verify the supported engine variants and recommend InfluxDB 3 when the service documentation identifies it as an option. For existing V2 deployments, verify V2 support before advising whether to stay on V2 or migrate.
Advisory in nature: it recommends actions and provides the AWS CLI and API commands to carry them out (including mutations such as instance/cluster creation and tagging). It does not act autonomously — it executes mutations only in response to an explicit user request, never on its own initiative.
Tooling: The AWS MCP server is recommended for streamlined AWS API interactions but is not required. All examples use standard AWS CLI syntax and can run without MCP.
Common Tasks
1. Verify Dependencies
Before any guidance, confirm tooling and engine variant.
Constraints:
You MUST confirm which engine variant the user runs (V2, V2 Read Replica, or V3) before giving advice specific to that engine variant — APIs and defaults differ.
You MUST NOT mix V2 APIs (Flux, orgs, buckets, port 8086) with V3 APIs (SQL/InfluxQL, databases, tables, port 8181).
You MUST verify the AWS CLI (or
call_aws) is available before provisioning guidance.You MUST inspect the Create API and ask for all required parameters upfront, including engine variant, Region, VPC/subnet IDs, name, instance type, and a supported encryption choice. For production V3 workloads, verify customer-managed KMS key support in that API before recommending it for customer-controlled policy, rotation, revocation, and CloudTrail visibility. Collect an identifier in a form that API accepts.
Tool call examples:
aws timestream-influxdb list-db-instances --region us-east-1
aws timestream-influxdb list-db-clusters --region us-east-1Resource tagging (always apply on resource creation)
When creating any cluster or instance (create-db-cluster, create-db-instance), ALWAYS include these tags:
--tags Key=created_by,Value=timestream-skill Key=generation_model,Value={your-model-id}
Example: --tags Key=created_by,Value=timestream-skill Key=generation_model,Value=claude-sonnet-4-20250514
Include these tags even if the user does not mention tagging, so that they can identify the resources created via this skill. If the user provides additional tags, append these to their tags rather than replacing them.
2. Select the right engine variant
Decision flow:
New workload → InfluxDB 3 Core (Enterprise for HA multi-node).
Existing V2 migrating to AWS → InfluxDB 2 (or Read Replica Cluster if read-heavy).
High cardinality (>10M series) or SQL → InfluxDB 3.
Need Processing Engine → InfluxDB 3.
Before providing provisioning guidance for InfluxDB 3 or a V2 Read Replica Cluster, you MUST load and follow the creation, licensing, IAM, and networking contracts for that engine variant in the getting-started guide. For V3 encryption choices, customer-managed KMS key policy, migration, or key lifecycle guidance, load encryption guidance.
Provisioning and operational contracts you MUST follow:
InfluxDB 3 Core creation contract: For a new V3 Core workload, use
create-db-clusterwith the exact default parameter-group identifierInfluxDBV3Core. Do not usecreate-db-instance, and do not pass the V2-onlyallocatedStorage,dbStorageType,deploymentType,username,password,organization, orbucketfields. Core connects on port 8181. Before provisioning, verify Core's current Marketplace and licensing prerequisites in the Timestream for InfluxDB documentation and currentCreateDbClusterAPI model; never inherit requirements from V2, Read Replica, or Enterprise. If an installed CLI or SDK model does not expose the V3 Core creation contract, update that tooling; never fall back to the V2 creation operation or fields.Core→Enterprise upgrade IS supported via AWS Console or AWS Support. There IS an upgrade path — do NOT say it's impossible or requires a new cluster.
Encryption mutability: Verify
kmsKeyIdin the Create and Update API models before asserting whether a key can change; follow "Choose the Key Before Creation" in encryption guidance.Encryption scope and key loss: Retrieve the Data protection documentation and report only the details the user requests; follow "Response Scope" and "Existing Clusters and Key Loss" in encryption guidance.
Key verification: Confirm a specific customer-managed KMS key only by matching the returned ARN to the requested key ARN. Interpret an absent
kmsKeyIdonly when the currentGetDbClusterresponse documentation explicitly defines its semantics; never use absence to identify a specific customer-managed KMS key. Follow "Verify the Key" in encryption guidance.Creation completion: After
create-db-clusterreturns, pollget-db-clusteruntil it reportsAVAILABLEor a terminal failure. Do not report creation complete or ask the user to take over polling while the cluster remainsCREATING. For a customer-managed key request, success also requires the returnedkmsKeyIdARN to match the requested key ARN; an absent value while the cluster is transitioning is unverified and MUST be checked again atAVAILABLE.Retrieve the V3 initial-token secret by ARN: Inspect the
GetDbClusteroutput or API reference for the token-secret ARN field, then pass the returned ARN to AWS Secrets Manager. Never derive the secret identifier from a naming convention. V3 usesAuthorization: Bearer <token>(NOTToken). V2 usesAuthorization: Token <token>.reboot-db-clustersupports--instance-idsfor targeting specific nodes. Before using it, verify the current maximum number of IDs and all request constraints in theRebootDbClusterAPI model and Timestream for InfluxDB documentation. Do NOT say no reboot command exists or assume a fixed node-count limit.Before asserting S3 log-delivery availability or configuration paths, verify the create and update API request parameters and the Timestream for InfluxDB log-delivery documentation. Use only the operations, service principal, and bucket-policy requirements those sources document.
Do NOT invent CloudWatch metric names. Load monitoring operations and metric discovery, then verify availability for the selected engine variant and deployment type. If unsure whether a metric exists, say so explicitly.
Before asserting backup or restore availability, verify the Timestream for InfluxDB CLI or SDK API model and the customer-managed backup and restore documentation. Confirm support by engine variant and Region for on-demand, scheduled, continuous, point-in-time, and self-service restore capabilities. Use
DbBackupterminology forDbBackupresources, never "snapshot," and separately verify the accessibility and recovery path for service-managed snapshots.--publicly-accessibleis a supported option at instance/cluster creation time. Do NOT say the service is exclusively VPC-only — public access is an opt-in feature.
3. Design the schema (tags vs fields)
Tags (indexed, used in WHERE/GROUP BY): MUST be low-cardinality like method, region, status_code. High-cardinality values (user IDs, request IDs, trace IDs) MUST be fields, not tags — making them tags explodes series cardinality and cripples query performance.
Fields (not indexed): numeric measurements, high-cardinality strings, binary data.
InfluxDB 3 handles high cardinality better than V2, but tag design affects query performance. Load the schema-design guide for patterns including deduplication and retention.
4. Migrate from LiveAnalytics
LiveAnalytics is in maintenance mode. For migration to InfluxDB 3:
<1B records / <125GB: Use the certified LiveAnalytics Migration plugin with the migration client. Exports to S3 (Parquet), re-ingests into V3.
>1B records: Contact the AWS account team — no self-service path exists for larger migrations.
Load the migration guide for the procedure.
5. Use Processing Engine plugins (V3 only)
Before listing plugins or describing custom-plugin support, retrieve the certified plugin catalog and support statement from the Timestream for InfluxDB Processing Engine documentation or a documented catalog API. State only what the retrieved source confirms: do not assert a fixed plugin count, name a plugin absent from the retrieved catalog, or infer service availability from a general InfluxDB plugin repository. Load the processing-engine guide for verified trigger and configuration guidance.
6. Monitor and operate
Load monitoring operations and metric discovery before giving metric, alarm, maintenance, backup, or restore guidance. Verify metric names and dimensions from the service documentation and the resource's CloudWatch telemetry before configuring alarms. Verify maintenance request shapes, backup and restore capabilities, and service quotas in their respective API models rather than relying on embedded examples or fixed availability claims.
Troubleshooting
Confirm the engine variant and deployment/access type, then load the troubleshooting runbook for verified triage specific to that engine variant across connectivity, write/query, storage, replication, and S3 endpoint issues. Never mix V2 and V3 remediation or assert a cause before completing the runbook's verification steps.
Security Considerations
Apply these baseline controls in every environment:
Over-privileged IAM: Use least-privilege roles and remove temporary broad permissions immediately after activation.
Password or token exposure: Store the V2 initial password and V3 initial token in AWS Secrets Manager; never place them in source, logs, shell history, or literal command arguments. Rotate or replace each through the workflow documented for its engine variant, and issue a scoped application token per workload.
VPC misconfiguration: Prefer private networking and restrict every security-group rule to trusted CIDRs or security-group IDs; never allow
0.0.0.0/0.Encryption gaps: Require encryption at rest and TLS in transit. Verify supported key options in the Data protection documentation and API model before selecting a customer-managed KMS key.
Audit gaps: Enable CloudTrail, supported service log delivery, and operational alarms. Protect CloudTrail S3 objects, CloudWatch Logs, and alarm topics with SSE-KMS, and enable CloudTrail log-file validation.
You MUST load and follow security best practices for every deployment, including development, experimentation, and production, before providing provisioning or operational guidance.
Additional Resources
Handoff from aws-database-selection
This skill can be invoked directly, or it can be entered from the aws-database-selection parent skill after that skill has run a requirements interview and produced a requirements.json artifact. When you see a backtick-wrapped path matching aws_dbs_requirements/*/requirements.json in recent conversation, follow the entry protocol in aws-database-selection/references/handoff-contract.md:
Read the artifact using
file_read.Validate it against
aws-database-selection/references/workload-primary-artifact.schema.json. If malformed or unreadable, tell the user and proceed without it.Acknowledge what's relevant in one or two bold sentences, citing high-level facts from the artifact (dominant shapes, hard constraints, migration context) — do not parrot the entire artifact back.
Scope-check: this skill is scoped to Amazon Timestream for InfluxDB (V2, V2 Read Replica, V3) — engine variant selection, schema design, migration from LiveAnalytics, Processing Engine plugins. If the artifact's
workload_primaries.dominant_shapesormigration_contextdon't match that scope, emit weak backpressure per the handoff contract: suggestdynamodb-skillfor non-InfluxDB time-series on DynamoDB, or go back toaws-database-selectionif the dominant shape isn't time-series, then ask the user whether to go back or proceed anyway. Do not silently misuse the artifact.Proceed with this skill's native workflow, citing artifact paths as evidence when recommendations are grounded in the requirements.
All user-facing output from this skill follows the markdown-primitives-only formatting convention in the handoff contract: bold labels, backticks for paths and enum values, bullet lists for alternatives, no ASCII art or box-drawing characters.
Files
- ATTRIBUTION.mdAdded by AutoGineer926 B
- LICENSELicence file added by AutoGineer9.9 KiB
- NOTICELicence file added by AutoGineer67 B
- SKILL.md14.9 KiB
- references/encryption.md12.9 KiB
- references/getting-started.md21.7 KiB
- references/migration-guide.md5.7 KiB
- references/monitoring-metrics.md2.0 KiB
- references/monitoring-operations.md10.0 KiB
- references/processing-engine-guide.md7.2 KiB
- references/s3-vpc-endpoint-troubleshooting.md1.7 KiB
- references/schema-design-guide.md4.4 KiB
- references/security-best-practices.md6.8 KiB
- references/troubleshooting-runbook.md6.3 KiB
- scripts/get_token.shScript1.9 KiB
- scripts/health_check.shScript3.2 KiB
- scripts/input_validator.pyScript1.7 KiB
- scripts/instance_types.pyScript2.5 KiB
references/processing-engine-guide.md
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_WEBHOOKManaging 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_TOKENConfiguration Options
Trigger arguments: Pass key=value pairs to configure plugin behavior:
--trigger-arguments 'threshold=90,[email protected]'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
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs an MCP server, Needs a command-line tool, Needs Python, Needs Node.js
Security
What our scanner noticed· Low risk
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- AWS
- Publisher
- AWS (Official)
- Source
- aws/agent-toolkit-for-aws · skills/specialized-skills/database-skills/timestream-influxdb · commit 0a218f8
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- NOTICE (added by AutoGineer from NOTICE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by AWS or AWS.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download timestream-influxdb.zip