Generated banner for Timestream Influxdb
Generated logo for Timestream Influxdb

Timestream Influxdb

AWSOfficialPublished by AWS

  • Skill
  • Tool integration
  • Cloud and DevOps
  • Apache-2.0
  • Low risk
  • Has scripts

From the author

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.
— the description by AWS

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

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/aws/timestream-influxdb/download
  2. Unzip 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-1
Resource 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:

  1. New workload → InfluxDB 3 Core (Enterprise for HA multi-node).

  2. Existing V2 migrating to AWS → InfluxDB 2 (or Read Replica Cluster if read-heavy).

  3. High cardinality (>10M series) or SQL → InfluxDB 3.

  4. 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-cluster with the exact default parameter-group identifier InfluxDBV3Core. Do not use create-db-instance, and do not pass the V2-only allocatedStorage, dbStorageType, deploymentType, username, password, organization, or bucket fields. Core connects on port 8181. Before provisioning, verify Core's current Marketplace and licensing prerequisites in the Timestream for InfluxDB documentation and current CreateDbCluster API 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 kmsKeyId in 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 kmsKeyId only when the current GetDbCluster response 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-cluster returns, poll get-db-cluster until it reports AVAILABLE or a terminal failure. Do not report creation complete or ask the user to take over polling while the cluster remains CREATING. For a customer-managed key request, success also requires the returned kmsKeyId ARN to match the requested key ARN; an absent value while the cluster is transitioning is unverified and MUST be checked again at AVAILABLE.

  • Retrieve the V3 initial-token secret by ARN: Inspect the GetDbCluster output 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 uses Authorization: Bearer <token> (NOT Token). V2 uses Authorization: Token <token>.

  • reboot-db-cluster supports --instance-ids for targeting specific nodes. Before using it, verify the current maximum number of IDs and all request constraints in the RebootDbCluster API 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 DbBackup terminology for DbBackup resources, never "snapshot," and separately verify the accessibility and recovery path for service-managed snapshots.

  • --publicly-accessible is 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:

  1. Read the artifact using file_read.

  2. Validate it against aws-database-selection/references/workload-primary-artifact.schema.json. If malformed or unreadable, tell the user and proceed without it.

  3. 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.

  4. 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_shapes or migration_context don't match that scope, emit weak backpressure per the handoff contract: suggest dynamodb-skill for non-InfluxDB time-series on DynamoDB, or go back to aws-database-selection if the dominant shape isn't time-series, then ask the user whether to go back or proceed anyway. Do not silently misuse the artifact.

  5. 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

references/getting-started.md

Getting Started and Setup

When to Activate

User wants to create a new Timestream for InfluxDB instance or cluster, connect to an existing one, choose between engine variants, or configure authentication.

Workflow

1. Determine Engine Variant

Ask the user one question: "Are you starting a new project or working with an existing InfluxDB deployment?"

  • New project → Recommend InfluxDB 3 (SQL support, Processing Engine, better high-cardinality handling)

  • Existing V2 deployment → Stay on V2 unless they want to migrate (route to migration)

  • Need read scaling → Verify the supported read-scaling options; use a Read Replica Cluster only when the engine and licensing documentation supports it for the selected variant

2. Provision

Before either V2 creation command, store the initial username and generated password as JSON in Secrets Manager. Retrieve that SecretString to a mode-600 file on an encrypted volume, use it as CLI input, and delete it immediately after creation:

V2_ADMIN_SECRET_ID="/timestream-influxdb/<resource-name>/initial-admin"
V2_ADMIN_INPUT="<mode-600-json-file-on-encrypted-volume>"
umask 077
aws secretsmanager get-secret-value \
  --secret-id "$V2_ADMIN_SECRET_ID" \
  --query SecretString --output text > "$V2_ADMIN_INPUT"

Keep shell tracing disabled. The password is not a literal command argument or written to shell history.

InfluxDB 2 (standalone instance):

aws timestream-influxdb create-db-instance \
  --cli-input-json "file://${V2_ADMIN_INPUT}" \
  --name my-influxdb \
  --db-instance-type <instance-type> \
  --db-storage-type <storage-type> \
  --allocated-storage <allocated-storage-gib> \
  --deployment-type SINGLE_AZ \
  --vpc-subnet-ids subnet-abc \
  --vpc-security-group-ids sg-abc \
  --db-parameter-group-identifier <param-group-id> \
  --organization my-org --bucket my-bucket \
  --tags Key=created_by,Value=timestream-skill Key=generation_model,Value={your-model-id}
rm -f "$V2_ADMIN_INPUT"

Before selecting <instance-type>, <storage-type>, or <allocated-storage-gib>, verify the supported DB instance classes, storage types, and storage ranges for the V2 deployment type and Region in the Timestream for InfluxDB documentation and CreateDbInstance API model. Encryption at rest is required; verify the service-applied encryption behavior and supported key choices in the Data protection documentation and CreateDbInstance API model.

For production instances, inspect CreateDbInstance for create-time log-delivery support. When supported, configure log delivery during creation with the documented request shape and apply the bucket-policy and SSE-KMS controls in Log Delivery to S3. Do not pass a log-delivery field when the operation does not accept it.

Security best practice — InfluxDB V2 credentials:

  • Keep the generated password in Secrets Manager and do not print the secret value.

  • Rotate the initial admin password immediately after first login; it is set during instance creation and should not be used by applications.

  • Create scoped API tokens for each application or service — never share the operator token.

  • The engine does not support automatic token expiration or rotation. Token rotation is the customer's responsibility. There is no automatic synchronization between AWS Secrets Manager and the engine's token management layer.

  • For InfluxDB V3 or new deployments, the preferred approach is Secrets Manager-based Bearer tokens provisioned automatically by the service.

InfluxDB 2 Read Replica Cluster:

aws timestream-influxdb create-db-cluster \
  --cli-input-json "file://${V2_ADMIN_INPUT}" \
  --name my-rr-cluster \
  --db-instance-type <instance-type> \
  --db-storage-type <storage-type> \
  --allocated-storage <allocated-storage-gib> \
  --deployment-type MULTI_NODE_READ_REPLICAS \
  --vpc-subnet-ids subnet-az1 subnet-az2 \
  --vpc-security-group-ids sg-abc \
  --db-parameter-group-identifier <param-group-id> \
  --organization my-org --bucket my-bucket \
  --tags Key=created_by,Value=timestream-skill Key=generation_model,Value={your-model-id}
rm -f "$V2_ADMIN_INPUT"

Before selecting <instance-type>, <storage-type>, or <allocated-storage-gib>, verify the supported DB instance classes, storage types, and storage ranges for the V2 Read Replica deployment type and Region in the Timestream for InfluxDB documentation and CreateDbCluster API model.

For production Read Replica Clusters, inspect CreateDbCluster for create-time log-delivery support. When supported, configure log delivery during creation with the documented request shape and apply the bucket-policy and SSE-KMS controls in Log Delivery to S3. Do not pass a log-delivery field when the operation does not accept it.

V2 Read Replica security: Encryption at rest is required. Before creation, verify the service-applied encryption and supported key choices for V2 Read Replica Clusters in the Data protection documentation and CreateDbCluster API model. Pass --kms-key-id only when the API supports it for the selected engine variant. Verify the credential-secret response field in the API model; when the service returns influxAuthParametersSecretArn, retrieve the initial admin credentials from that Secrets Manager secret, rotate the password immediately after setup, and use a separate scoped token for each application.

InfluxDB 3 Core Creation Contract

The current CreateDbCluster API contract for InfluxDB 3 Core is:

  1. Use create-db-cluster. Never substitute the V2 create-db-instance operation.

  2. Use the exact default parameter-group identifier InfluxDBV3Core. Do not substitute a guessed identifier or a V2 parameter group.

  3. Omit V2-only creation fields. Do not pass allocatedStorage, dbStorageType, deploymentType, username, password, organization, or bucket (the CLI forms are --allocated-storage, --db-storage-type, --deployment-type, --username, --password, --organization, and --bucket).

  4. Verify Core's current Marketplace and licensing prerequisites. Check the Timestream for InfluxDB documentation and current CreateDbCluster API model before provisioning. Do not infer Core requirements from V2, Read Replica, or Enterprise. If an intended Core creation returns a Marketplace or Read Replica licensing error, recheck the current documentation, parameter-group identifier, and request fields rather than switching to a V2 operation.

  5. Use port 8181. Port 8086 is for V2. Restrict inbound access to known CIDR ranges or security-group IDs; never use 0.0.0.0/0.

Treat the current service API reference and Timestream for InfluxDB documentation as authoritative. If the installed AWS CLI or SDK model does not expose create-db-cluster or InfluxDBV3Core, update the CLI or SDK before provisioning. Do not work around a stale local model by falling back to create-db-instance, V2 fields, port 8086, or V2 licensing assumptions.

InfluxDB 3 (cluster):

aws timestream-influxdb create-db-cluster \
  --name my-v3-cluster \
  --db-instance-type <instance-type> \
  --db-parameter-group-identifier InfluxDBV3Core \
  --vpc-subnet-ids subnet-abc subnet-def \
  --vpc-security-group-ids sg-abc \
  --tags Key=created_by,Value=timestream-skill Key=generation_model,Value={your-model-id}

# Recommended arguments for production after verifying CreateDbCluster support:
#   --kms-key-id <kms-key-arn>
#   --log-delivery-configuration '{"s3Configuration":{"bucketName":"<logs-bucket>","enabled":true}}'

After create-db-cluster returns, use its cluster ID to poll get-db-cluster until the status is AVAILABLE or a terminal failure. Do not report creation complete or ask the user to take over polling while the cluster remains CREATING. When creation requested a customer-managed KMS key, also require the returned kmsKeyId ARN to exactly match the requested key ARN before reporting success. Treat an absent kmsKeyId during CREATING as unverified and check it again at AVAILABLE; a missing or different value at AVAILABLE is a failed verification.

After creation, follow AWS CloudTrail integration. Verify event coverage in the Timestream for InfluxDB CloudTrail documentation, then confirm that a trail records the documented management events with the required retention, encryption, and log-file validation controls.

For production clusters, configure log delivery when the selected engine variant supports it and apply the documented bucket-policy and SSE-KMS controls in Log Delivery to S3. Omit --log-delivery-configuration only for dev/test workloads or when the current API model and documentation explicitly show that the selected engine variant does not support it.

Before selecting <instance-type>, check the Timestream for InfluxDB DB instance classes documentation; supported classes can change and should not be inferred from examples.

Encryption at rest is required for production workloads. Verify the service-applied encryption option and kmsKeyId support in the Create API. Use --kms-key-id when customer-controlled policy, rotation, revocation, or auditing is required. Omit it only when the current documentation confirms AWS-owned default encryption and that option satisfies the workload's requirements, generally for dev/test. Load encryption guidance before choosing between the documented encryption options.

Default parameter group identifiers: List the available groups and verify the documentation or API model before selecting an identifier:

aws timestream-influxdb list-db-parameter-groups --region <region>

Use the exact default identifier listed for the selected engine variant. Create a custom group only when you need to override defaults.

3. Retrieve Token

V2: Token is stored in Secrets Manager at the ARN returned in influxAuthParametersSecretArn:

aws secretsmanager get-secret-value \
  --secret-id <influxAuthParametersSecretArn> \
  --query SecretString --output text

After retrieving the initial credentials, create an all-access operator token via the InfluxDB UI or cookie-based API auth (see V2 Onboarding below).

V3: Inspect the GetDbCluster output or API model for the token-secret ARN field. When the response includes influxAuthParametersSecretArn, use the ARN it returns; do not derive a secret identifier from a naming convention:

V3_TOKEN_SECRET_ARN="$(
  aws timestream-influxdb get-db-cluster \
    --db-cluster-id <cluster-id> \
    --query influxAuthParametersSecretArn \
    --output text
)"
aws secretsmanager get-secret-value \
  --secret-id "$V3_TOKEN_SECRET_ARN" \
  --query SecretString --output text

Before modifying or rotating the secret, verify its ownership and rotation behavior in the Timestream for InfluxDB documentation. Do not assume that changing its SecretString changes the cluster token.

4. Connect

Security group configuration for publicly accessible instances:

When creating an instance or cluster with --publicly-accessible, the endpoint is exposed over the public internet. Public access is a supported opt-in feature at creation time — by default, instances are private (VPC-only). For publicly accessible deployments, the default security group blocks all inbound traffic. You must add an inbound rule for the InfluxDB port:

# V2 (port 8086)
aws ec2 authorize-security-group-ingress \
  --group-id <sg-id> \
  --protocol tcp --port 8086 \
  --cidr <your-ip>/32   # or another trusted client CIDR; never use 0.0.0.0/0

# V3 (port 8181)
aws ec2 authorize-security-group-ingress \
  --group-id <sg-id> \
  --protocol tcp --port 8181 \
  --cidr <your-ip>/32

Restrict the CIDR to the smallest set of IPs that need access. Never use 0.0.0.0/0.

For private (VPC-only) deployments: Clients must be in the same VPC or reach the instance via VPN, Direct Connect, or Transit Gateway. Security group rules should allow inbound from the VPC CIDR or specific private subnets.

InfluxDB 2: Endpoint on port 8086. Use the InfluxDB 2.x API with org/bucket/token. Keep the scoped token in Secrets Manager and supply it through the CLI's supported environment variable instead of saving it in an unencrypted local config:

export INFLUX_TOKEN="$(
  aws secretsmanager get-secret-value \
    --secret-id "<v2-application-token-secret-id>" \
    --query SecretString --output text |
  jq -er '.token'
)"
INFLUX_HOST="https://<endpoint>:8086" INFLUX_ORG="<org>" influx bucket list
unset INFLUX_TOKEN

InfluxDB 3: Endpoint on port 8181. Use SQL or InfluxQL via the InfluxDB 3.x API.

# Set V3_TOKEN_SECRET_ARN from GetDbCluster as shown in Retrieve Token.
V3_TOKEN="$(
  aws secretsmanager get-secret-value \
    --secret-id "$V3_TOKEN_SECRET_ARN" \
    --query SecretString --output text |
  jq -er '.token'
)"

# Write via line protocol
printf 'Authorization: Bearer %s\n' "$V3_TOKEN" |
curl -X POST "https://<endpoint>:8181/api/v3/write_lp?db=<database>" \
  -H @- \
  -H "Content-Type: text/plain" \
  -d "measurement,tag=value field=1.0"

# Query via SQL
printf 'Authorization: Bearer %s\n' "$V3_TOKEN" |
curl -X POST "https://<endpoint>:8181/api/v3/query_sql" \
  -H @- \
  -H "Content-Type: application/json" \
  -d '{"db":"<database>","q":"SELECT * FROM measurement LIMIT 10"}'

unset V3_TOKEN V3_TOKEN_SECRET_ARN
5. Post-Setup
  • Configure maintenance window

  • Set up CloudWatch alarms → route to monitoring

  • Design schema → route to schema-design

Private Access via SSM Bastion

For V3 clusters in private subnets without direct connectivity:

aws ssm start-session --target <bastion-instance-id> \
  --document-name AWS-StartPortForwardingSessionToRemoteHost \
  --parameters '{"host":["<CLUSTER_ENDPOINT>"],"portNumber":["8181"],"localPortNumber":["8181"]}'

Add 127.0.0.1 <CLUSTER_ENDPOINT> to /etc/hosts so TLS certificate validation succeeds against the forwarded connection.

Log Delivery to S3

Before configuring log delivery, verify its availability, delivery cadence, bucket account and Region constraints, KMS key constraints, service principal, object prefix, and source-ARN formats in the Timestream for InfluxDB documentation and the applicable create or update API reference. Treat those sources as authoritative; adapt or omit the following template when they differ.

SSE-KMS note: Use only the KMS key ownership and account arrangements that the log-delivery documentation supports. Do not assume that a cross-account key works.

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Principal": {"Service": "timestream-influxdb.amazonaws.com"},
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::BUCKET_NAME/InfluxLogs/*",
    "Condition": {
      "StringEquals": {
        "aws:SourceAccount": "YOUR_ACCOUNT_ID"
      },
      "ArnLike": {
        "aws:SourceArn": [
          "arn:aws:timestream-influxdb:<REGION>:<ACCOUNT_ID>:db-instance/<INSTANCE_ID>",
          "arn:aws:timestream-influxdb:<REGION>:<ACCOUNT_ID>:db-cluster/<CLUSTER_ID>"
        ]
      }
    }
  }]
}

When the log-delivery documentation prescribes aws:SourceArn, add it to prevent confused deputy attacks and scope it to the exact source resource. Apply this template only to a customer-managed log bucket, and verify data-bucket ownership before stating whether the customer can configure its bucket policy.

Enable via create or update:

--log-delivery-configuration '{"s3Configuration":{"bucketName":"BUCKET","enabled":true}}'

Reboot Commands

Before targeting specific nodes, inspect the current RebootDbCluster request model and Timestream for InfluxDB documentation to verify the maximum number of instanceIds and any other request constraints. Do not assume a fixed limit.

# V2 instance
aws timestream-influxdb reboot-db-instance --identifier <instance-id>

# V3 cluster (all nodes)
aws timestream-influxdb reboot-db-cluster --db-cluster-id <cluster-id>

# V3 cluster (specific nodes)
aws timestream-influxdb reboot-db-cluster --db-cluster-id <cluster-id> \
  --instance-ids <id1> <id2>

Determine Updatable Fields

For a V2 instance, inspect the UpdateDbInstance request parameters or the installed CLI or SDK model. For a cluster, inspect the UpdateDbCluster request parameters or installed model. Use only fields exposed by the selected operation, and verify documented restart, replacement, transition, and value constraints before proposing an update. Do not infer updatability from a Create operation or a cached field list. For kmsKeyId, follow the API verification and migration guidance in encryption guidance.

After initial provisioning, the credentials in Secrets Manager give you UI access but not a full API operator token. To create one:

  1. Sign in to the InfluxDB UI at https://<endpoint>:8086 with the username/password from Secrets Manager

  2. Navigate to Load Data → API Tokens → Generate API Token → All Access API Token

  3. Copy the generated operator token directly into a new AWS Secrets Manager secret. Do not persist it in local files, shell profiles, logs, or source control; clear any clipboard copy after storage.

  4. Create scoped tokens for application use, store each one in AWS Secrets Manager immediately, and avoid using the all-access operator token in production applications.

Marketplace Activation and IAM Prerequisites

Before provisioning, verify the Marketplace subscription and activation requirements for the selected engine variant in the Timestream for InfluxDB documentation and the CreateDbCluster API reference. Do not reuse licensing prerequisites from another engine variant.

When the documentation requires first-time Marketplace activation through the console, attach AmazonTimestreamInfluxDBFullAccess and AmazonTimestreamConsoleFullAccess only to the principal performing that activation. Remove both managed policies immediately after activation succeeds, within the same administrative session whenever possible, and replace them with the scoped custom policy below before production or operational use. Leaving either FullAccess policy attached to a production identity is a significant over-privilege risk. Configure an AWS Config custom rule or equivalent periodic control to detect either policy remaining attached after activation, and use IAM Access Analyzer unused-access findings to further reduce the replacement policy.

Example scoped policy for day-to-day operations (read plus the operational write actions this guide uses — update, reboot, tag):

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ListResources",
      "Effect": "Allow",
      "Action": [
        "timestream-influxdb:ListDbInstances",
        "timestream-influxdb:ListDbClusters"
      ],
      "Resource": "*"
    },
    {
      "Sid": "OperateOnSelectedResources",
      "Effect": "Allow",
      "Action": [
        "timestream-influxdb:GetDbInstance",
        "timestream-influxdb:GetDbCluster",
        "timestream-influxdb:ListTagsForResource",
        "timestream-influxdb:UpdateDbInstance",
        "timestream-influxdb:UpdateDbCluster",
        "timestream-influxdb:RebootDbInstance",
        "timestream-influxdb:RebootDbCluster",
        "timestream-influxdb:TagResource"
      ],
      "Resource": [
        "arn:aws:timestream-influxdb:<region>:<account-id>:db-instance/<instance-id>",
        "arn:aws:timestream-influxdb:<region>:<account-id>:db-cluster/<cluster-id>"
      ]
    }
  ]
}

Retain only the actions and resource type required by the operator. Replace each identifier with an exact resource ID; do not broaden it to *. Verify action-level resource support in the Service Authorization Reference, and use Resource: "*" only for actions that do not support resource-level permissions.

Compare Engine Variants

Before comparing engine variants, retrieve the Timestream for InfluxDB documentation and inspect the applicable Create, Get, and Update API models for each candidate. Verify each variant's query languages, authentication flow, data model, endpoint, resource operation, deployment and storage model, scaling behavior, Processing Engine support, and Region-specific constraints. Use only capabilities confirmed by those sources for the user's Region and requested operation; do not infer one variant's behavior from another variant or from examples in this guide.

Instance Types

Before recommending an instance class, retrieve the Timestream for InfluxDB DB instance classes documentation and inspect the Create API model for the selected engine variant and Region. Use only instance classes and hardware specifications those sources identify as supported. Do not infer availability, vCPU, memory, or workload fit from examples or a cached class list.

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