Agent Skills by ALSEL
Anthropic ClaudeDevOps・インフラ⭐ リポ 0品質スコア 50/100

dt-obs-aws

EC2・RDS・Lambda・ECS/EKS・VPC・ロードバランサー・S3・DynamoDB・SQS/SNS・コスト最適化など、AWSクラウドリソースの監視・分析に使用するスキル。「EC2インスタンスを表示」「RDSデータベースを検索」「AWSコスト最適化」「セキュリティグループ」「未アタッチのEBSボリューム」「公開アクセス可能なデータベース」などをトリガーとして、インフラの棚卸し・セキュリティコンプライアンス・キャパシティプランニング・コスト削減分析に活用する。汎用ホストメトリクスはdt-obs-hosts、アプリケーショントレースはdt-obs-tracing、ログ分析はdt-obs-logsを使用すること。

description の原文を見る

>- AWS cloud resource monitoring including EC2, RDS, Lambda, ECS/EKS, VPC networking, load balancers, S3, DynamoDB, SQS/SNS, and cost optimization. Use when analyzing AWS infrastructure, resource inventory, security compliance, capacity planning, or cost savings. Trigger: "show EC2 instances", "find RDS databases", "VPC resources", "AWS cost optimization", "Lambda functions", "ECS services", "security groups", "unattached EBS volumes", "AWS load balancer topology", "publicly accessible databases", "AWS dashboards". Do NOT use for explaining existing queries, product documentation questions, generic host CPU/memory metrics (use dt-obs-hosts), application-level tracing (use dt-obs-tracing), or log analysis (use dt-obs-logs).

SKILL.md 本文

AWSクラウドインフラストラクチャ

Dynatrace Smartscape と DQL を使用して AWS リソースを監視・分析します。AWS サービスのクエリ、コスト最適化、セキュリティ管理、AWS インフラストラクチャ全体の容量計画を実施します。

このスキルを使う時

ユーザーが Dynatrace で AWS リソースを操作する必要があるときにこのスキルを使用してください。タスクタイプに応じて参照ファイルを読み込みます:

  • インベントリ: 「us-east-1 のすべての EC2 インスタンスを表示」
  • ネットワーク: 「VPC vpc-abc123 内のすべてのリソースを検出」
  • データベース: 「Multi-AZ が有効なすべての RDS インスタンスをリストアップ」
  • サーバーレス: 「VPC アクセスを持つ Lambda 関数を表示」
  • コスト: 「コスト削減のため未接続の EBS ボリュームを検出」
  • セキュリティ: 「公開アクセス可能なデータベースを特定」
  • コンプライアンス: 「Environment タグが不足しているリソースを検出」
  • 容量: 「サブネット IP 使用率を分析」
  • トラブルシューティング: 「ロードバランサーをターゲットグループを経由してインスタンスにマッピング」
  • 問題分析: 「この AWS 問題の前に何が変更されたか?」/ 「このリソースに影響を与えたイベントは何か?」
  • ワークロードコンテキスト: 「このインスタンスはロードバランサーの背後にあるか、EKS クラスタ内にあるか、ECS で管理されているか?」
  • イベント: 「このリソースに影響する AWS の最近のイベントがあるか?」

コアコンセプト

エンティティタイプ

AWS リソースは AWS_* プレフィックスを使用し、smartscapeNodes 関数を使用してクエリできます。すべての AWS エンティティは Dynatrace Smartscape で自動的に検出およびモデル化されます。

コンピュート: AWS_EC2_INSTANCE, AWS_LAMBDA_FUNCTION, AWS_ECS_CLUSTER, AWS_ECS_SERVICE, AWS_EKS_CLUSTER ネットワーキング: AWS_EC2_VPC, AWS_EC2_SUBNET, AWS_EC2_SECURITYGROUP, AWS_EC2_NATGATEWAY, AWS_EC2_VPCENDPOINT データベース: AWS_RDS_DBINSTANCE, AWS_RDS_DBCLUSTER, AWS_DYNAMODB_TABLE, AWS_ELASTICACHE_CACHECLUSTER ストレージ: AWS_S3_BUCKET, AWS_EC2_VOLUME, AWS_EFS_FILESYSTEM ロードバランシング: AWS_ELASTICLOADBALANCINGV2_LOADBALANCER, AWS_ELASTICLOADBALANCINGV2_TARGETGROUP メッセージング: AWS_SQS_QUEUE, AWS_SNS_TOPIC, AWS_EVENTS_EVENTBUS, AWS_MSK_CLUSTER

AWS の一般的なフィールド

すべての AWS エンティティには以下が含まれます:

  • aws.account.id - AWS アカウント識別子
  • aws.region - AWS リージョン (例: us-east-1)
  • aws.resource.id - リソース識別子
  • aws.resource.name - リソース名
  • aws.arn - Amazon Resource Name
  • aws.vpc.id - VPC 識別子 (VPC 接続リソース用)
  • aws.subnet.id - サブネット識別子
  • aws.availability_zone - アベイラビリティゾーン
  • aws.security_group.id - セキュリティグループ ID (配列)
  • tags - リソースタグ (tags[TagName] を使用)

ログと Bizevents の AWS フィールド

AWS から発信された ログ (fetch logs) はこれらのフィールドを含みます — 探索は不要:

  • aws.region, aws.account.id, aws.service, aws.log_group, aws.log_stream
  • 標準ログフィールド: content, loglevel, timestamp, k8s.*, dt.smartscape.*

AWS から発信された bizevents (fetch bizevents) はこれらを含みます:

  • aws.region, aws.account.id, event.type, event.provider

filter isNotNull(aws.region) を使用して AWS から発信されたレコードにスコープを限定します。

関係タイプ

AWS エンティティは以下の関係タイプを使用します:

  • is_attached_to - 排他的接続 (例: ボリュームからインスタンスへ)
  • uses - 依存関係 (例: インスタンスがセキュリティグループを使用)
  • runs_on - 垂直関係 (例: インスタンスが AZ で実行)
  • is_part_of - 構成 (例: インスタンスがクラスタに含まれる)
  • belongs_to - 集約 (例: サービスがクラスタに属する)
  • balances - ロードバランシング (例: ターゲットグループがインスタンスをバランス)
  • balanced_by - 逆ロードバランシング関係 (例: ロードバランサーがターゲットグループでバランス)

AWS メトリックキー命名規則

Dynatrace は AWS CloudWatch メトリクスをこのパターンで取得します:

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

<service> は AWS サービス名の小文字、<MetricName> は CloudWatch メトリック名 (大文字小文字を保持)、<DimensionName> は CloudWatch ディメンションです。

例: cloud.aws.ec2.CPUUtilization.By.InstanceId, cloud.aws.lambda.Invocations.By.FunctionName, cloud.aws.rds.CPUUtilization.By.DBInstanceIdentifier

これらのメトリクスには timeseries を使用し、fetch は使用しません。エンティティごとに分割するため dt.smartscape_source.id でグループ化します。

→ サービス別の完全なメトリックカタログと DQL クエリテンプレートについては references/metrics-performance.md を参照してください。


キーワークフロー

1. AWS リソース検出

タイプ別にすべての AWS リソースを取得:

smartscapeNodes "AWS_*"
| summarize count = count(), by: {type}
| sort count desc

アカウントとリージョンでフィルタリング:

smartscapeNodes "AWS_*"
| filter aws.account.id == "123456789012" and aws.region == "us-east-1"
| fields type, name, aws.resource.id

タグを使用したフィルタリング:

smartscapeNodes "AWS_*"
| filter tags[Environment] == "production"
| summarize count = count(), by: {type, aws.region}

→ 完全なリソースインベントリパターンについては references/resource-management.md を参照してください

2. VPC ネットワーク分析

すべての VPC をリストアップ:

smartscapeNodes "AWS_EC2_VPC"
| fields name, aws.account.id, aws.region, aws.vpc.id

VPC 内のリソースを検出:

smartscapeNodes "AWS_*"
| filter aws.vpc.id == "vpc-0be61db7c5d2d1bd1"
| summarize resource_count = count(), by: {type, aws.subnet.id}
| sort resource_count desc

セキュリティグループの使用状況を分析:

smartscapeNodes "AWS_EC2_INSTANCE"
| filter contains(aws.security_group.id, "sg-abc123")
| fields name, aws.resource.id, aws.vpc.id, aws.subnet.id

→ VPC ネットワークについては references/vpc-networking-security.md を参照してください
→ セキュリティグループパターンについては references/security-compliance.md を参照してください

3. データベース監視

すべての RDS インスタンスをリストアップ:

smartscapeNodes "AWS_RDS_DBINSTANCE"
| fields name, aws.account.id, aws.region, aws.vpc.id, aws.availability_zone

Multi-AZ データベースを検出:

smartscapeNodes "AWS_RDS_DBINSTANCE"
| parse aws.object, "JSON:awsjson"
| fieldsAdd multiAZ = awsjson[configuration][multiAZ]
| filter multiAZ == true
| fields name, aws.resource.id, aws.region

エンジンタイプでグループ化:

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

→ データベース監視については references/database-monitoring.md を参照してください

4. サーバーレスおよびコンテナワークロード

Lambda 関数をリストアップ:

smartscapeNodes "AWS_LAMBDA_FUNCTION"
| fields name, aws.account.id, aws.region, aws.vpc.id

クラスタ内の ECS サービスを検出:

smartscapeNodes "AWS_ECS_SERVICE"
| traverse "belongs_to", "AWS_ECS_CLUSTER"
| fields name, aws.resource.id, aws.region

EKS クラスタをリストアップ:

smartscapeNodes "AWS_EKS_CLUSTER"
| fields name, aws.account.id, aws.region, aws.vpc.id

→ サーバーレスについては references/serverless-containers.md を参照してください
→ コンテナについては references/serverless-containers.md を参照してください

5. ロードバランサートポロジー

ロードバランサーからインスタンスへの完全なマッピング:

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]

→ ロードバランシングについては references/load-balancing-api.md を参照してください

6. コスト最適化

未接続の EBS ボリュームを検出:

smartscapeNodes "AWS_EC2_VOLUME"
| parse aws.object, "JSON:awsjson"
| fieldsAdd state = awsjson[configuration][state]
| filter state == "available"
| fields name, aws.resource.id, aws.availability_zone, aws.account.id

EBS コストをタイプ別に分析:

smartscapeNodes "AWS_EC2_VOLUME"
| parse aws.object, "JSON:awsjson"
| fieldsAdd volumeType = awsjson[configuration][volumeType],
            size = awsjson[configuration][size],
            state = awsjson[configuration][state]
| summarize total_volumes = count(), total_size_gb = sum(size), by: {volumeType, state}
| sort total_size_gb desc

→ コスト最適化については references/cost-optimization.md を参照してください

7. セキュリティとコンプライアンス

公開アクセス可能なデータベースを検出:

smartscapeNodes "AWS_RDS_DBINSTANCE"
| parse aws.object, "JSON:awsjson"
| fieldsAdd publiclyAccessible = awsjson[configuration][publiclyAccessible]
| filter publiclyAccessible == true
| fields name, aws.resource.id, aws.vpc.id, aws.account.id

セキュリティグループの爆発半径:

smartscapeNodes "AWS_EC2_INSTANCE"
| traverse "uses", "AWS_EC2_SECURITYGROUP"
| summarize instance_count = count(), by: {aws.resource.name, aws.vpc.id}
| sort instance_count desc
| limit 20

→ セキュリティについては references/security-compliance.md を参照してください

8. リソース所有権とタギング

タグなしのリソースを検出:

smartscapeNodes "AWS_*"
| filter isNull(tags)
| fields type, name, aws.resource.id, aws.account.id, aws.region

コストセンター別にコストを配分:

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

→ リソース所有権については references/resource-ownership.md を参照してください


一般的なクエリパターン

パターンテンプレート
検出smartscapeNodes "AWS_*" | fieldsAdd <attrs> | filter <cond> | summarize <agg>
設定解析smartscapeNodes "AWS_<T>" | parse aws.object, "JSON:awsjson" | fieldsAdd f = awsjson[configuration][field]
トラバーサルsmartscapeNodes "AWS_<SRC>" | traverse "<rel>", "AWS_<TGT>"
マルチタイプsmartscapeNodes "AWS_T1", "AWS_T2" | filter <cond> | summarize count(), by: {type}

ベストプラクティス

クエリの最適化

  1. アカウントとリージョンで早期にフィルタリング
  2. 具体的なエンティティタイプを使用 (可能な場合 "AWS_*" ワイルドカード を避ける)
  3. 探索時は | limit N で結果を制限
  4. ネストされたフィールドにアクセスする前に isNotNull() チェックを使用

設定解析

  1. 常に aws.object を JSON パーサーで解析: parse aws.object, "JSON:awsjson"
  2. 一貫性のあるフィールド命名を使用: fieldsAdd configField = awsjson[configuration][field]
  3. 解析後は null 値をチェック
  4. 複雑なネストされたオブジェクトに toString() を使用

セキュリティフィールド

  1. セキュリティグループ ID は配列 - contains() または expand を使用
  2. 詳細なセキュリティコンテキストについては aws.object を解析
  3. publiclyAccessiblestorageEncrypted などのフラグを確認
  4. IAM ロール想定を検証

タギング戦略

  1. 特定のタグ値でフィルタリングするには tags[TagName] を使用
  2. tags は JSON オブジェクトで配列ではありません — タグなしリソースには isNull(tags) を使用、決して arraySize(tags) は使用しないでください
  3. 特定のタグが不足しているリソースを検出するには isNull(tags[TagName]) を使用
  4. 一貫したタグ命名規則を実装
  5. summarize 操作でタグカバレッジを追跡

制限事項と注釈

Smartscape の制限事項

  • AWS オブジェクト設定には parse aws.object, "JSON:awsjson" での解析が必要です
  • AWS メトリクスは cloud.aws.* 命名規則を使用した Dynatrace メトリクスとして利用可能です (AWS メトリック命名規則を参照)
  • リソース検出は AWS 統合設定に依存します
  • タグ同期にはわずかな遅延が生じる可能性があります

関係トラバーサル

  • 逆関係には direction:backward を使用 (例: ターゲットグループ → ロードバランサー)
  • トラバーサル を通じて重要なフィールドを保持するには fieldsKeep を使用
  • dt.traverse.history[-N] でトラバーサル履歴にアクセス
  • 複雑なトポロジーでは複数のトラバーサル操作が必要な場合があります

一般的なヒント

  • 人間が読みやすいリソース名には getNodeName() を使用
  • isNotNull() および isNull() を使用して null 値を優雅に処理
  • 大規模環境ではリージョンとアカウントのフィルタリングを組み合わせる
  • ユニークなリソースカウントには countDistinct() を使用

参照ファイルを読み込むタイミング

このスキルは段階的公開を使用します。80% のユースケースはここから始めてください。詳細な仕様が必要な場合は参照ファイルを読み込みます。

vpc-networking-security.md を読み込む場合:

  • VPC トポロジーと接続を分析
  • セキュリティグループ設定を調査
  • セキュリティグループ別にリソースを検出
  • ネットワークインターフェースの問題をトラブルシューティング

database-monitoring.md を読み込む場合:

  • RDS インスタンスとクラスタを管理
  • データベースエンジン配分を分析
  • Multi-AZ 設定を確認
  • キャッシュクラスタを監視

serverless-containers.md を読み込む場合:

  • Lambda 関数を使用
  • ECS/EKS デプロイメントを分析
  • コンテナネットワークを調査
  • サーバーレスマイグレーションを計画

load-balancing-api.md を読み込む場合:

  • ロードバランサートポロジーをマッピング
  • ターゲットグループのヘルスを分析
  • API Gateway を使用
  • CloudFront を設定

messaging-event-streaming.md を読み込む場合:

  • SQS キューと SNS トピックを管理
  • EventBridge イベントバスを分析
  • Kinesis または MSK を使用
  • Step Functions を監視

resource-management.md を読み込む場合:

  • リソース監査を実施
  • タグコンプライアンスを分析
  • 未接続リソースを検出
  • リージョン分布を計画

cost-optimization.md を読み込む場合:

  • コスト削減機会を特定
  • ストレージコストを分析
  • 未使用リソースを検出
  • インスタンスタイプを最適化

capacity-planning.md を読み込む場合:

  • 容量拡張を計画
  • リソース使用率を分析
  • サブネット IP 使用率を監視
  • オートスケーリンググループのサイズを決定

security-compliance.md を読み込む場合:

  • セキュリティ監査を実施
  • 暗号化ステータスを確認
  • IAM ロールを分析
  • 公開リソースを検出

resource-ownership.md を読み込む場合:

  • チャージバックを実装
  • リソース所有権を追跡
  • チーム別にコストを配分
  • マルチアカウント環境を管理

events.md を読み込む場合:

  • 問題の前または問題中に何が変更されたかを調査
  • 最近の CloudFormation スタック展開を確認
  • AWS Auto Scaling アクティビティ (スケールイン/スケールアウト) を確認
  • リソースに影響する AWS Health サービスイベントを確認

workload-detection.md を読み込む場合:

  • EC2 インスタンスがどのようにオーケストレートされているかを判定 (ECS、EKS、Batch、ASG、スタンドアロン)
  • 解決パスがワークロードパターンに依存する場合に従う
  • インスタンス障害の爆発半径を理解

ヘルスアラートを確認する場合:

  • Dynatrace ヘルスアラートが AWS リソースタイプに対して設定されているかを確認
  • 問題の前または後にアラートカバレッジを確認

dtctl を使用して builtin:health-experience.cloud-alert 設定スキーマをクエリします。CpuUtilization を調査対象のリソースタイプに関連するメトリック名に置き換えます:

dtctl get settings --schema builtin:health-experience.cloud-alert -o json --plain \
  | jq '[.[] | select(.value.alertKey | test("CpuUtilization"))]'

参照

  • vpc-networking-security.md - VPC インフラストラクチャ、セキュリティグループ、ネットワーク接続
  • database-monitoring.md - RDS、DynamoDB、ElastiCache、Redshift 監視
  • serverless-containers.md - Lambda、ECS、EKS、App Runner ワークロード
  • load-balancing-api.md - ロードバランサー、API Gateway、CloudFront
  • messaging-event-streaming.md - SQS、SNS、EventBridge、Kinesis、MSK
  • resource-management.md - リソースインベントリとライフサイクル管理
  • cost-optimization.md - コスト削減と支出最適化
  • capacity-planning.md - 容量分析と成長計画
  • security-compliance.md - セキュリティ設定とコンプライアンス監視
  • resource-ownership.md - コスト配分と所有権追跡
  • events.md - 問題タイムラインを分析するための AWS AutoScaling、Health、CloudFormation イベント
  • workload-detection.md - EC2 インスタンスがどのようにオーケストレートされているかを特定 (LB、ASG、ECS、EKS、Batch)

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
dynatrace
リポジトリ
dynatrace/dynatrace-for-ai
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/dynatrace/dynatrace-for-ai / ライセンス: Apache-2.0

関連スキル

汎用DevOps・インフラ⭐ リポ 502

superpowers-streamer-cli

SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。

by rohanarun
汎用DevOps・インフラ⭐ リポ 493

catc-client-ops

Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。

by automateyournetwork
汎用DevOps・インフラ⭐ リポ 39,967

ci-cd-and-automation

CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。

by addyosmani
汎用DevOps・インフラ⭐ リポ 39,967

shipping-and-launch

本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。

by addyosmani
OpenAIDevOps・インフラ⭐ リポ 38,974

linear-release-setup

Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。

by novuhq
Anthropic ClaudeDevOps・インフラ⭐ リポ 2,159

tracking-application-response-times

API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。

by jeremylongshore
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: dynatrace · dynatrace/dynatrace-for-ai · ライセンス: Apache-2.0