{"id":"6e6461f4-f507-4f20-af5a-075a84f263cf","shortId":"CFupmu","kind":"skill","title":"dt-obs-aws","tagline":">-","description":"# AWS Cloud Infrastructure\n\nMonitor and analyze AWS resources using Dynatrace Smartscape and DQL. Query AWS services, optimize costs, manage security, and plan capacity across your AWS infrastructure.\n\n## When to Use This Skill\n\nUse this skill when the user needs to work with AWS resources in Dynatrace. Load the reference file for the task type:\n\n- **Inventory:** \"Show me all EC2 instances in us-east-1\"\n- **Network:** \"Find all resources in VPC vpc-abc123\"\n- **Database:** \"List all RDS instances with Multi-AZ enabled\"\n- **Serverless:** \"Show Lambda functions with VPC access\"\n- **Cost:** \"Find unattached EBS volumes for cost savings\"\n- **Security:** \"Identify publicly accessible databases\"\n- **Compliance:** \"Find resources missing Environment tags\"\n- **Capacity:** \"Analyze subnet IP utilization\"\n- **Troubleshoot:** \"Map load balancer to instances through target groups\"\n- **Problem Analysis:** \"What changed before this AWS problem?\" / \"What events affected this resource?\"\n- **Workload Context:** \"Is this instance behind a load balancer, in an EKS cluster, or managed by ECS?\"\n- **Events:** \"Have there been any recent events in AWS affecting this resource?\"\n\n---\n\n## Core Concepts\n\n### Entity Types\n\nAWS resources use the `AWS_*` prefix and can be queried using the `smartscapeNodes` function. All AWS entities are automatically discovered and modeled in Dynatrace Smartscape.\n\n**Compute:** `AWS_EC2_INSTANCE`, `AWS_LAMBDA_FUNCTION`, `AWS_ECS_CLUSTER`, `AWS_ECS_SERVICE`, `AWS_EKS_CLUSTER`\n**Networking:** `AWS_EC2_VPC`, `AWS_EC2_SUBNET`, `AWS_EC2_SECURITYGROUP`, `AWS_EC2_NATGATEWAY`, `AWS_EC2_VPCENDPOINT`\n**Database:** `AWS_RDS_DBINSTANCE`, `AWS_RDS_DBCLUSTER`, `AWS_DYNAMODB_TABLE`, `AWS_ELASTICACHE_CACHECLUSTER`\n**Storage:** `AWS_S3_BUCKET`, `AWS_EC2_VOLUME`, `AWS_EFS_FILESYSTEM`\n**Load Balancing:** `AWS_ELASTICLOADBALANCINGV2_LOADBALANCER`, `AWS_ELASTICLOADBALANCINGV2_TARGETGROUP`\n**Messaging:** `AWS_SQS_QUEUE`, `AWS_SNS_TOPIC`, `AWS_EVENTS_EVENTBUS`, `AWS_MSK_CLUSTER`\n\n### Common AWS Fields\n\nAll AWS entities include:\n- `aws.account.id` - AWS account identifier\n- `aws.region` - AWS region (e.g., us-east-1)\n- `aws.resource.id` - Unique resource identifier\n- `aws.resource.name` - Resource name\n- `aws.arn` - Amazon Resource Name\n- `aws.vpc.id` - VPC identifier (for VPC-attached resources)\n- `aws.subnet.id` - Subnet identifier\n- `aws.availability_zone` - Availability zone\n- `aws.security_group.id` - Security group IDs (array)\n- `tags` - Resource tags (use `tags[TagName]`)\n\n### AWS Fields on Logs and Bizevents\n\nAWS-originated **logs** (`fetch logs`) carry these fields — no exploration needed:\n- `aws.region`, `aws.account.id`, `aws.service`, `aws.log_group`, `aws.log_stream`\n- Plus standard log fields: `content`, `loglevel`, `timestamp`, `k8s.*`, `dt.smartscape.*`\n\nAWS-originated **bizevents** (`fetch bizevents`) carry:\n- `aws.region`, `aws.account.id`, `event.type`, `event.provider`\n\nUse `filter isNotNull(aws.region)` to scope to AWS-originated records.\n\n### Relationship Types\n\nAWS entities use these relationship types:\n- `is_attached_to` - Exclusive attachment (e.g., volume to instance)\n- `uses` - Dependency relationship (e.g., instance uses security group)\n- `runs_on` - Vertical relationship (e.g., instance runs on AZ)\n- `is_part_of` - Composition (e.g., instance in cluster)\n- `belongs_to` - Aggregation (e.g., service belongs to cluster)\n- `balances` - Load balancing (e.g., target group balances instances)\n- `balanced_by` - Inverse load-balancing relationship (e.g., load balancer balanced by target group)\n\n### AWS Metric Key Naming Convention\n\nDynatrace ingests AWS CloudWatch metrics using this pattern:\n\n```\ncloud.aws.<service>.<MetricName>.By.<DimensionName>\n```\n\nThe `<service>` is the lowercase AWS service name, `<MetricName>` is the CloudWatch metric name (case-preserved), and `<DimensionName>` is the CloudWatch dimension.\n\nExamples: `cloud.aws.ec2.CPUUtilization.By.InstanceId`, `cloud.aws.lambda.Invocations.By.FunctionName`, `cloud.aws.rds.CPUUtilization.By.DBInstanceIdentifier`\n\nUse `timeseries`, not `fetch`, for these metrics. Group by `dt.smartscape_source.id` to split by entity.\n\n→ See [references/metrics-performance.md](references/metrics-performance.md) for the complete metric catalog by service with DQL query templates.\n\n---\n\n## Key Workflows\n\n### 1. AWS Resource Discovery\n\nGet all AWS resources by type:\n\n```dql\nsmartscapeNodes \"AWS_*\"\n| summarize count = count(), by: {type}\n| sort count desc\n```\n\nFilter by account and region:\n\n```dql\nsmartscapeNodes \"AWS_*\"\n| filter aws.account.id == \"123456789012\" and aws.region == \"us-east-1\"\n| fields type, name, aws.resource.id\n```\n\nUsing tags for filtering:\n\n```dql\nsmartscapeNodes \"AWS_*\"\n| filter tags[Environment] == \"production\"\n| summarize count = count(), by: {type, aws.region}\n```\n\n→ For complete resource inventory patterns, see [references/resource-management.md](references/resource-management.md)\n\n### 2. VPC Networking Analysis\n\nList all VPCs:\n\n```dql\nsmartscapeNodes \"AWS_EC2_VPC\"\n| fields name, aws.account.id, aws.region, aws.vpc.id\n```\n\nFind resources in a VPC:\n\n```dql\nsmartscapeNodes \"AWS_*\"\n| filter aws.vpc.id == \"vpc-0be61db7c5d2d1bd1\"\n| summarize resource_count = count(), by: {type, aws.subnet.id}\n| sort resource_count desc\n```\n\nAnalyze security group usage:\n\n```dql\nsmartscapeNodes \"AWS_EC2_INSTANCE\"\n| filter contains(aws.security_group.id, \"sg-abc123\")\n| fields name, aws.resource.id, aws.vpc.id, aws.subnet.id\n```\n\n→ For VPC networking, see [references/vpc-networking-security.md](references/vpc-networking-security.md)  \n→ For security group patterns, see [references/security-compliance.md](references/security-compliance.md)\n\n### 3. Database Monitoring\n\nList all RDS instances:\n\n```dql\nsmartscapeNodes \"AWS_RDS_DBINSTANCE\"\n| fields name, aws.account.id, aws.region, aws.vpc.id, aws.availability_zone\n```\n\nFind Multi-AZ databases:\n\n```dql\nsmartscapeNodes \"AWS_RDS_DBINSTANCE\"\n| parse aws.object, \"JSON:awsjson\"\n| fieldsAdd multiAZ = awsjson[configuration][multiAZ]\n| filter multiAZ == true\n| fields name, aws.resource.id, aws.region\n```\n\nGroup by engine type:\n\n```dql\nsmartscapeNodes \"AWS_RDS_DBINSTANCE\"\n| parse aws.object, \"JSON:awsjson\"\n| fieldsAdd engine = awsjson[configuration][engine]\n| summarize db_count = count(), by: {engine, aws.region}\n| sort db_count desc\n```\n\n→ For database monitoring, see [references/database-monitoring.md](references/database-monitoring.md)\n\n### 4. Serverless and Container Workloads\n\nList Lambda functions:\n\n```dql\nsmartscapeNodes \"AWS_LAMBDA_FUNCTION\"\n| fields name, aws.account.id, aws.region, aws.vpc.id\n```\n\nFind ECS services in a cluster:\n\n```dql\nsmartscapeNodes \"AWS_ECS_SERVICE\"\n| traverse \"belongs_to\", \"AWS_ECS_CLUSTER\"\n| fields name, aws.resource.id, aws.region\n```\n\nList EKS clusters:\n\n```dql\nsmartscapeNodes \"AWS_EKS_CLUSTER\"\n| fields name, aws.account.id, aws.region, aws.vpc.id\n```\n\n→ For serverless, see [references/serverless-containers.md](references/serverless-containers.md)  \n→ For containers, see [references/serverless-containers.md](references/serverless-containers.md)\n\n### 5. Load Balancer Topology\n\nComplete load balancer to instance mapping:\n\n```dql\nsmartscapeNodes \"AWS_ELASTICLOADBALANCINGV2_LOADBALANCER\"\n| parse aws.object, \"JSON:awsjson\"\n| fieldsAdd dnsName = awsjson[configuration][dnsName], scheme = awsjson[configuration][scheme]\n| filter scheme == \"internet-facing\"\n| traverse \"balanced_by\", \"AWS_ELASTICLOADBALANCINGV2_TARGETGROUP\", direction:backward, fieldsKeep:{dnsName, id}\n| fieldsAdd targetGroupName = aws.resource.name\n| traverse \"balances\", \"AWS_EC2_INSTANCE\", fieldsKeep: {targetGroupName, id}\n| fieldsAdd loadBalancerDnsName = dt.traverse.history[-2][dnsName],\n            loadBalancerId = dt.traverse.history[-2][id],\n            targetGroupId = dt.traverse.history[-1][id]\n```\n\n→ For load balancing, see [references/load-balancing-api.md](references/load-balancing-api.md)\n\n### 6. Cost Optimization\n\nFind unattached EBS volumes:\n\n```dql\nsmartscapeNodes \"AWS_EC2_VOLUME\"\n| parse aws.object, \"JSON:awsjson\"\n| fieldsAdd state = awsjson[configuration][state]\n| filter state == \"available\"\n| fields name, aws.resource.id, aws.availability_zone, aws.account.id\n```\n\nAnalyze EBS costs by type:\n\n```dql\nsmartscapeNodes \"AWS_EC2_VOLUME\"\n| parse aws.object, \"JSON:awsjson\"\n| fieldsAdd volumeType = awsjson[configuration][volumeType],\n            size = awsjson[configuration][size],\n            state = awsjson[configuration][state]\n| summarize total_volumes = count(), total_size_gb = sum(size), by: {volumeType, state}\n| sort total_size_gb desc\n```\n\n→ For cost optimization, see [references/cost-optimization.md](references/cost-optimization.md)\n\n### 7. Security and Compliance\n\nFind publicly accessible databases:\n\n```dql\nsmartscapeNodes \"AWS_RDS_DBINSTANCE\"\n| parse aws.object, \"JSON:awsjson\"\n| fieldsAdd publiclyAccessible = awsjson[configuration][publiclyAccessible]\n| filter publiclyAccessible == true\n| fields name, aws.resource.id, aws.vpc.id, aws.account.id\n```\n\nSecurity group blast radius:\n\n```dql\nsmartscapeNodes \"AWS_EC2_INSTANCE\"\n| traverse \"uses\", \"AWS_EC2_SECURITYGROUP\"\n| summarize instance_count = count(), by: {aws.resource.name, aws.vpc.id}\n| sort instance_count desc\n| limit 20\n```\n\n→ For security, see [references/security-compliance.md](references/security-compliance.md)\n\n### 8. Resource Ownership and Tagging\n\nFind untagged resources:\n\n```dql\nsmartscapeNodes \"AWS_*\"\n| filter isNull(tags)\n| fields type, name, aws.resource.id, aws.account.id, aws.region\n```\n\nCost allocation by cost center:\n\n```dql\nsmartscapeNodes \"AWS_*\"\n| filter isNotNull(tags[CostCenter])\n| summarize resource_count = count(), by: {tags[CostCenter], type}\n| sort resource_count desc\n```\n\n→ For resource ownership, see [references/resource-ownership.md](references/resource-ownership.md)\n\n---\n\n## Common Query Patterns\n\n| Pattern | Template |\n|---------|----------|\n| **Discovery** | `smartscapeNodes \"AWS_*\" \\| fieldsAdd <attrs> \\| filter <cond> \\| summarize <agg>` |\n| **Config parsing** | `smartscapeNodes \"AWS_<T>\" \\| parse aws.object, \"JSON:awsjson\" \\| fieldsAdd f = awsjson[configuration][field]` |\n| **Traversal** | `smartscapeNodes \"AWS_<SRC>\" \\| traverse \"<rel>\", \"AWS_<TGT>\"` |\n| **Multi-type** | `smartscapeNodes \"AWS_T1\", \"AWS_T2\" \\| filter <cond> \\| summarize count(), by: {type}` |\n\n---\n\n\n## Best Practices\n\n### Query Optimization\n1. Filter early by account and region\n2. Use specific entity types (avoid `\"AWS_*\"` wildcards when possible)\n3. Limit results with `| limit N` for exploration\n4. Use `isNotNull()` checks before accessing nested fields\n\n### Configuration Parsing\n1. Always parse `aws.object` with JSON parser: `parse aws.object, \"JSON:awsjson\"`\n2. Use consistent field naming: `fieldsAdd configField = awsjson[configuration][field]`\n3. Check for null values after parsing\n4. Use `toString()` for complex nested objects\n\n### Security Fields\n1. Security group IDs are arrays - use `contains()` or `expand`\n2. Parse `aws.object` for detailed security context\n3. Check `publiclyAccessible`, `storageEncrypted`, and similar flags\n4. Validate IAM role assumptions\n\n### Tagging Strategy\n1. Use `tags[TagName]` for filtering by specific tag value\n2. `tags` is a JSON object, not an array — use `isNull(tags)` for untagged resources, **never** `arraySize(tags)`\n3. Use `isNull(tags[TagName])` to find resources missing a specific tag\n4. Implement consistent tag naming conventions\n5. Track tag coverage with summarize operations\n\n---\n\n## Limitations and Notes\n\n### Smartscape Limitations\n- AWS object configuration requires parsing with `parse aws.object, \"JSON:awsjson\"`\n- AWS metrics are available as Dynatrace metrics using the `cloud.aws.*` naming convention (see [AWS Metric Naming Convention](#aws-metric-naming-convention))\n- Resource discovery depends on AWS integration configuration\n- Tag synchronization may have slight delays\n\n### Relationship Traversal\n- Use `direction:backward` for reverse relationships (e.g., target group → load balancer)\n- Use `fieldsKeep` to maintain important fields through traversal\n- Access traversal history with `dt.traverse.history[-N]`\n- Complex topologies may require multiple traverse operations\n\n### General Tips\n- Use `getNodeName()` for human-readable resource names\n- Handle null values gracefully with `isNotNull()` and `isNull()`\n- Combine region and account filters for large environments\n- Use `countDistinct()` for unique resource counts\n\n---\n\n## When to Load References\n\nThis skill uses **progressive disclosure**. Start here for 80% of use cases. Load reference files for detailed specifications when needed.\n\n### Load vpc-networking-security.md when:\n- Analyzing VPC topology and connectivity\n- Investigating security group configurations\n- Finding resources by security group\n- Troubleshooting network interface issues\n\n### Load database-monitoring.md when:\n- Managing RDS instances and clusters\n- Analyzing database engine distributions\n- Checking Multi-AZ configurations\n- Monitoring cache clusters\n\n### Load serverless-containers.md when:\n- Working with Lambda functions\n- Analyzing ECS/EKS deployments\n- Investigating container networking\n- Planning serverless migrations\n\n### Load load-balancing-api.md when:\n- Mapping load balancer topologies\n- Analyzing target group health\n- Working with API Gateway\n- Configuring CloudFront\n\n### Load messaging-event-streaming.md when:\n- Managing SQS queues and SNS topics\n- Analyzing EventBridge event buses\n- Working with Kinesis or MSK\n- Monitoring Step Functions\n\n### Load resource-management.md when:\n- Conducting resource audits\n- Analyzing tag compliance\n- Finding unattached resources\n- Planning regional distribution\n\n### Load cost-optimization.md when:\n- Identifying cost savings opportunities\n- Analyzing storage costs\n- Finding unused resources\n- Optimizing instance types\n\n### Load capacity-planning.md when:\n- Planning capacity expansions\n- Analyzing resource utilization\n- Monitoring subnet IP usage\n- Sizing auto-scaling groups\n\n### Load security-compliance.md when:\n- Conducting security audits\n- Checking encryption status\n- Analyzing IAM roles\n- Finding public resources\n\n### Load resource-ownership.md when:\n- Implementing chargeback\n- Tracking resource ownership\n- Allocating costs by team\n- Managing multi-account environments\n\n### Load events.md when:\n- Investigating what changed before or during a problem\n- Checking for recent CloudFormation stack deployments\n- Reviewing AWS Auto Scaling activity (scale-in/scale-out)\n- Checking AWS Health service events affecting a resource\n\n### Load workload-detection.md when:\n- Determining how an EC2 instance is orchestrated (ECS, EKS, Batch, ASG, standalone)\n- Following a resolution path that depends on the workload pattern\n- Understanding the blast radius of an instance failure\n\n### Check health alerts when:\n- Verifying whether Dynatrace health alerts are configured for an AWS resource type\n- Confirming alert coverage before or after a problem\n\nUse `dtctl` to query the `builtin:health-experience.cloud-alert` settings schema. Replace `CpuUtilization` with the metric name relevant to the resource type being investigated:\n\n```bash\ndtctl get settings --schema builtin:health-experience.cloud-alert -o json --plain \\\n  | jq '[.[] | select(.value.alertKey | test(\"CpuUtilization\"))]'\n```\n\n---\n\n## References\n\n- [vpc-networking-security.md](references/vpc-networking-security.md) - VPC infrastructure, security groups, and network connectivity\n- [database-monitoring.md](references/database-monitoring.md) - RDS, DynamoDB, ElastiCache, and Redshift monitoring\n- [serverless-containers.md](references/serverless-containers.md) - Lambda, ECS, EKS, and App Runner workloads\n- [load-balancing-api.md](references/load-balancing-api.md) - Load balancers, API Gateway, and CloudFront\n- [messaging-event-streaming.md](references/messaging-event-streaming.md) - SQS, SNS, EventBridge, Kinesis, and MSK\n- [resource-management.md](references/resource-management.md) - Resource inventory and lifecycle management\n- [cost-optimization.md](references/cost-optimization.md) - Cost savings and spending optimization\n- [capacity-planning.md](references/capacity-planning.md) - Capacity analysis and growth planning\n- [security-compliance.md](references/security-compliance.md) - Security configurations and compliance monitoring\n- [resource-ownership.md](references/resource-ownership.md) - Cost allocation and ownership tracking\n- [events.md](references/events.md) - AWS AutoScaling, Health, and CloudFormation events for problem timeline analysis\n- [workload-detection.md](references/workload-detection.md) - Identify how an EC2 instance is orchestrated (LB, ASG, ECS, EKS, Batch)\n\n---","tags":["obs","aws","dynatrace","for","agent-skills","ai-agents","claude-code","devops","dql","mcp","observability"],"capabilities":["skill","source-dynatrace","skill-dt-obs-aws","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-devops","topic-dql","topic-dynatrace","topic-mcp","topic-observability"],"categories":["dynatrace-for-ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Dynatrace/dynatrace-for-ai/dt-obs-aws","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Dynatrace/dynatrace-for-ai","source_repo":"https://github.com/Dynatrace/dynatrace-for-ai","install_from":"skills.sh"}},"qualityScore":"0.489","qualityRationale":"deterministic score 0.49 from registry signals: · indexed on github topic:agent-skills · 78 github stars · SKILL.md body (16,687 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:56:47.755Z","embedding":null,"createdAt":"2026-05-11T18:57:13.783Z","updatedAt":"2026-05-18T18:56:47.755Z","lastSeenAt":"2026-05-18T18:56:47.755Z","tsv":"'-1':878 '-2':870,874 '/scale-out':1621 '0be61db7c5d2d1bd1':625 '1':69,294,529,566,1124,1159,1196,1227 '123456789012':560 '2':596,1131,1170,1206,1237 '20':1022 '3':670,1141,1180,1213,1255 '4':750,1149,1187,1220,1267 '5':812,1273 '6':886 '7':966 '8':1028 '80':1408 'abc123':78,651 'access':95,107,972,1154,1351 'account':285,552,1128,1385,1594 'across':28 'activ':1617 'affect':139,168,1627 'aggreg':432 'alert':1665,1671,1680,1694,1717 'alloc':1049,1587,1800 'alway':1160 'amazon':303 'analysi':130,599,1786,1815 'analyz':10,116,637,916,1423,1449,1468,1484,1503,1521,1537,1552,1573 'api':1490,1757 'app':1750 'array':325,1201,1245 'arrays':1253 'asg':1643,1826 'assumpt':1224 'attach':312,397,400 'audit':1520,1569 'auto':1561,1615 'auto-sc':1560 'automat':193 'autosc':1807 'avail':319,909,1298 'avoid':1136 'aw':4,5,11,19,30,47,135,167,175,179,190,201,204,207,210,213,217,220,223,226,229,233,236,239,242,246,249,252,257,260,264,267,270,273,277,280,284,288,332,339,367,385,390,460,467,479,530,535,541,557,577,605,620,643,679,696,721,760,776,782,794,824,848,861,895,923,976,1002,1007,1038,1055,1085,1092,1104,1106,1111,1113,1137,1285,1295,1308,1313,1321,1614,1623,1676,1806 'aws-metric-naming-convent':1312 'aws-origin':338,366,384 'aws.account.id':283,351,374,559,610,684,765,799,915,995,1046 'aws.arn':302 'aws.availability':317,687,913 'aws.log':353,355 'aws.object':700,725,828,899,927,980,1094,1162,1167,1208,1292 'aws.region':287,350,373,380,562,587,611,685,714,739,766,788,800,1047 'aws.resource.id':295,570,654,713,787,912,993,1045 'aws.resource.name':299,858,1015 'aws.security_group.id':321,648 'aws.service':352 'aws.subnet.id':314,632,656 'aws.vpc.id':306,612,622,655,686,767,801,994,1016 'awsjson':702,705,727,730,830,833,837,901,904,929,932,936,940,982,985,1096,1099,1169,1177,1294 'az':87,421,692,1456 'backward':852,1334 'balanc':123,150,256,438,440,444,446,451,455,456,814,818,846,860,882,1342,1482,1756 'bash':1710 'batch':1642,1829 'behind':147 'belong':430,435,780 'best':1120 'bizev':337,369,371 'blast':998,1657 'bucket':248 'builtin':1692,1715 'buse':1506 'cach':1459 'cacheclust':244 'capac':27,115,1550,1785 'capacity-planning.md':1547,1783 'carri':344,372 'case':488,1411 'case-preserv':487 'catalog':520 'center':1052 'chang':132,1601 'chargeback':1583 'check':1152,1181,1214,1453,1570,1607,1622,1663 'cloud':6 'cloud.aws':473,1304 'cloud.aws.ec2.cpuutilization.by.instanceid':496 'cloud.aws.lambda.invocations.by.functionname':497 'cloud.aws.rds.cpuutilization.by.dbinstanceidentifier':498 'cloudform':1610,1810 'cloudfront':1493,1760 'cloudwatch':468,484,493 'cluster':154,209,215,275,429,437,773,784,791,796,1448,1460 'combin':1382 'common':276,1078 'complet':518,589,816 'complex':1191,1357 'complianc':109,969,1523,1795 'composit':425 'comput':200 'concept':172 'conduct':1518,1567 'config':1089 'configfield':1176 'configur':706,731,834,838,905,933,937,941,986,1100,1157,1178,1287,1323,1431,1457,1492,1673,1793 'confirm':1679 'connect':1427,1735 'consist':1172,1269 'contain':647,753,808,1203,1472 'content':361 'context':143,1212 'convent':464,1272,1306,1311,1316 'core':171 'cost':22,96,102,887,918,961,1048,1051,1534,1539,1588,1778,1799 'cost-optimization.md':1531,1776 'costcent':1059,1066 'count':543,544,548,583,584,628,629,635,735,736,742,946,1012,1013,1019,1062,1063,1070,1117,1395 'countdistinct':1391 'coverag':1276,1681 'cpuutil':1698,1725 'databas':79,108,232,671,693,745,973,1450 'database-monitoring.md':1442,1736 'db':734,741 'dbcluster':238 'dbinstanc':235,681,698,723,978 'delay':1329 'depend':406,1319,1650 'deploy':1470,1612 'desc':549,636,743,959,1020,1071 'detail':1210,1416 'determin':1633 'dimens':494 'direct':851,1333 'disclosur':1404 'discov':194 'discoveri':532,1083,1318 'distribut':1452,1529 'dnsname':832,835,854,871 'dql':17,524,539,555,575,603,618,641,677,694,719,758,774,792,822,893,921,974,1000,1036,1053 'dt':2 'dt-obs-aw':1 'dt.smartscape':365 'dt.smartscape_source.id':508 'dt.traverse.history':869,873,877,1355 'dtctl':1688,1711 'dynamodb':240,1739 'dynatrac':14,50,198,465,1300,1669 'e.g':290,401,408,417,426,433,441,453,1338 'earli':1126 'east':68,293,565 'eb':99,891,917 'ec':158,208,211,769,777,783,1640,1747,1827 'ec2':63,202,218,221,224,227,230,250,606,644,862,896,924,1003,1008,1636,1821 'ecs/eks':1469 'ef':253 'ek':153,214,790,795,1641,1748,1828 'elasticach':243,1740 'elasticloadbalancingv2':258,261,825,849 'enabl':88 'encrypt':1571 'engin':717,729,732,738,1451 'entiti':173,191,281,391,512,1134 'environ':113,580,1389,1595 'event':138,159,165,271,1505,1626,1811 'event.provider':376 'event.type':375 'eventbridg':1504,1765 'eventbus':272 'events.md':1597,1804 'exampl':495 'exclus':399 'expand':1205 'expans':1551 'explor':348,1148 'f':1098 'face':844 'failur':1662 'fetch':342,370,502 'field':278,333,346,360,567,608,652,682,711,763,785,797,910,991,1042,1101,1156,1173,1179,1195,1348 'fieldsadd':703,728,831,856,867,902,930,983,1086,1097,1175 'fieldskeep':853,864,1344 'file':54,1414 'filesystem':254 'filter':378,550,558,574,578,621,646,708,840,907,988,1039,1056,1087,1115,1125,1232,1386 'find':71,97,110,613,689,768,889,970,1033,1261,1432,1524,1540,1576 'flag':1219 'follow':1645 'function':92,188,206,757,762,1467,1514 'gateway':1491,1758 'gb':949,958 'general':1364 'get':533,1712 'getnodenam':1367 'grace':1377 'group':128,323,354,412,443,459,506,639,665,715,997,1198,1340,1430,1436,1486,1563,1732 'growth':1788 'handl':1374 'health':1487,1624,1664,1670,1808 'health-experience.cloud':1693,1716 'histori':1353 'human':1370 'human-read':1369 'iam':1222,1574 'id':324,855,866,875,879,1199 'identifi':105,286,298,308,316,1533,1818 'implement':1268,1582 'import':1347 'includ':282 'infrastructur':7,31,1730 'ingest':466 'instanc':64,83,125,146,203,404,409,418,427,445,645,676,820,863,1004,1011,1018,1446,1544,1637,1661,1822 'integr':1322 'interfac':1439 'internet':843 'internet-fac':842 'inventori':59,591,1772 'invers':448 'investig':1428,1471,1599,1709 'ip':118,1557 'isnotnul':379,1057,1151,1379 'isnul':1040,1247,1257,1381 'issu':1440 'jq':1721 'json':701,726,829,900,928,981,1095,1164,1168,1241,1293,1719 'k8s':364 'key':462,527 'kinesi':1509,1766 'lambda':91,205,756,761,1466,1746 'larg':1388 'lb':1825 'lifecycl':1774 'limit':1021,1142,1145,1280,1284 'list':80,600,673,755,789 'load':51,122,149,255,439,450,454,813,817,881,1341,1398,1412,1420,1441,1461,1477,1481,1494,1515,1530,1546,1564,1579,1596,1630,1755 'load-balanc':449 'load-balancing-api.md':1478,1753 'loadbalanc':259,826 'loadbalancerdnsnam':868 'loadbalancerid':872 'log':335,341,343,359 'loglevel':362 'lowercas':478 'maintain':1346 'manag':23,156,1444,1497,1591,1775 'map':121,821,1480 'may':1326,1359 'messag':263 'messaging-event-streaming.md':1495,1761 'metric':461,469,485,505,519,1296,1301,1309,1314,1701 'migrat':1476 'miss':112,1263 'model':196 'monitor':8,672,746,1458,1512,1555,1743,1796 'msk':274,1511,1768 'multi':86,691,1108,1455,1593 'multi-account':1592 'multi-az':85,690,1454 'multi-typ':1107 'multiaz':704,707,709 'multipl':1361 'n':1146,1356 'name':301,305,463,481,486,569,609,653,683,712,764,786,798,911,992,1044,1174,1271,1305,1310,1315,1373,1702 'natgateway':228 'need':43,349,1419 'nest':1155,1192 'network':70,216,598,659,1438,1473,1734 'never':1252 'note':1282 'null':1183,1375 'o':1718 'ob':3 'object':1193,1242,1286 'oper':1279,1363 'opportun':1536 'optim':21,888,962,1123,1543,1782 'orchestr':1639,1824 'origin':340,368,386 'ownership':1030,1074,1586,1802 'pars':699,724,827,898,926,979,1090,1093,1158,1161,1166,1186,1207,1289,1291 'parser':1165 'part':423 'path':1648 'pattern':472,592,666,1080,1081,1654 'plain':1720 'plan':26,1474,1527,1549,1789 'plus':357 'possibl':1140 'practic':1121 'prefix':180 'preserv':489 'problem':129,136,1606,1686,1813 'product':581 'progress':1403 'public':106,971,1577 'publiclyaccess':984,987,989,1215 'queri':18,184,525,1079,1122,1690 'queue':266,1499 'radius':999,1658 'rds':82,234,237,675,680,697,722,977,1445,1738 'readabl':1371 'recent':164,1609 'record':387 'redshift':1742 'refer':53,1399,1413,1726 'references/capacity-planning.md':1784 'references/cost-optimization.md':964,965,1777 'references/database-monitoring.md':748,749,1737 'references/events.md':1805 'references/load-balancing-api.md':884,885,1754 'references/messaging-event-streaming.md':1762 'references/metrics-performance.md':514,515 'references/resource-management.md':594,595,1770 'references/resource-ownership.md':1076,1077,1798 'references/security-compliance.md':668,669,1026,1027,1791 'references/serverless-containers.md':805,806,810,811,1745 'references/vpc-networking-security.md':661,662,1728 'references/workload-detection.md':1817 'region':289,554,1130,1383,1528 'relationship':388,394,407,416,452,1330,1337 'relev':1703 'replac':1697 'requir':1288,1360 'resolut':1647 'resourc':12,48,73,111,141,170,176,297,300,304,313,327,531,536,590,614,627,634,1029,1035,1061,1069,1073,1251,1262,1317,1372,1394,1433,1519,1526,1542,1553,1578,1585,1629,1677,1706,1771 'resource-management.md':1516,1769 'resource-ownership.md':1580,1797 'result':1143 'revers':1336 'review':1613 'role':1223,1575 'run':413,419 'runner':1751 's3':247 'save':103,1535,1779 'scale':1562,1616,1619 'scale-in':1618 'schema':1696,1714 'scheme':836,839,841 'scope':382 'secur':24,104,322,411,638,664,967,996,1024,1194,1197,1211,1429,1435,1568,1731,1792 'security-compliance.md':1565,1790 'securitygroup':225,1009 'see':513,593,660,667,747,804,809,883,963,1025,1075,1307 'select':1722 'serverless':89,751,803,1475 'serverless-containers.md':1462,1744 'servic':20,212,434,480,522,770,778,1625 'set':1695,1713 'sg':650 'sg-abc123':649 'show':60,90 'similar':1218 'size':935,938,948,951,957,1559 'skill':36,39,1401 'skill-dt-obs-aws' 'slight':1328 'smartscap':15,199,1283 'smartscapenod':187,540,556,576,604,619,642,678,695,720,759,775,793,823,894,922,975,1001,1037,1054,1084,1091,1103,1110 'sns':268,1501,1764 'sort':547,633,740,955,1017,1068 'source-dynatrace' 'specif':1133,1234,1265,1417 'spend':1781 'split':510 'sqs':265,1498,1763 'stack':1611 'standalon':1644 'standard':358 'start':1405 'state':903,906,908,939,942,954 'status':1572 'step':1513 'storag':245,1538 'storageencrypt':1216 'strategi':1226 'stream':356 'subnet':117,222,315,1556 'sum':950 'summar':542,582,626,733,943,1010,1060,1088,1116,1278 'synchron':1325 't1':1112 't2':1114 'tabl':241 'tag':114,326,328,330,572,579,1032,1041,1058,1065,1225,1229,1235,1238,1248,1254,1258,1266,1270,1275,1324,1522 'tagnam':331,1230,1259 'target':127,442,458,1339,1485 'targetgroup':262,850 'targetgroupid':876 'targetgroupnam':857,865 'task':57 'team':1590 'templat':526,1082 'test':1724 'timelin':1814 'timeseri':500 'timestamp':363 'tip':1365 'topic':269,1502 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-devops' 'topic-dql' 'topic-dynatrace' 'topic-mcp' 'topic-observability' 'topolog':815,1358,1425,1483 'tostr':1189 'total':944,947,956 'track':1274,1584,1803 'travers':779,845,859,1005,1102,1105,1331,1350,1352,1362 'troubleshoot':120,1437 'true':710,990 'type':58,174,389,395,538,546,568,586,631,718,920,1043,1067,1109,1119,1135,1545,1678,1707 'unattach':98,890,1525 'understand':1655 'uniqu':296,1393 'untag':1034,1250 'unus':1541 'us':67,292,564 'us-east':66,291,563 'usag':640,1558 'use':13,34,37,177,185,329,377,392,405,410,470,499,571,1006,1132,1150,1171,1188,1202,1228,1246,1256,1302,1332,1343,1366,1390,1402,1410,1687 'user':42 'util':119,1554 'valid':1221 'valu':1184,1236,1376 'value.alertkey':1723 'verifi':1667 'vertic':415 'volum':100,251,402,892,897,925,945 'volumetyp':931,934,953 'vpc':75,77,94,219,307,311,597,607,617,624,658,1424,1729 'vpc-0be61db7c5d2d1bd1':623 'vpc-abc123':76 'vpc-attach':310 'vpc-networking-security.md':1421,1727 'vpcendpoint':231 'vpcs':602 'whether':1668 'wildcard':1138 'work':45,1464,1488,1507 'workflow':528 'workload':142,754,1653,1752 'workload-detection.md':1631,1816 'zone':318,320,688,914","prices":[{"id":"f86a972b-3447-4244-bb00-7b9c699eb84b","listingId":"6e6461f4-f507-4f20-af5a-075a84f263cf","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Dynatrace","category":"dynatrace-for-ai","install_from":"skills.sh"},"createdAt":"2026-05-11T18:57:13.783Z"}],"sources":[{"listingId":"6e6461f4-f507-4f20-af5a-075a84f263cf","source":"github","sourceId":"Dynatrace/dynatrace-for-ai/dt-obs-aws","sourceUrl":"https://github.com/Dynatrace/dynatrace-for-ai/tree/main/skills/dt-obs-aws","isPrimary":false,"firstSeenAt":"2026-05-11T18:57:13.783Z","lastSeenAt":"2026-05-18T18:56:47.755Z"}],"details":{"listingId":"6e6461f4-f507-4f20-af5a-075a84f263cf","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Dynatrace","slug":"dt-obs-aws","github":{"repo":"Dynatrace/dynatrace-for-ai","stars":78,"topics":["agent-skills","ai-agents","claude-code","devops","dql","dynatrace","mcp","observability"],"license":"apache-2.0","html_url":"https://github.com/Dynatrace/dynatrace-for-ai","pushed_at":"2026-05-15T16:06:09Z","description":"Skills, prompts, and instructions for building AI agents on top of Dynatrace production context","skill_md_sha":"530aa52342d9d11d1beb8f65a3cc4f7fd0e6dc8a","skill_md_path":"skills/dt-obs-aws/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Dynatrace/dynatrace-for-ai/tree/main/skills/dt-obs-aws"},"layout":"multi","source":"github","category":"dynatrace-for-ai","frontmatter":{"name":"dt-obs-aws","license":"Apache-2.0","description":">-"},"skills_sh_url":"https://skills.sh/Dynatrace/dynatrace-for-ai/dt-obs-aws"},"updatedAt":"2026-05-18T18:56:47.755Z"}}