- Skill ID
- dynatrace/dynatrace-for-ai/dt-obs-aws
- Publisher
- dynatrace
- Repository
- dynatrace-for-ai
- Installs
- 0
- Files
- 14
- License
- Apache-2.0
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
dynatrace/dynatrace-for-ai/dt-obs-awsInstalls these files- SKILL.md
- references/capacity-planning.md
- references/cost-optimization.md
- references/database-monitoring.md
- references/events.md
- references/load-balancing-api.md
- references/messaging-event-streaming.md
- references/metrics-performance.md
- references/resource-management.md
- references/resource-ownership.md
- references/security-compliance.md
- references/serverless-containers.md
- references/vpc-networking-security.md
- references/workload-detection.md
What this skill tells the agent
AWS Cloud Infrastructure
Monitor and analyze AWS resources using Dynatrace Smartscape and DQL. Query AWS services, optimize costs, manage security, and plan capacity across your AWS infrastructure.
When to Use This Skill
Use this skill when the user needs to work with AWS resources in Dynatrace. Load the reference file for the task type:
- Inventory: "Show me all EC2 instances in us-east-1"
- Network: "Find all resources in VPC vpc-abc123"
- Database: "List all RDS instances with Multi-AZ enabled"
- Serverless: "Show Lambda functions with VPC access"
- Cost: "Find unattached EBS volumes for cost savings"
- Security: "Identify publicly accessible databases"
- Compliance: "Find resources missing Environment tags"
- Capacity: "Analyze subnet IP utilization"
- Troubleshoot: "Map load balancer to instances through target groups"
- Problem Analysis: "What changed before this AWS problem?" / "What events affected this resource?"
- Workload Context: "Is this instance behind a load balancer, in an EKS cluster, or managed by ECS?"
- Events: "Have there been any recent events in AWS affecting this resource?"
Core Concepts
Entity Types
AWS resources use the AWS_* prefix and can be queried using the smartscapeNodes function. All AWS entities are automatically discovered and modeled in Dynatrace Smartscape.
Compute: AWS_EC2_INSTANCE, AWS_LAMBDA_FUNCTION, AWS_ECS_CLUSTER, AWS_ECS_SERVICE, AWS_EKS_CLUSTER Networking: AWS_EC2_VPC, AWS_EC2_SUBNET, AWS_EC2_SECURITYGROUP, AWS_EC2_NATGATEWAY, AWS_EC2_VPCENDPOINT Database: AWS_RDS_DBINSTANCE, AWS_RDS_DBCLUSTER, AWS_DYNAMODB_TABLE, AWS_ELASTICACHE_CACHECLUSTER Storage: AWS_S3_BUCKET, AWS_EC2_VOLUME, AWS_EFS_FILESYSTEM Load Balancing: AWS_ELASTICLOADBALANCINGV2_LOADBALANCER, AWS_ELASTICLOADBALANCINGV2_TARGETGROUP Messaging: AWS_SQS_QUEUE, AWS_SNS_TOPIC, AWS_EVENTS_EVENTBUS, AWS_MSK_CLUSTER
Common AWS Fields
All AWS entities include:
aws.account.id- AWS account identifieraws.region- AWS region (e.g., us-east-1)aws.resource.id- Unique resource identifieraws.resource.name- Resource nameaws.arn- Amazon Resource Nameaws.vpc.id- VPC identifier (for VPC-attached resources)aws.subnet.id- Subnet identifieraws.availability_zone- Availability zoneaws.security_group.id- Security group IDs (array)tags- Resource tags (usetags[TagName])
AWS Fields on Logs and Bizevents
AWS-originated logs (fetch logs) carry these fields — no exploration needed:
aws.region,aws.account.id,aws.service,aws.log_group,aws.log_stream- Plus standard log fields:
content,loglevel,timestamp,k8s.*,dt.smartscape.*
AWS-originated bizevents (fetch bizevents) carry:
aws.region,aws.account.id,event.type,event.provider
Use filter isNotNull(aws.region) to scope to AWS-originated records.
Relationship Types
AWS entities use these relationship types:
is_attached_to- Exclusive attachment (e.g., volume to instance)uses- Dependency relationship (e.g., instance uses security group)runs_on- Vertical relationship (e.g., instance runs on AZ)is_part_of- Composition (e.g., instance in cluster)belongs_to- Aggregation (e.g., service belongs to cluster)balances- Load balancing (e.g., target group balances instances)balanced_by- Inverse load-balancing relationship (e.g., load balancer balanced by target group)
AWS Metric Key Naming Convention
Dynatrace ingests AWS CloudWatch metrics using this pattern:
cloud.aws.<service>.<MetricName>.By.<DimensionName>The <service> is the lowercase AWS service name, <MetricName> is the CloudWatch metric name (case-preserved), and <DimensionName> is the CloudWatch dimension.
Examples: cloud.aws.ec2.CPUUtilization.By.InstanceId, cloud.aws.lambda.Invocations.By.FunctionName, cloud.aws.rds.CPUUtilization.By.DBInstanceIdentifier
Use timeseries, not fetch, for these metrics. Group by dt.smartscape_source.id to split by entity.
→ See references/metrics-performance.md for the complete metric catalog by service with DQL query templates.
Key Workflows
1. AWS Resource Discovery
Get all AWS resources by type:
smartscapeNodes "AWS_*"
| summarize count = count(), by: {type}
| sort count descFilter by account and region:
smartscapeNodes "AWS_*"
| filter aws.account.id == "123456789012" and aws.region == "us-east-1"
| fields type, name, aws.resource.idUsing tags for filtering:
smartscapeNodes "AWS_*"
| filter tags[Environment] == "production"
| summarize count = count(), by: {type, aws.region}→ For complete resource inventory patterns, see references/resource-management.md
2. VPC Networking Analysis
List all VPCs:
smartscapeNodes "AWS_EC2_VPC"
| fields name, aws.account.id, aws.region, aws.vpc.idFind resources in a VPC:
smartscapeNodes "AWS_*"
| filter aws.vpc.id == "vpc-0be61db7c5d2d1bd1"
| summarize resource_count = count(), by: {type, aws.subnet.id}
| sort resource_count descAnalyze security group usage:
smartscapeNodes "AWS_EC2_INSTANCE"
| filter contains(aws.security_group.id, "sg-abc123")
| fields name, aws.resource.id, aws.vpc.id, aws.subnet.id→ For VPC networking, see references/vpc-networking-security.md → For security group patterns, see references/security-compliance.md
3. Database Monitoring
List all RDS instances:
smartscapeNodes "AWS_RDS_DBINSTANCE"
| fields name, aws.account.id, aws.region, aws.vpc.id, aws.availability_zoneFind Multi-AZ databases:
smartscapeNodes "AWS_RDS_DBINSTANCE"
| parse aws.object, "JSON:awsjson"
| fieldsAdd multiAZ = awsjson[configuration][multiAZ]
| filter multiAZ == true
| fields name, aws.resource.id, aws.regionGroup by engine type:
smartscapeNodes "AWS_RDS_DBINSTANCE"
| parse aws.object, "JSON:awsjson"
| fieldsAdd engine = awsjson[configuration][engine]
| summarize db_count = count(), by: {engine, aws.region}
| sort db_count desc→ For database monitoring, see references/database-monitoring.md
4. Serverless and Container Workloads
List Lambda functions:
smartscapeNodes "AWS_LAMBDA_FUNCTION"
| fields name, aws.account.id, aws.region, aws.vpc.idFind ECS services in a cluster:
smartscapeNodes "AWS_ECS_SERVICE"
| traverse "belongs_to", "AWS_ECS_CLUSTER"
| fields name, aws.resource.id, aws.regionList EKS clusters:
smartscapeNodes "AWS_EKS_CLUSTER"
| fields name, aws.account.id, aws.region, aws.vpc.id→ For serverless, see references/serverless-containers.md → For containers, see references/serverless-containers.md
5. Load Balancer Topology
Complete load balancer to instance mapping:
smartscapeNodes "AWS_ELASTICLOADBALANCINGV2_LOADBALANCER"
| parse aws.object, "JSON:awsjson"
| fieldsAdd dnsName = awsjson[configuration][dnsName], scheme = awsjson[configuration][scheme]
| filter scheme == "internet-facing"
| traverse "balanced_by", "AWS_ELASTICLOADBALANCINGV2_TARGETGROUP", direction:backward, fieldsKeep:{dnsName, id}
| fieldsAdd targetGroupName = aws.resource.name
| traverse "balances", "AWS_EC2_INSTANCE", fieldsKeep: {targetGroupName, id}
| fieldsAdd loadBalancerDnsName = dt.traverse.history[-2][dnsName],
loadBalancerId = dt.traverse.history[-2][id],
targetGroupId = dt.traverse.history[-1][id]→ For load balancing, see references/load-balancing-api.md
6. Cost Optimization
Find unattached EBS volumes:
More from dynatrace
Use this skill in a project
Open any RiverX project, search the Skills panel for dynatrace/dynatrace-for-ai/dt-obs-aws, and install it in one click.
