
Dt Obs Aws
Plan AWS compute, network, container, and storage headroom using Dynatrace Smartscape DQL queries instead of guessing capacity.
Overview
dt-obs-aws is an agent skill for the Operate phase that supplies Dynatrace DQL patterns to analyze AWS compute, network, autoscaling, and storage capacity from Smartscape nodes.
Install
npx skills add https://github.com/dynatrace/dynatrace-for-ai --skill dt-obs-awsWhat is this skill?
- DQL recipes for EC2 instance type distribution by region and state
- Auto Scaling group min, max, and desired capacity tables for headroom checks
- Subnet available IP and CIDR fields for network exhaustion risk
- Sections for compute, network, container/serverless, database/storage, and infrastructure capacity
- Smartscape `AWS_*` node parsing via JSON `aws.object` fields
- 5 capacity topic sections in table of contents
Adoption & trust: 651 installs on skills.sh; 87 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You cannot see whether AWS autoscaling, subnets, or instance mixes have headroom before traffic spikes or launch windows.
Who is it for?
Indie SaaS operators on AWS with Dynatrace Smartscape inventory who need quick capacity snapshots without writing queries from scratch.
Skip if: Skip if you do not use Dynatrace observability on AWS, or if you only need application-level feature work with no infra telemetry.
When should I use this skill?
Use when analyzing AWS resource capacity, autoscaling limits, network IP availability, or growth planning with Dynatrace Smartscape DQL.
What do I get? / Deliverables
You run structured DQL summaries—instance counts, ASG limits, subnet IPs—to plan scale-ups, rightsizing, or network expansion with evidence.
- Adapted DQL queries for EC2, ASG, subnet, and related capacity views
- Capacity summary tables for growth or launch readiness decisions
Recommended Skills
Journey fit
Operate is where live AWS utilization and autoscaling headroom determine whether the product stays up under growth. Monitoring subphase matches observability-driven capacity views—EC2 distribution, ASG desired vs max, subnet IP exhaustion.
How it compares
Dynatrace DQL query pack for AWS capacity—not a Terraform planner or AWS Cost Explorer substitute.
Common Questions / FAQ
Who is dt-obs-aws for?
Solo builders and small teams operating AWS workloads monitored in Dynatrace who need capacity-oriented DQL starting points.
When should I use dt-obs-aws?
Use it in Operate during growth spikes, pre-launch load checks, subnet/IP reviews, and ASG max-desired gap analysis—after AWS is live in Dynatrace.
Is dt-obs-aws safe to install?
The skill describes read-style observability queries; your agent still needs Dynatrace credentials in your environment—review Security Audits on this page before install.
SKILL.md
READMESKILL.md - Dt Obs Aws
# AWS Capacity Planning Analyze resource capacity and plan for growth. ## Table of Contents - [Compute Capacity](#compute-capacity) - [Network Capacity](#network-capacity) - [Container & Serverless Capacity](#container--serverless-capacity) - [Database & Storage Capacity](#database--storage-capacity) - [Infrastructure Capacity](#infrastructure-capacity) ## Compute Capacity Instance type distribution across regions: ```dql smartscapeNodes "AWS_EC2_INSTANCE" | parse aws.object, "JSON:awsjson" | fieldsAdd instanceType = awsjson[configuration][instanceType], state = awsjson[configuration][state][name] | summarize instance_count = count(), by: {instanceType, state, aws.region} | sort instance_count desc ``` Auto Scaling group capacity and headroom: ```dql smartscapeNodes "AWS_AUTOSCALING_AUTOSCALINGGROUP" | parse aws.object, "JSON:awsjson" | fieldsAdd minSize = awsjson[configuration][minSize], maxSize = awsjson[configuration][maxSize], desiredCapacity = awsjson[configuration][desiredCapacity] | fields name, minSize, maxSize, desiredCapacity, aws.region | sort desiredCapacity desc ``` ## Network Capacity Subnet IP address utilization (critical for capacity planning): ```dql smartscapeNodes "AWS_EC2_SUBNET" | parse aws.object, "JSON:awsjson" | fieldsAdd availableIpCount = awsjson[configuration][availableIpAddressCount], cidrBlock = awsjson[configuration][cidrBlock] | fields name, cidrBlock, availableIpCount, aws.vpc.id, aws.availability_zone | sort availableIpCount asc ``` Network interface usage by type: ```dql smartscapeNodes "AWS_EC2_NETWORKINTERFACE" | parse aws.object, "JSON:awsjson" | fieldsAdd interfaceType = awsjson[configuration][interfaceType], status = awsjson[configuration][status] | summarize eni_count = count(), by: {interfaceType, status} | sort eni_count desc ``` Route tables per VPC: ```dql smartscapeNodes "AWS_EC2_ROUTETABLE" | summarize route_table_count = count(), by: {aws.vpc.id, aws.region} | sort route_table_count desc ``` ## Container & Serverless Capacity ECS service desired vs running counts: ```dql smartscapeNodes "AWS_ECS_SERVICE" | parse aws.object, "JSON:awsjson" | fieldsAdd desiredCount = awsjson[configuration][desiredCount], runningCount = awsjson[configuration][runningCount] | fields name, desiredCount, runningCount, aws.region ``` Lambda function memory allocations: ```dql smartscapeNodes "AWS_LAMBDA_FUNCTION" | parse aws.object, "JSON:awsjson" | fieldsAdd memory = awsjson[configuration][memorySize] | summarize function_count = count(), by: {memory, aws.region} | sort memory desc ``` EKS node groups, ECR repositories, and launch templates can be counted with the standard discovery pattern using their respective entity types: `AWS_EKS_NODEGROUP`, `AWS_ECR_REPOSITORY`, `AWS_EC2_LAUNCHTEMPLATE`. ## Database & Storage Capacity RDS storage type distribution: ```dql smartscapeNodes "AWS_RDS_DBINSTANCE" | parse aws.object, "JSON:awsjson" | fieldsAdd storageType = awsjson[configuration][storageType] | summarize db_count = count(), by: {storageType, aws.region} | sort db_count desc ``` ## Infrastructure Capacity Transit gateways for multi-VPC connectivity: ```dql smartscapeNodes "AWS_EC2_TRANSITGATEWAY" | fields name, aws.account.id, aws.region, aws.resource.id ``` # AWS Cost Optimization Identify cost savings opportunities and optimize AWS spending. ## Table of Contents - [Compute Costs](#compute-costs) - [Storage Costs](#storage-costs) - [Network Costs](#network-costs) - [Database Costs](#database-costs) - [Serverless & Cache Costs](#serverless--cache-costs) - [Infrastructure Management Costs](#infrastructure-management-costs) - [Idle Resource Detection](#idle-resource-detection) ## Compute Costs Analyze running instance types for right-sizing: ```dql smartscapeNodes "AWS_EC2_INSTANCE" | parse aws.object, "JSON:awsjson" | fieldsAdd instanceType = awsjson[configuration][instanceType], state