Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

dt-obs-awsDT OBS AWS 搜索

Agent Skill

用于辅助云资源、部署、容器、基础设施和运维自动化任务。它适合让 Agent 检查配置、整理部署步骤、分析资源状态、生成排障思路或辅助云服务接入。使用时需要明确目标环境、账号权限、区域和资源组,区分本地测试与生产操作;涉及删除资源、重启服务、修改网络或权限配置时,应先确认影响范围。

总安装

5,974

周安装

254

GitHub Stars

59

下载量

2,093
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:dt-obs-aws(DT OBS AWS 搜索)
来源仓库:https://github.com/dynatrace/dynatrace-for-ai
仓库路径:skills/dt-obs-aws
安装命令:
npx skills add https://github.com/dynatrace/dynatrace-for-ai --skill dt-obs-aws
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/dynatrace/dynatrace-for-ai --skill dt-obs-aws

简介

dt-obs-aws 用于监控和分析 AWS 云基础设施资源状态。

  • 适用于成本优化、安全评估和容量规划等云运维场景。
  • 支持 VPC 网络分析、服务发现和指标监控等 AWS 特有功能。
  • 使用前需配置 AWS 凭证和区域设置,注意 API 调用频率限制。
  • dt-obs-aws 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

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:

TaskFile to load
Inventory and topology queries(no additional file — use core patterns above)
Query AWS metric timeseries (CPU, errors, latency)Load references/metrics-performance.md
VPC topology, security groups, subnet analysisLoad references/vpc-networking-security.md
RDS, DynamoDB, ElastiCache investigationLoad references/database-monitoring.md
Lambda, ECS, EKS investigationLoad references/serverless-containers.md
ALB/NLB topology, API GatewayLoad references/load-balancing-api.md
SQS, SNS, EventBridge, MSKLoad references/messaging-event-streaming.md
Unattached resources, tag compliance, lifecycleLoad references/resource-management.md
Cost savings, unused resourcesLoad references/cost-optimization.md
Capacity headroom, subnet IP, ASG limitsLoad references/capacity-planning.md
Security audit, encryption, public accessLoad references/security-compliance.md
SG rule analysis (0.0.0.0/0, open ports)Load references/security-compliance.md
S3 public access, bucket encryptionLoad references/security-compliance.md
EBS volume encryption auditLoad references/security-compliance.md
Cost allocation, chargeback, ownershipLoad references/resource-ownership.md

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 identifier
  • aws.region - AWS region (e.g., us-east-1)
  • aws.resource.id - Unique resource identifier
  • aws.resource.name - Resource name
  • aws.arn - Amazon Resource Name
  • aws.vpc.id - VPC identifier (for VPC-attached resources)
  • aws.subnet.id - Subnet identifier
  • aws.availability_zone - Availability zone
  • aws.security_group.id - Security group IDs (array)
  • tags - Resource tags (use tags[TagName])

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 - Reverse of balances

AWS Metric Naming Convention

Dynatrace ingests AWS metrics and exposes them using this naming pattern:

cloud.aws.<service>.<MetricName>.By.<DimensionName>

The <service> is the lowercase AWS service name, <MetricName> is the original CloudWatch metric name (case-preserved), and <DimensionName> is the CloudWatch dimension used for splitting.

EC2 examples:

CloudWatch metricDynatrace metric key
CPUUtilization (by InstanceId)cloud.aws.ec2.CPUUtilization.By.InstanceId
StatusCheckFailed (by InstanceId)cloud.aws.ec2.StatusCheckFailed.By.InstanceId
NetworkIn (by InstanceId)cloud.aws.ec2.NetworkIn.By.InstanceId
DiskReadOps (by InstanceId)cloud.aws.ec2.DiskReadOps.By.InstanceId

Other service examples:

CloudWatch metricDynatrace metric key
RDS CPUUtilization (by DBInstanceIdentifier)cloud.aws.rds.CPUUtilization.By.DBInstanceIdentifier
Lambda Invocations (by FunctionName)cloud.aws.lambda.Invocations.By.FunctionName
SQS ApproximateNumberOfMessagesVisible (by QueueName)cloud.aws.sqs.ApproximateNumberOfMessagesVisible.By.QueueName
ELB RequestCount (by LoadBalancer)cloud.aws.elasticloadbalancingv2.RequestCount.By.LoadBalancer

To query a metric:

timeseries cpu = avg(cloud.aws.ec2.CPUUtilization.By.InstanceId),
           by: {dt.smartscape_source.id},
  from: now()-1h
| limit 10

Important: Never refer to these as "CloudWatch alerts" or "CloudWatch metrics" in output. Dynatrace monitors AWS resources natively through its AWS integration — these are Dynatrace metrics ingested from AWS.


Query Patterns

All AWS queries build on four core patterns. Master these and adapt them to any entity type.

Pattern 1: Resource Discovery

List resources by type, filter by account/region/VPC/tags, summarize counts:

smartscapeNodes "AWS_*"
| filter aws.account.id == "<AWS_ACCOUNT_ID>" and aws.region == "<AWS_REGION>"
| summarize count = count(), by: {type}
| sort count desc

To list a specific type, replace "AWS_*" with the entity type (e.g., "AWS_EC2_INSTANCE"). Add | fields name, aws.account.id, aws.region,... to select specific columns. Use tags[TagName] for tag-based filtering.

Pattern 2: Configuration Parsing

Parse aws.object JSON for detailed configuration fields:

smartscapeNodes "AWS_RDS_DBINSTANCE"
| parse aws.object, "JSON:awsjson"
| fieldsAdd engine = awsjson[configuration][engine]
| summarize db_count = count(), by: {engine, aws.region}

Common configuration fields by service:

  • EC2: instanceType, state[name], networkInterfaces[0][association][publicIp]
  • RDS: engine, multiAZ, publiclyAccessible, storageEncrypted, dbInstanceClass, storageType
  • EBS: volumeType, size, state
  • Lambda: runtime, memorySize
  • LB: scheme, dnsName
  • KMS: keyState, keyUsage
  • ASG: minSize, maxSize, desiredCapacity
  • Subnet: availableIpAddressCount, cidrBlock
  • S3: versioningConfiguration[status]
  • SG: securityGroups (array, use arraySize() to count)

Pattern 3: Relationship Traversal

Follow relationships between resources:

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]

Key traversal pairs:

  • LB → Target Groups: traverse "balanced_by", "AWS_ELASTICLOADBALANCINGV2_TARGETGROUP", direction:backward
  • Target Group → Instances: traverse "balances", "AWS_EC2_INSTANCE"
  • Target Group → Lambda Function: traverse "balances", "AWS_LAMBDA_FUNCTION"
  • ECS Service → Cluster: traverse "belongs_to", "AWS_ECS_CLUSTER"
  • ECS Service → Task Def: traverse "uses", "AWS_ECS_TASKDEFINITION"
  • RDS Instance → Cluster: traverse "is_part_of", "AWS_RDS_DBCLUSTER"
  • RDS Cluster → KMS Key: traverse "uses", "AWS_KMS_KEY"
  • Instance → SG: traverse "uses", "AWS_EC2_SECURITYGROUP"
  • Instance → Availability Zone: traverse "runs_on", "AWS_AVAILABILITY_ZONE"
  • Instance → Subnet: traverse "is_attached_to", "AWS_EC2_SUBNET"
  • Instance → VPC: traverse "is_attached_to", "AWS_EC2_VPC"
  • Instance → Volume: traverse "is_attached_to", "AWS_EC2_VOLUME", direction: backward
  • Lambda Function → IAM Role: traverse "uses", "AWS_IAM_ROLE"
  • Lambda Function → Api Gateway V2: traverse "uses", "AWS_APIGATEWAYV2_INTEGRATION", direction: backward
  • Instance → HOST: traverse "runs_on", "HOST", direction: backward
  • SG blast radius: query instances, traverse to SGs, summarize count(), by: {sg.name}
  • Use fieldsKeep to carry fields through traversals, dt.traverse.history[-N] to access ancestor fields

Pattern 4: Tag-Based Ownership

Group resources by any tag for ownership/chargeback:

smartscapeNodes "AWS_*"
| filter isNotNull(tags[<TAG_NAME>])
| summarize resource_count = count(), by: {tags[<TAG_NAME>], type}
| sort resource_count desc

Replace CostCenter with any tag: Owner, Team, Project, Environment, Application, Department, BusinessUnit. Replace "AWS_*" with a specific type to scope to one service.

Find untagged resources: | filter arraySize(tags) == 0


Reference Guide

Load reference files for detailed queries when the core patterns above need service-specific adaptation.

ReferenceWhen to loadKey content
vpc-networking-security.mdVPC topology, security groups, subnets, NAT, VPN, peeringVPC resource mapping, SG blast radius, public IP detection
database-monitoring.mdRDS, DynamoDB, ElastiCache, RedshiftMulti-AZ checks, engine distribution, subnet groups, dependencies
serverless-containers.mdLambda, ECS, EKS, App RunnerVPC-attached functions, service-to-cluster mapping, container networking
load-balancing-api.mdALB/NLB topology, API Gateway, CloudFrontLB→TG→Instance traversal, listener config, API stage management
messaging-event-streaming.mdSQS, SNS, EventBridge, Kinesis, MSKQueue/topic inventory, streaming analysis, name pattern matching
resource-management.mdResource audits, tag compliance, lifecycleUnattached resources, deleted resources, tag coverage analysis
cost-optimization.mdCost savings, unused resources, sizingEBS costs, instance types, runtime distribution, snapshot analysis
capacity-planning.mdCapacity analysis, scaling, IP utilizationASG headroom, subnet IP counts, ECS desired vs running
security-compliance.mdSecurity audits, encryption, public accessSG 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.mdChargeback, ownership, cost allocationTag-based grouping, multi-account summaries
events.mdLoad to check Auto Scaling, Health, and CloudFormation eventsCloudFormation, Auto Scaling, AWS Health events
workload-detection.mdLoad to determine orchestration context and resolution pathLB, ASG, ECS, EKS, Batch detection for blast radius analysis
metrics-performance.mdLoad to query metric timeseries for a specific resourceDQL timeseries patterns for EC2, Lambda, RDS, SQS, ELB, ECS, DynamoDB

Best Practices

Query Optimization

  1. Filter early by account and region
  2. Use specific entity types (avoid "AWS_*" wildcards when possible)
  3. Limit results with | limit N for exploration
  4. Use isNotNull() checks before accessing nested fields

Configuration Parsing

  1. Always parse aws.object with JSON parser: parse aws.object, "JSON:awsjson"
  2. Use consistent field naming: fieldsAdd configField = awsjson[configuration][field]
  3. Check for null values after parsing
  4. Use toString() for complex nested objects

Security Fields

  1. Security group IDs are arrays - use contains() or expand
  2. Parse aws.object for detailed security context
  3. Check publiclyAccessible, storageEncrypted, and similar flags

Tagging Strategy

  1. Use tags[TagName] for filtering
  2. Check arraySize(tags) for untagged resources
  3. Track tag coverage with summarize operations

Limitations and Notes

Smartscape Limitations

  • AWS object configuration requires parsing with parse aws.object, "JSON:awsjson"
  • AWS metrics are available as Dynatrace metrics using the cloud.aws.* naming convention (see AWS Metric Naming Convention)
  • Resource discovery depends on AWS integration configuration
  • Tag synchronization may have slight delays

Relationship Traversal

  • Use direction:backward for reverse relationships (e.g., target group → load balancer)
  • Use fieldsKeep to maintain important fields through traversal
  • Access traversal history with dt.traverse.history[-N]
  • Complex topologies may require multiple traverse operations

General Tips

  • Use getNodeName() for human-readable resource names
  • Handle null values gracefully with isNotNull() and isNull()
  • Combine region and account filters for large environments
  • Use countDistinct() for unique resource counts

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.04%
按下载量换算733

Claude

32.54%
按下载量换算681

Cursor

19.71%
按下载量换算413

Gemini CLI

8.77%
按下载量换算184

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills