dt-obs-hosts
CPU・メモリ・ディスク・ネットワーク・コンテナ・プロセスレベルのテレメトリを含むホストおよびプロセスのメトリクスを取得・分析するスキルです。インフラの健全性確認、リソース使用率の調査、ホスト探索、さらに異常検知・予測・季節性分析といった分析ワークフロー向けの時系列クエリ構築に活用してください。Kubernetesのポッド/ワークロードクエリ(dt-obs-kubernetes)、AWSクラウドリソースインベントリ(dt-obs-aws)、サービスレベルメトリクス(dt-obs-services)には使用しないでください。
description の原文を見る
>- Host and process metrics including CPU, memory, disk, network, containers, and process-level telemetry. Use when analyzing infrastructure health, resource utilization, process consumption, or host discovery. Also use when building timeseries queries for host metrics that feed into analytical workflows like anomaly detection, forecasting, or seasonality analysis. Trigger: "show hosts", "CPU usage", "memory utilization", "disk space", "high CPU", "host with most free disk", "top hosts by CPU", "top processes by memory", "Linux hosts in AWS", "what databases are running", "infrastructure costs by cost center", "hosts running EOL Java", "container monitoring", "listening ports", "process resource consumption", "CPU forecast", "memory anomaly", "host seasonality". Do NOT use for explaining existing queries, product documentation questions, Kubernetes pod/workload queries (use dt-obs-kubernetes), AWS cloud resource inventory (use dt-obs-aws), or service-level metrics (use dt-obs-services).
SKILL.md 本文
インフラストラクチャホストスキル
CPU、メモリ、ディスク、ネットワーク、テクノロジーインベントリを含むホストおよびプロセスインフラストラクチャを監視・管理します。
このスキルを使用する場合
このスキルは、ユーザーが以下の作業を必要とする場合に使用します:
- インベントリ: 「AWS us-east-1 のすべての Linux ホストを表示してください」
- 監視: 「CPU 使用率が高いホストはどれですか?」
- トラブルシューティング: 「最もメモリを消費しているプロセスはどれですか?」
- 検出: 「本番環境ではどのようなデータベースが実行されていますか?」
- 計画: 「アップグレード計画用に Kubernetes バージョン分布を追跡」
- コスト: 「コストセンター別のインフラストラクチャコストを計算」
- セキュリティ: 「ポート 22 でリッスンしているすべてのプロセスを検出」
- コンプライアンス: 「EOL Java バージョンを実行しているホストを特定」
- 品質: 「AWS ホストのデータ完全性をチェック」
- 最適化: 「使用率に基づくライトサイジング候補を検出」
クロスソース結合が必要: クエリがホストデータをログまたは他のテレメトリソース (例: 「Linux ホストのログをその IP アドレスと一緒に表示」) と組み合わせる必要がある場合は、クエリを作成する前に
dt-dql-essentials/references/smartscape-topology-navigation.mdも参照してください。
コアコンセプト
エンティティ
- HOST - 物理マシンまたは仮想マシン (クラウドまたはオンプレミス)
- PROCESS - 実行中のプロセスとプロセスグループ
- CONTAINER - Kubernetes コンテナ
- NETWORK_INTERFACE - ホストネットワークインターフェース
- DISK - ホストディスクボリューム
メトリクスカテゴリ
- ホストメトリクス -
dt.host.cpu.*,dt.host.memory.*,dt.host.disk.*,dt.host.net.* - プロセスメトリクス -
dt.process.cpu.*,dt.process.memory.*,dt.process.io.*,dt.process.network.* - インベントリ - OS タイプ、クラウドプロバイダー、テクノロジースタック、バージョン
- コスト -
dt.cost.costcenter,dt.cost.product - 品質 - メタデータ完全性、バージョンコンプライアンス
アラート閾値
- CPU/メモリ/ディスク: 80% 警告、90% クリティカル
- ネットワーク: >70% 高、>85% 飽和
- ディスクレイテンシ: >20ms ボトルネック
- ネットワークエラー: ドロップレート >1%、エラーレート >0.1%
- スワップ: >30% 警告、>50% クリティカル
主要なワークフロー
1. ホスト検出と分類
ホストを検出し、OS/クラウドで分類し、リソースをインベントリします。
smartscapeNodes "HOST"
| fieldsAdd os.type, cloud.provider, host.logical.cpu.cores, host.physical.memory
| summarize host_count = count(), by: {os.type, cloud.provider}
| sort host_count desc
OS タイプ: LINUX, WINDOWS, AIX, SOLARIS, ZOS
→ クラウド固有の属性については、references/inventory-discovery.md を参照してください
2. リソース使用率の監視
ホスト全体の CPU、メモリ、ディスク、ネットワークを監視します。
timeseries {
cpu = avg(dt.host.cpu.usage),
memory = avg(dt.host.memory.usage),
disk = avg(dt.host.disk.used.percent)
}, by: {dt.smartscape.host}
| fieldsAdd host_name = getNodeName(dt.smartscape.host)
| filter arrayAvg(cpu) > 80 or arrayAvg(memory) > 80
| sort arrayAvg(cpu) desc
高使用率閾値: 80% 警告、90% クリティカル
主要な CPU メトリクス:
dt.host.cpu.usage— 総 CPU 使用率 (0-100%)dt.host.cpu.idle— CPU アイドル時間 (使用率の逆; 異常検出に有用)dt.host.cpu.user— ユーザーモードの CPU 時間dt.host.cpu.system— カーネルモードの CPU 時間dt.host.cpu.iowait— I/O 待機中の CPU (Linux のみ)
→ 詳細な CPU 分析については、references/host-metrics.md を参照してください
→ メモリ分解については、references/host-metrics.md を参照してください
ディスク空き容量 — 最も空きディスク容量があるホストを検出
timeseries disk_used_pct = avg(dt.host.disk.used.percent), by: {dt.smartscape.host}
| fieldsAdd host_name = getNodeName(dt.smartscape.host)
| fieldsAdd avg_disk_used = arrayAvg(disk_used_pct),
free_pct = 100 - arrayAvg(disk_used_pct)
| sort free_pct desc
| limit 10
3. プロセスリソース分析
プロセスレベルの最大リソース消費者を特定します。
timeseries {
cpu = avg(dt.process.cpu.usage),
memory = avg(dt.process.memory.usage)
}, by: {dt.smartscape.process}
| fieldsAdd process_name = getNodeName(dt.smartscape.process)
| filter arrayAvg(cpu) > 50
| sort arrayAvg(cpu) desc
| limit 20
→ プロセス I/O 分析については、references/process-monitoring.md を参照してください
→ プロセスネットワークメトリクスについては、references/process-monitoring.md を参照してください
4. テクノロジースタックインベントリ
ソフトウェアテクノロジーとバージョンを検出・追跡します。
smartscapeNodes "PROCESS"
| fieldsAdd process.software_technologies
| expand tech = process.software_technologies
| fieldsAdd tech_type = tech[type], tech_version = tech[version]
| summarize process_count = count(), by: {tech_type, tech_version}
| sort process_count desc
一般的なテクノロジー: Java、Node.js、Python、.NET、データベース、ウェブサーバー、メッセージングシステム
→ バージョンコンプライアンスチェックについては、references/inventory-discovery.md を参照してください
5. ポート経由のサービス検出
リスニングポートをサービスにマップしてセキュリティとインベントリを実現します。
smartscapeNodes "PROCESS"
| fieldsAdd process.listen_ports, dt.process_group.detected_name
| filter isNotNull(process.listen_ports) and arraySize(process.listen_ports) > 0
| expand listen_port = process.listen_ports
| summarize process_count = count(), by: {listen_port, dt.process_group.detected_name}
| sort toLong(listen_port) asc
| limit 50
よく知られたポート: 80 (HTTP)、443 (HTTPS)、22 (SSH)、3306 (MySQL)、5432 (PostgreSQL)
→ 包括的なポートマッピングについては、references/inventory-discovery.md を参照してください
6. コンテナと Kubernetes の監視
コンテナ分布と K8s ワークロードタイプを追跡します。
smartscapeNodes "CONTAINER"
| fieldsAdd k8s.cluster.name, k8s.namespace.name, k8s.workload.kind
| summarize container_count = count(), by: {k8s.cluster.name, k8s.workload.kind}
| sort k8s.cluster.name, container_count desc
ワークロードタイプ: deployment, daemonset, statefulset, job, cronjob
注: smartscape ではコンテナイメージ名/バージョンは利用できません。
→ K8s バージョン追跡については、references/container-monitoring.md を参照してください
→ コンテナライフサイクルについては、references/container-monitoring.md を参照してください
7. コスト帰属とチャージバック
コストセンター別のインフラストラクチャコストを計算します。
smartscapeNodes "HOST"
| fieldsAdd dt.cost.costcenter, host.logical.cpu.cores, host.physical.memory
| filter isNotNull(dt.cost.costcenter)
| fieldsAdd memory_gb = toDouble(host.physical.memory) / 1024 / 1024 / 1024
| summarize
host_count = count(),
total_cores = sum(toLong(host.logical.cpu.cores)),
total_memory_gb = sum(memory_gb),
by: {dt.cost.costcenter}
| sort total_cores desc
→ 製品レベルのコスト追跡については、references/inventory-discovery.md を参照してください
8. インフラストラクチャヘルス相関
クロスレイヤー分析のためにホストメトリクスとプロセスメトリクスを関連付けます。
timeseries {
host_cpu = avg(dt.host.cpu.usage),
host_memory = avg(dt.host.memory.usage),
process_cpu = avg(dt.process.cpu.usage)
}, by: {dt.smartscape.host, dt.smartscape.process}
| fieldsAdd
host_name = getNodeName(dt.smartscape.host),
process_name = getNodeName(dt.smartscape.process)
| filter arrayAvg(host_cpu) > 70
| sort arrayAvg(host_cpu) desc
ヘルススコアリング: 任意のリソースが >90% でクリティカル、>80% で警告
→ マルチリソース飽和検出については、references/host-metrics.md を参照してください
レスポンス構造
ユーザーがデータ取得または DQL クエリを要求する場合 (例: 「CPU 別トップホストを表示」) には、レスポンスに DQL クエリを結果と共に含めてください。ユーザーはクエリを見て再利用したいと考えています。クエリは結果を得るための手段ではなく、成果物です。
ユーザーが分析 (異常検出、予測、季節性) を要求する場合、分析結果が成果物です。明確に結果を提示することに焦点を当てます:
- データ収集アーティファクトよりもメトリクスレベルの結果を優先します。分析ツールがデータギャップと実際の異常を並行して報告する場合、ユーザーが質問したメトリクス動作から始めて、ギャップを補足コンテキストとしてのみ言及します。
- ホスト ID ではなくホスト名を含めます (
getNodeName(dt.smartscape.host)またはget-entity-nameツールを使用)。 - 分析した期間およびツール/パラメータを明記します。
分析ワークフロー
ホストメトリクスクエリは、分析ツール (異常検出、予測、季節性分析) への入力として機能することが多くあります。このスキルは正しい DQL クエリの構築に役立てます。実際の分析は専用ツールによって実行されます。
異常検出とパターン分析
ユーザーがホストメトリクスの「異常な動作」、「異常」、「スパイク」、「急激な変化」について質問する場合、ワークフローは:
- このスキルのパターンを使用してタイムシリーズクエリを構築
- 適切な分析ツールに渡す (異常検出器、ノベルティ検出)
検出器の選択:
adaptive-anomaly-detector— ユーザーが量について質問する場合に使用: 「スパイク」、「急激な変化」、「値が通常を上回った」、「急激なジャンプ」。「このメトリクスが予期しない閾値を超えましたか?」に答え、アラート期間とピーク値を報告します。timeseries-novelty-detection— ユーザーが動作変化について質問する場合に使用: 「異常なパターン」、「何かが変わった」、「トレンド」、「新しい動作」。「信号の形状が変わりましたか?」に答えます。特定の閾値が越えたことを意味しません。
異常結果のレスポンス形式: タイムスタンプと値と共にホスト名 (getNodeName(dt.smartscape.host) または get-entity-name 経由で解決) とホストエンティティ ID を含めます。
エンティティ ID だけでは不透明です。名前だけでは後続クエリを妨げます。
ノベルティタイプ選択ルール: ノベルティ検出を使用する場合、analysisNoveltyType をデフォルトで [SPIKE, CHANGE_IN_VALUES, TREND_IN_VALUES] のみに設定します。
ユーザーが明示的にデータギャップまたは監視カバレッジについて質問しない限り、GAP_WITH_MISSING_VALUES と CHANGE_IN_MISSING_VALUES を除外します。データギャップはインフラストラクチャ問題であり、メトリクス動作異常ではありません。ユーザーが CPU またはメモリパターンについて質問したときにそれらを報告するのは誤りです。
分析ツールのクエリは、単一の集約メトリクスと適切な時間範囲を持つシンプルな timeseries 形式を使用する必要があります:
timeseries avg(dt.host.cpu.idle), by: {dt.smartscape.host}
timeseries avg(dt.host.memory.usage), by: {dt.smartscape.host}
データを削減するフィルターまたはフィールド変換の追加を避けてください。分析ツールは完全なタイムシリーズデータで最適に機能します。
予測
ユーザーがホストメトリクスを「予測」、「フォーキャスト」、「推定」するよう要求する場合:
- 十分な履歴データを含むタイムシリーズクエリを構築 (短期の場合 7d、より長い予測の場合 30d)
- 必要な予測期間でフォーキャストツールに渡す
予測ホライゾン (どのくらい先を予測するか) と履歴ウィンドウ (モデルがトレーニングに使用する過去データ量) は独立しています。「次の 2 時間を予測」のようなリクエストはホライゾンを 2h に設定します。それは過去データについて何も言いません。予測ホライゾンがどれほど短くても、常に少なくとも 7 日間の履歴データを使用します。トレーニングデータポイントが少なすぎると、フォーキャストモデルが失敗し、生の履歴値にフォールバックします。
timeseries avg(dt.host.cpu.usage), by: {dt.smartscape.host}
季節性検出
ユーザーが「季節性」、「週次パターン」、「反復動作」について質問する場合:
- より長い時間範囲を使用 (週次の場合は少なくとも 14d、月次の場合は 30d 以上)
- 季節ベースライン異常検出器に渡す
季節分析のレスポンス形式: 結果を提示する場合、以下を含めます:
- 季節異常が検出されたかどうか (はい/いいえ)
- 分析期間とパラメータ
- 影響を受ける各ホストについて: ホスト名 (ID のみではなく)、違反のタイムスタンプ、違反カウント、ベースライン値対実際値、上限/下限
- 複数ホストが関係する場合はホスト別に結果を整理
スコープ境界 — サービスレベル対ホストレベルメトリクス
このスキルはホストおよびプロセスインフラストラクチャメトリクスのみをカバーしています。ユーザーがサービスレベルメトリクス (リクエストレート、応答時間、エラーレート、サービスコール数/分、スループット) について質問する場合、その質問に予測または異常検出が含まれている場合でも、代わりに dt-obs-services を使用してください。
これらを dt-obs-services にリダイレクト: 「サービスコール数/分」、「リクエストレート」、「サービス別応答時間」、「エンドポイント別エラーレート」、「サービススループット予測」。
一般的なクエリパターン
パターン 1: Smartscape 検出
smartscapeNodes を使用してエンティティを検出・分類します。
smartscapeNodes "HOST"
| fieldsAdd <attributes>
| filter <conditions>
| summarize <aggregations>
パターン 2: タイムシリーズパフォーマンス
timeseries を使用してメトリクスを時系列で分析します。
timeseries metric = avg(dt.host.<metric>), by: {dt.smartscape.host}
| fieldsAdd <calculations>
| filter <thresholds>
パターン 3: クロスレイヤー相関
ホストメトリクスとプロセスメトリクスを関連付けます。
timeseries {
host_cpu = avg(dt.host.cpu.usage),
process_cpu = avg(dt.process.cpu.usage)
}, by: {dt.smartscape.host, dt.smartscape.process}
パターン 4: ルックアップによるエンティティエンリッチメント
エンティティ属性でデータをエンリッチします。lookup の後、フィールドを lookup. プレフィックスで参照します。
timeseries cpu = avg(dt.host.cpu.usage), by: {dt.smartscape.host}
| lookup [
smartscapeNodes HOST
| fields id, cpuCores, memoryTotal
], sourceField:dt.smartscape.host, lookupField:id
| fieldsAdd cores = lookup.cpuCores, mem_gb = lookup.memoryTotal / 1024 / 1024 / 1024
タグとメタデータ
重要な注記
- 汎用
tagsフィールドは smartscape クエリに入力されません - 特定のタグフィールドを使用:
tags:azure[*],tags:environment - カスタムメタデータを使用:
host.custom.metadata[*]
利用可能なタグ
- Azure タグ:
tags:azure[dt_owner_team],tags:azure[dt_cloudcost_capability] - 環境:
tags:environment - カスタムメタデータ:
host.custom.metadata[OperatorVersion],host.custom.metadata[Cluster] - コスト:
dt.cost.costcenter,dt.cost.product
→ 完全なタグリファレンスについては、references/inventory-discovery.md を参照してください
クラウド固有の属性
AWS
cloud.provider == "aws"aws.region,aws.availability_zone,aws.account.idaws.resource.id,aws.resource.nameaws.state(running、stopped、terminated)
Azure
cloud.provider == "azure"azure.location,azure.subscription,azure.resource.groupazure.status,azure.provisioning_stateazure.resource.sku.name(VM サイズ)
Kubernetes
k8s.cluster.name,k8s.cluster.uidk8s.namespace.name,k8s.node.name,k8s.pod.namek8s.workload.name,k8s.workload.kind
→ マルチクラウド分析については、references/inventory-discovery.md を参照してください
ベストプラクティス
- レイテンシには percentiles (p95, p99) を使用; 制限には
max(); トレンドにはavg()を使用 - マルチレベルの閾値を設定 (警告 80%、クリティカル 90%)
- パイプラインの早い段階でフィルター;
| limit Nで結果を制限 - エンリッチメント (ルックアップ) の前に集約
- 人間が読める形式のホスト名には
getNodeName(dt.smartscape.host)を使用; プロセスにはgetNodeName(dt.smartscape.process)を使用 - バイトを GB に変換:
/ 1024 / 1024 / 1024;round(value, decimals: 1)で丸め
時間ウィンドウ: リアルタイム: 5-15 分 | トレンド: 1-7 日 | キャパシティ計画: 30-90 日
制限
dt.host.cpu.iowaitは Linux のみで利用可能- 汎用
tagsフィールドは smartscape に入力されません (特定のタグネームスペースを使用) - コンテナイメージ名は smartscape では利用できません
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
smartscapeNodes "HOST" からホストが返されない | 時間範囲がないか、OneAgent がデプロイされていない | OneAgent がインストールされていることを確認; クエリに時間範囲を追加 |
tags フィールドが常に空 | 汎用 tags が smartscape に入力されていない | 特定のタグネームスペースを使用: tags:azure[*], tags:environment, dt.cost.costcenter |
| メモリ値がバイト単位で読みにくい | 生のメトリクス単位がバイト | 1024 / 1024 / 1024 で割り、round(value, decimals: 1) を使用 |
dt.host.cpu.iowait がデータを返さない | メトリクスは Linux のみ | os.type をチェック; iowait は Windows、AIX、Solaris では利用不可 |
| コンテナイメージ名がない | smartscape では利用不可 | k8s.object 解析を使用してイメージ詳細を取得; dt-obs-kubernetes スキルを参照 |
process.software_technologies が空 | プロセスが深い注入で監視されていない | OneAgent の深い監視がプロセスグループに対して有効になっていることを確認 |
リファレンスをロードする場合
このスキルは段階的な情報開示を使用しています。通常の 80% のユースケースはここから始めます。必要に応じて、詳細な仕様についてはリファレンスファイルをロードします。
host-metrics.md をロードする場合:
- CPU コンポーネント分解 (ユーザー、システム、iowait、steal) を分析
- メモリプレッシャーとスワップ使用率を調査
- ディスク I/O レイテンシのトラブルシューティング
- ネットワークパケットドロップまたはエラーを診断
process-monitoring.md をロードする場合:
- プロセスレベルの I/O パターンを分析
- TCP 接続品質を調査
- リソース枯渇 (ファイル記述子、スレッド) を検出
- GC 一時停止時間を追跡
container-monitoring.md をロードする場合:
- コンテナライフサイクルとチャーンを分析
- Kubernetes バージョン分布を追跡
- OneAgent オペレーター版を管理
- K8s クラスタアップグレードを計画
inventory-discovery.md をロードする場合:
- ポート検出経由でセキュリティ監査を実施
- コスト帰属とチャージバックを実装
- データ品質とメタデータ完全性を検証
- マルチクラウドインフラストラクチャを管理
リファレンス
host-metrics.md- ホスト CPU、メモリ、ディスク、ネットワーク監視の詳細process-monitoring.md- プロセスレベル CPU、メモリ、I/O、ネットワーク分析container-monitoring.md- コンテナインベントリ、Kubernetes バージョン、オペレーター管理inventory-discovery.md- ホスト/プロセス検出、テクノロジーインベントリ、コスト帰属、データ品質
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- dynatrace
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/dynatrace/dynatrace-for-ai / ライセンス: Apache-2.0
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。