Loading...
Loading...
Compare original and translation side by side
| Task | File to load |
|---|---|
| Inventory and topology queries | (no additional file — use core patterns above) |
| Query AWS metric timeseries (CPU, errors, latency) | Load |
| VPC topology, security groups, subnet analysis | Load |
| RDS, DynamoDB, ElastiCache investigation | Load |
| Lambda, ECS, EKS investigation | Load |
| ALB/NLB topology, API Gateway | Load |
| SQS, SNS, EventBridge, MSK | Load |
| Unattached resources, tag compliance, lifecycle | Load |
| Cost savings, unused resources | Load |
| Capacity headroom, subnet IP, ASG limits | Load |
| Security audit, encryption, public access | Load |
| SG rule analysis (0.0.0.0/0, open ports) | Load |
| S3 public access, bucket encryption | Load |
| EBS volume encryption audit | Load |
| Cost allocation, chargeback, ownership | Load |
| 任务 | 需加载的文件 |
|---|---|
| 资源清单与拓扑查询 | (无需额外文件——使用上方的核心模式即可) |
| 查询AWS指标时序数据(CPU、错误、延迟) | 加载 |
| VPC拓扑、安全组、子网分析 | 加载 |
| RDS、DynamoDB、ElastiCache排查 | 加载 |
| Lambda、ECS、EKS排查 | 加载 |
| ALB/NLB拓扑、API Gateway | 加载 |
| SQS、SNS、EventBridge、MSK | 加载 |
| 未关联资源、标签合规、生命周期管理 | 加载 |
| 成本节约、闲置资源排查 | 加载 |
| 容量余量、子网IP、ASG限制检查 | 加载 |
| 安全审计、加密、公共访问检查 | 加载 |
| 安全组规则分析(0.0.0.0/0、开放端口) | 加载 |
| S3公共访问、存储桶加密检查 | 加载 |
| EBS卷加密审计 | 加载 |
| 成本分摊、费用记账、资源归属 | 加载 |
AWS_*smartscapeNodesAWS_EC2_INSTANCEAWS_LAMBDA_FUNCTIONAWS_ECS_CLUSTERAWS_ECS_SERVICEAWS_EKS_CLUSTERAWS_EC2_VPCAWS_EC2_SUBNETAWS_EC2_SECURITYGROUPAWS_EC2_NATGATEWAYAWS_EC2_VPCENDPOINTAWS_RDS_DBINSTANCEAWS_RDS_DBCLUSTERAWS_DYNAMODB_TABLEAWS_ELASTICACHE_CACHECLUSTERAWS_S3_BUCKETAWS_EC2_VOLUMEAWS_EFS_FILESYSTEMAWS_ELASTICLOADBALANCINGV2_LOADBALANCERAWS_ELASTICLOADBALANCINGV2_TARGETGROUPAWS_SQS_QUEUEAWS_SNS_TOPICAWS_EVENTS_EVENTBUSAWS_MSK_CLUSTERAWS_*smartscapeNodesAWS_EC2_INSTANCEAWS_LAMBDA_FUNCTIONAWS_ECS_CLUSTERAWS_ECS_SERVICEAWS_EKS_CLUSTERAWS_EC2_VPCAWS_EC2_SUBNETAWS_EC2_SECURITYGROUPAWS_EC2_NATGATEWAYAWS_EC2_VPCENDPOINTAWS_RDS_DBINSTANCEAWS_RDS_DBCLUSTERAWS_DYNAMODB_TABLEAWS_ELASTICACHE_CACHECLUSTERAWS_S3_BUCKETAWS_EC2_VOLUMEAWS_EFS_FILESYSTEMAWS_ELASTICLOADBALANCINGV2_LOADBALANCERAWS_ELASTICLOADBALANCINGV2_TARGETGROUPAWS_SQS_QUEUEAWS_SNS_TOPICAWS_EVENTS_EVENTBUSAWS_MSK_CLUSTERaws.account.idaws.regionaws.resource.idaws.resource.nameaws.arnaws.vpc.idaws.subnet.idaws.availability_zoneaws.security_group.idtagstags[TagName]aws.account.idaws.regionaws.resource.idaws.resource.nameaws.arnaws.vpc.idaws.subnet.idaws.availability_zoneaws.security_group.idtagstags[TagName]is_attached_tousesruns_onis_part_ofbelongs_tobalancesbalanced_byis_attached_tousesruns_onis_part_ofbelongs_tobalancesbalanced_bycloud.aws.<service>.<MetricName>.By.<DimensionName><service><MetricName><DimensionName>| CloudWatch metric | Dynatrace metric key |
|---|---|
| |
| |
| |
| |
| CloudWatch metric | Dynatrace metric key |
|---|---|
RDS | |
Lambda | |
SQS | |
ELB | |
timeseries cpu = avg(cloud.aws.ec2.CPUUtilization.By.InstanceId),
by: {dt.smartscape_source.id},
from: now()-1h
| limit 10cloud.aws.<service>.<MetricName>.By.<DimensionName><service><MetricName><DimensionName>| CloudWatch指标 | Dynatrace指标键 |
|---|---|
| |
| |
| |
| |
| CloudWatch指标 | Dynatrace指标键 |
|---|---|
RDS | |
Lambda | |
SQS | |
ELB | |
timeseries cpu = avg(cloud.aws.ec2.CPUUtilization.By.InstanceId),
by: {dt.smartscape_source.id},
from: now()-1h
| limit 10smartscapeNodes "AWS_*"
| filter aws.account.id == "<AWS_ACCOUNT_ID>" and aws.region == "<AWS_REGION>"
| summarize count = count(), by: {type}
| sort count desc"AWS_*""AWS_EC2_INSTANCE"| fields name, aws.account.id, aws.region, ...tags[TagName]smartscapeNodes "AWS_*"
| filter aws.account.id == "<AWS_ACCOUNT_ID>" and aws.region == "<AWS_REGION>"
| summarize count = count(), by: {type}
| sort count desc"AWS_*""AWS_EC2_INSTANCE"| fields name, aws.account.id, aws.region, ...tags[TagName]aws.objectsmartscapeNodes "AWS_RDS_DBINSTANCE"
| parse aws.object, "JSON:awsjson"
| fieldsAdd engine = awsjson[configuration][engine]
| summarize db_count = count(), by: {engine, aws.region}instanceTypestate[name]networkInterfaces[0][association][publicIp]enginemultiAZpubliclyAccessiblestorageEncrypteddbInstanceClassstorageTypevolumeTypesizestateruntimememorySizeschemednsNamekeyStatekeyUsageminSizemaxSizedesiredCapacityavailableIpAddressCountcidrBlockversioningConfiguration[status]securityGroupsarraySize()aws.objectsmartscapeNodes "AWS_RDS_DBINSTANCE"
| parse aws.object, "JSON:awsjson"
| fieldsAdd engine = awsjson[configuration][engine]
| summarize db_count = count(), by: {engine, aws.region}instanceTypestate[name]networkInterfaces[0][association][publicIp]enginemultiAZpubliclyAccessiblestorageEncrypteddbInstanceClassstorageTypevolumeTypesizestateruntimememorySizeschemednsNamekeyStatekeyUsageminSizemaxSizedesiredCapacityavailableIpAddressCountcidrBlockversioningConfiguration[status]securityGroupsarraySize()smartscapeNodes "AWS_ELASTICLOADBALANCINGV2_LOADBALANCER"
| parse aws.object, "JSON:awsjson"
| fieldsAdd dnsName = awsjson[configuration][dnsName], scheme = awsjson[configuration][scheme]
| 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]traverse "balanced_by", "AWS_ELASTICLOADBALANCINGV2_TARGETGROUP", direction:backwardtraverse "balances", "AWS_EC2_INSTANCE"traverse "balances", "AWS_LAMBDA_FUNCTION"traverse "belongs_to", "AWS_ECS_CLUSTER"traverse "uses", "AWS_ECS_TASKDEFINITION"traverse "is_part_of", "AWS_RDS_DBCLUSTER"traverse "uses", "AWS_KMS_KEY"traverse "uses", "AWS_EC2_SECURITYGROUP"traverse "runs_on", "AWS_AVAILABILITY_ZONE"traverse "is_attached_to", "AWS_EC2_SUBNET"traverse "is_attached_to", "AWS_EC2_VPC"traverse "is_attached_to", "AWS_EC2_VOLUME", direction: backwardtraverse "uses", "AWS_IAM_ROLE"traverse "uses", "AWS_APIGATEWAYV2_INTEGRATION", direction: backwardtraverse "runs_on", "HOST", direction: backwardsummarize count(), by: {sg.name}fieldsKeepdt.traverse.history[-N]smartscapeNodes "AWS_ELASTICLOADBALANCINGV2_LOADBALANCER"
| parse aws.object, "JSON:awsjson"
| fieldsAdd dnsName = awsjson[configuration][dnsName], scheme = awsjson[configuration][scheme]
| 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]traverse "balanced_by", "AWS_ELASTICLOADBALANCINGV2_TARGETGROUP", direction:backwardtraverse "balances", "AWS_EC2_INSTANCE"traverse "balances", "AWS_LAMBDA_FUNCTION"traverse "belongs_to", "AWS_ECS_CLUSTER"traverse "uses", "AWS_ECS_TASKDEFINITION"traverse "is_part_of", "AWS_RDS_DBCLUSTER"traverse "uses", "AWS_KMS_KEY"traverse "uses", "AWS_EC2_SECURITYGROUP"traverse "runs_on", "AWS_AVAILABILITY_ZONE"traverse "is_attached_to", "AWS_EC2_SUBNET"traverse "is_attached_to", "AWS_EC2_VPC"traverse "is_attached_to", "AWS_EC2_VOLUME", direction: backwardtraverse "uses", "AWS_IAM_ROLE"traverse "uses", "AWS_APIGATEWAYV2_INTEGRATION", direction: backwardtraverse "runs_on", "HOST", direction: backwardsummarize count(), by: {sg.name}fieldsKeepdt.traverse.history[-N]smartscapeNodes "AWS_*"
| filter isNotNull(tags[<TAG_NAME>])
| summarize resource_count = count(), by: {tags[<TAG_NAME>], type}
| sort resource_count descCostCenterOwnerTeamProjectEnvironmentApplicationDepartmentBusinessUnit"AWS_*"| filter arraySize(tags) == 0smartscapeNodes "AWS_*"
| filter isNotNull(tags[<TAG_NAME>])
| summarize resource_count = count(), by: {tags[<TAG_NAME>], type}
| sort resource_count descCostCenterOwnerTeamProjectEnvironmentApplicationDepartmentBusinessUnit"AWS_*"| filter arraySize(tags) == 0| Reference | When to load | Key content |
|---|---|---|
| vpc-networking-security.md | VPC topology, security groups, subnets, NAT, VPN, peering | VPC resource mapping, SG blast radius, public IP detection |
| database-monitoring.md | RDS, DynamoDB, ElastiCache, Redshift | Multi-AZ checks, engine distribution, subnet groups, dependencies |
| serverless-containers.md | Lambda, ECS, EKS, App Runner | VPC-attached functions, service-to-cluster mapping, container networking |
| load-balancing-api.md | ALB/NLB topology, API Gateway, CloudFront | LB→TG→Instance traversal, listener config, API stage management |
| messaging-event-streaming.md | SQS, SNS, EventBridge, Kinesis, MSK | Queue/topic inventory, streaming analysis, name pattern matching |
| resource-management.md | Resource audits, tag compliance, lifecycle | Unattached resources, deleted resources, tag coverage analysis |
| cost-optimization.md | Cost savings, unused resources, sizing | EBS costs, instance types, runtime distribution, snapshot analysis |
| capacity-planning.md | Capacity analysis, scaling, IP utilization | ASG headroom, subnet IP counts, ECS desired vs running |
| security-compliance.md | Security audits, encryption, public access | SG rule analysis (0.0.0.0/0, open ports), S3 public access block, EBS encryption, SG blast radius, public DB/LB detection, IAM roles |
| resource-ownership.md | Chargeback, ownership, cost allocation | Tag-based grouping, multi-account summaries |
| events.md | Load to check Auto Scaling, Health, and CloudFormation events | CloudFormation, Auto Scaling, AWS Health events |
| workload-detection.md | Load to determine orchestration context and resolution path | LB, ASG, ECS, EKS, Batch detection for blast radius analysis |
| metrics-performance.md | Load to query metric timeseries for a specific resource | DQL timeseries patterns for EC2, Lambda, RDS, SQS, ELB, ECS, DynamoDB |
| 参考文件 | 加载时机 | 核心内容 |
|---|---|---|
| vpc-networking-security.md | VPC拓扑、安全组、子网、NAT、VPN、对等连接查询 | VPC资源映射、安全组影响范围分析、公网IP检测 |
| database-monitoring.md | RDS、DynamoDB、ElastiCache、Redshift查询 | 多可用区检查、引擎分布统计、子网组分析、依赖关系查询 |
| serverless-containers.md | Lambda、ECS、EKS、App Runner查询 | VPC挂载函数统计、服务-集群映射、容器网络分析 |
| load-balancing-api.md | ALB/NLB拓扑、API Gateway、CloudFront查询 | LB→TG→实例关系遍历、监听器配置检查、API阶段管理 |
| messaging-event-streaming.md | SQS、SNS、EventBridge、Kinesis、MSK查询 | 队列/主题清单、流数据分析、名称模式匹配 |
| resource-management.md | 资源审计、标签合规、生命周期管理 | 未关联资源、已删除资源、标签覆盖率分析 |
| cost-optimization.md | 成本节约、闲置资源、规格优化 | EBS成本分析、实例类型统计、运行时分布、快照分析 |
| capacity-planning.md | 容量分析、弹性扩缩容、IP利用率统计 | ASG余量、子网IP数量统计、ECS期望实例数与运行实例数对比 |
| security-compliance.md | 安全审计、加密检查、公共访问检测 | 安全组规则分析(0.0.0.0/0、开放端口)、S3公共访问阻断检查、EBS加密检查、安全组影响范围分析、公网数据库/LB检测、IAM角色分析 |
| resource-ownership.md | 费用分摊、资源归属、成本分配 | 基于标签的分组统计、多账户汇总 |
| events.md | 自动扩缩容、健康事件、CloudFormation事件检查 | CloudFormation、Auto Scaling、AWS Health事件查询 |
| workload-detection.md | 编排上下文识别、问题根因路径定位 | LB、ASG、ECS、EKS、Batch检测,用于影响范围分析 |
| metrics-performance.md | 特定资源的指标时序数据查询 | EC2、Lambda、RDS、SQS、ELB、ECS、DynamoDB的DQL时序查询模式 |
"AWS_*"| limit NisNotNull()"AWS_*"| limit NisNotNull()aws.objectparse aws.object, "JSON:awsjson"fieldsAdd configField = awsjson[configuration][field]toString()aws.objectparse aws.object, "JSON:awsjson"fieldsAdd configField = awsjson[configuration][field]toString()contains()expandaws.objectpubliclyAccessiblestorageEncryptedcontains()expandaws.objectpubliclyAccessiblestorageEncryptedtags[TagName]arraySize(tags)tags[TagName]arraySize(tags)parse aws.object, "JSON:awsjson"cloud.aws.*parse aws.object, "JSON:awsjson"cloud.aws.*direction:backwardfieldsKeepdt.traverse.history[-N]direction:backwardfieldsKeepdt.traverse.history[-N]getNodeName()isNotNull()isNull()countDistinct()getNodeName()isNotNull()isNull()countDistinct()