{"id":"d70eba13-49f6-4150-b490-8637e36f8611","shortId":"uDB4rk","kind":"skill","title":"dt-obs-hosts","tagline":">-","description":"# Infrastructure Hosts Skill\n\nMonitor and manage host and process infrastructure including CPU, memory, disk, network, and technology inventory.\n\n## When to Use This Skill\n\nUse this skill when the user needs to:\n\n- **Inventory:** \"Show me all Linux hosts in AWS us-east-1\"\n- **Monitor:** \"What hosts have high CPU usage?\"\n- **Troubleshoot:** \"Which processes are consuming the most memory?\"\n- **Discover:** \"What databases are running in production?\"\n- **Plan:** \"Track Kubernetes version distribution for upgrade planning\"\n- **Cost:** \"Calculate infrastructure costs by cost center\"\n- **Security:** \"Find all processes listening on port 22\"\n- **Compliance:** \"Identify hosts running EOL Java versions\"\n- **Quality:** \"Check data completeness for AWS hosts\"\n- **Optimize:** \"Find rightsizing candidates based on utilization\"\n\n---\n> **Cross-source join required:** If the query must combine host data with logs or other\n> telemetry sources (e.g. \"show logs from Linux hosts with their IP addresses\") → also read\n> `dt-dql-essentials/references/smartscape-topology-navigation.md` before writing the query.\n---\n\n## Core Concepts\n\n### Entities\n- **HOST** - Physical or virtual machines (cloud or on-premise)\n- **PROCESS** - Running processes and process groups\n- **CONTAINER** - Kubernetes containers\n- **NETWORK_INTERFACE** - Host network interfaces\n- **DISK** - Host disk volumes\n\n### Metrics Categories\n1. **Host Metrics** - `dt.host.cpu.*`, `dt.host.memory.*`, `dt.host.disk.*`, `dt.host.net.*`\n2. **Process Metrics** - `dt.process.cpu.*`, `dt.process.memory.*`, `dt.process.io.*`, `dt.process.network.*`\n3. **Inventory** - OS type, cloud provider, technology stack, versions\n4. **Cost** - `dt.cost.costcenter`, `dt.cost.product`\n5. **Quality** - Metadata completeness, version compliance\n\n### Alert Thresholds\n- **CPU/Memory/Disk:** 80% warning, 90% critical\n- **Network:** >70% high, >85% saturated\n- **Disk Latency:** >20ms bottleneck\n- **Network Errors:** Drop rate >1%, error rate >0.1%\n- **Swap:** >30% warning, >50% critical\n\n---\n\n## Key Workflows\n\n### 1. Host Discovery and Classification\n\nDiscover hosts, classify by OS/cloud, inventory resources.\n\n```dql\nsmartscapeNodes \"HOST\"\n| fieldsAdd os.type, cloud.provider, host.logical.cpu.cores, host.physical.memory\n| summarize host_count = count(), by: {os.type, cloud.provider}\n| sort host_count desc\n```\n\n**OS Types:** `LINUX`, `WINDOWS`, `AIX`, `SOLARIS`, `ZOS`\n\n→ For cloud-specific attributes, see [references/inventory-discovery.md](#cloud-specific-attributes)\n\n### 2. Resource Utilization Monitoring\n\nMonitor CPU, memory, disk, network across hosts.\n\n```dql\ntimeseries {\n  cpu = avg(dt.host.cpu.usage),\n  memory = avg(dt.host.memory.usage),\n  disk = avg(dt.host.disk.used.percent)\n}, by: {dt.smartscape.host}\n| fieldsAdd host_name = getNodeName(dt.smartscape.host)\n| filter arrayAvg(cpu) > 80 or arrayAvg(memory) > 80\n| sort arrayAvg(cpu) desc\n```\n\n**High utilization threshold:** 80% warning, 90% critical\n\n**Key CPU Metrics:**\n- `dt.host.cpu.usage` — Total CPU utilization (0-100%)\n- `dt.host.cpu.idle` — CPU idle time (inverse of usage; useful for anomaly detection)\n- `dt.host.cpu.user` — CPU time in user mode\n- `dt.host.cpu.system` — CPU time in kernel mode\n- `dt.host.cpu.iowait` — CPU waiting for I/O (Linux only)\n\n→ For detailed CPU analysis, see [references/host-metrics.md](references/host-metrics.md#cpu-monitoring)  \n→ For memory breakdown, see [references/host-metrics.md](references/host-metrics.md#memory-monitoring)\n\n#### Disk Free Space — Find Hosts with Most/Least Free Disk\n\n```dql\ntimeseries disk_used_pct = avg(dt.host.disk.used.percent), by: {dt.smartscape.host}\n| fieldsAdd host_name = getNodeName(dt.smartscape.host)\n| fieldsAdd avg_disk_used = arrayAvg(disk_used_pct),\n    free_pct = 100 - arrayAvg(disk_used_pct)\n| sort free_pct desc\n| limit 10\n```\n\n### 3. Process Resource Analysis\n\nIdentify top resource consumers at process level.\n\n```dql\ntimeseries {\n  cpu = avg(dt.process.cpu.usage),\n  memory = avg(dt.process.memory.usage)\n}, by: {dt.smartscape.process}\n| fieldsAdd process_name = getNodeName(dt.smartscape.process)\n| filter arrayAvg(cpu) > 50\n| sort arrayAvg(cpu) desc\n| limit 20\n```\n\n→ For process I/O analysis, see [references/process-monitoring.md](references/process-monitoring.md#process-io)  \n→ For process network metrics, see [references/process-monitoring.md](references/process-monitoring.md#process-network)\n\n### 4. Technology Stack Inventory\n\nDiscover and track software technologies and versions.\n\n```dql\nsmartscapeNodes \"PROCESS\"\n| fieldsAdd process.software_technologies\n| expand tech = process.software_technologies\n| fieldsAdd tech_type = tech[type], tech_version = tech[version]\n| summarize process_count = count(), by: {tech_type, tech_version}\n| sort process_count desc\n```\n\n**Common Technologies:** Java, Node.js, Python, .NET, databases, web servers, messaging systems\n\n→ For version compliance checks, see [references/inventory-discovery.md](references/inventory-discovery.md#technology-inventory)\n\n### 5. Service Discovery via Ports\n\nMap listening ports to services for security and inventory.\n\n```dql\nsmartscapeNodes \"PROCESS\"\n| fieldsAdd process.listen_ports, dt.process_group.detected_name\n| filter isNotNull(process.listen_ports) and arraySize(process.listen_ports) > 0\n| expand listen_port = process.listen_ports\n| summarize process_count = count(), by: {listen_port, dt.process_group.detected_name}\n| sort toLong(listen_port) asc\n| limit 50\n```\n\n**Well-known ports:** 80 (HTTP), 443 (HTTPS), 22 (SSH), 3306 (MySQL), 5432 (PostgreSQL)\n\n→ For comprehensive port mapping, see [references/inventory-discovery.md](references/inventory-discovery.md#port-discovery)\n\n### 6. Container and Kubernetes Monitoring\n\nTrack container distribution and K8s workload types.\n\n```dql\nsmartscapeNodes \"CONTAINER\"\n| fieldsAdd k8s.cluster.name, k8s.namespace.name, k8s.workload.kind\n| summarize container_count = count(), by: {k8s.cluster.name, k8s.workload.kind}\n| sort k8s.cluster.name, container_count desc\n```\n\n**Workload Types:** `deployment`, `daemonset`, `statefulset`, `job`, `cronjob`\n\n**Note:** Container image names/versions NOT available in smartscape.\n\n→ For K8s version tracking, see [references/container-monitoring.md](references/container-monitoring.md#kubernetes-versions)  \n→ For container lifecycle, see [references/container-monitoring.md](references/container-monitoring.md#container-inventory)\n\n### 7. Cost Attribution and Chargeback\n\nCalculate infrastructure costs by cost center.\n\n```dql\nsmartscapeNodes \"HOST\"\n| fieldsAdd dt.cost.costcenter, host.logical.cpu.cores, host.physical.memory\n| filter isNotNull(dt.cost.costcenter)\n| fieldsAdd memory_gb = toDouble(host.physical.memory) / 1024 / 1024 / 1024\n| summarize \n    host_count = count(),\n    total_cores = sum(toLong(host.logical.cpu.cores)),\n    total_memory_gb = sum(memory_gb),\n    by: {dt.cost.costcenter}\n| sort total_cores desc\n```\n\n→ For product-level cost tracking, see [references/inventory-discovery.md](references/inventory-discovery.md#cost-attribution)\n\n### 8. Infrastructure Health Correlation\n\nCorrelate host and process metrics for cross-layer analysis.\n\n```dql\ntimeseries {\n  host_cpu = avg(dt.host.cpu.usage),\n  host_memory = avg(dt.host.memory.usage),\n  process_cpu = avg(dt.process.cpu.usage)\n}, by: {dt.smartscape.host, dt.smartscape.process}\n| fieldsAdd\n    host_name = getNodeName(dt.smartscape.host),\n    process_name = getNodeName(dt.smartscape.process)\n| filter arrayAvg(host_cpu) > 70\n| sort arrayAvg(host_cpu) desc\n```\n\n**Health scoring:** Critical if any resource >90%, warning if >80%\n\n→ For multi-resource saturation detection, see [references/host-metrics.md](references/host-metrics.md#resource-saturation)\n\n---\n\n## Response Construction\n\nWhen the user asks for data retrieval or a DQL query (e.g., \"show me top hosts by\nCPU\"), **include the DQL query in the response** alongside the results. Users want to\nsee and reuse the query — it is the deliverable, not just a means to get results.\n\nWhen the user asks for analysis (anomaly detection, forecasting, seasonality), the\nanalysis results are the deliverable. Focus on presenting findings clearly:\n- **Prioritize metric-level findings** over data collection artifacts. If an analysis\n  tool reports data gaps alongside actual anomalies, lead with the metric behavior\n  the user asked about and mention gaps only as supplementary context.\n- **Include host names** (not just IDs) using `getNodeName(dt.smartscape.host)` or the\n  `get-entity-name` tool.\n- **State the timeframe** analyzed and the tools/parameters used.\n\n---\n\n## Analytical Workflows\n\nHost metric queries often serve as inputs to analytical tools (anomaly detection,\nforecasting, seasonality analysis). This skill helps construct the right DQL query;\nthe actual analysis is performed by dedicated tools.\n\n### Anomaly Detection and Pattern Analysis\n\nWhen users ask about \"unusual behavior\", \"anomalies\", \"spikes\", or \"sudden changes\"\nin host metrics, the workflow is:\n\n1. **Construct the timeseries query** using this skill's patterns\n2. **Pass it to the appropriate analysis tool** (anomaly detector, novelty detection)\n\n**Choosing between detectors:**\n- **`adaptive-anomaly-detector`** — use when the user asks about *magnitude*: \"spikes\",\n  \"abrupt changes\", \"values that went above normal\", \"sudden jumps\". It answers \"did this\n  metric cross an unexpected threshold?\" and reports alert durations and peak values.\n- **`timeseries-novelty-detection`** — use when the user asks about *behavioral change*:\n  \"unusual patterns\", \"something changed\", \"trends\", \"new behavior\". It answers \"did the\n  shape of the signal change?\" without implying a specific threshold was crossed.\n\n**Response format for anomaly results:** Include both the host **name** (resolved via\n`getNodeName(dt.smartscape.host)` or `get-entity-name`) and the host **entity ID** alongside timestamps and values.\nEntity IDs alone are opaque to users; names alone prevent follow-up queries.\n\n**Novelty type selection rule:** When using novelty detection, set\n`analysisNoveltyType` to only `[SPIKE, CHANGE_IN_VALUES, TREND_IN_VALUES]` by default.\n**EXCLUDE** `GAP_WITH_MISSING_VALUES` and `CHANGE_IN_MISSING_VALUES` unless the user\nexplicitly asks about data gaps or monitoring coverage. Data gaps are infrastructure\nissues, not metric behavior anomalies — reporting them when the user asks about CPU\nor memory patterns is incorrect.\n\nQueries for analysis tools should use simple `timeseries` format with a single\naggregated metric and appropriate time range:\n\n```dql\ntimeseries avg(dt.host.cpu.idle), by: {dt.smartscape.host}\n```\n\n```dql\ntimeseries avg(dt.host.memory.usage), by: {dt.smartscape.host}\n```\n\nAvoid adding filters or field transformations that reduce the data — the analysis\ntools work best with complete timeseries data.\n\n\n### Forecasting\n\nWhen users ask to \"predict\", \"forecast\", or \"estimate future\" host metrics:\n\n1. **Construct the timeseries query** with sufficient historical data (e.g., 7d for\n   short-term, 30d for longer predictions)\n2. **Pass to the forecasting tool** with the desired forecast horizon\n\nThe **forecast horizon** (how far ahead to predict) and the **historical window** (how much\npast data the model trains on) are independent. A request like \"forecast the next 2 hours\"\nsets the horizon to 2h — it says nothing about the lookback. Always use at least 7 days of\nhistorical data regardless of how short the forecast horizon is. Too few training data points\ncause the forecast model to fail and fall back to raw historical values.\n\n```dql\ntimeseries avg(dt.host.cpu.usage), by: {dt.smartscape.host}\n```\n\n### Seasonality Detection\n\nWhen users ask about \"seasonality\", \"weekly patterns\", or \"recurring behavior\":\n\n1. **Use a longer time range** (at least 14d for weekly, 30d+ for monthly)\n2. **Pass to the seasonal baseline anomaly detector**\n\n**Response format for seasonal analysis:** When presenting results, include:\n- Whether seasonal anomalies were detected (yes/no)\n- The analysis timeframe and parameters used\n- For each affected host: host name (not just ID), timestamps of violations, violation\n  counts, baseline values vs actual values, and upper/lower bounds\n- Organize results by host if multiple hosts are involved\n\n### Scope Boundary — Service-Level vs Host-Level Metrics\n\nThis skill covers **host and process infrastructure metrics only**. If the user asks\nabout service-level metrics (request rate, response time, error rate, service calls per\nminute, throughput), use `dt-obs-services` instead — even when the question involves\nforecasting or anomaly detection of those metrics.\n\n**Redirect these to `dt-obs-services`:** \"service calls per minute\", \"request rate\",\n\"response time by service\", \"error rate by endpoint\", \"service throughput forecast\".\n\n---\n\n## Common Query Patterns\n\n### Pattern 1: Smartscape Discovery\nUse `smartscapeNodes` to discover and classify entities.\n```dql-template\nsmartscapeNodes \"HOST\"\n| fieldsAdd <attributes>\n| filter <conditions>\n| summarize <aggregations>\n```\n\n### Pattern 2: Timeseries Performance\nUse `timeseries` to analyze metrics over time.\n```dql-template\ntimeseries metric = avg(dt.host.<metric>), by: {dt.smartscape.host}\n| fieldsAdd <calculations>\n| filter <thresholds>\n```\n\n### Pattern 3: Cross-Layer Correlation\nCorrelate host and process metrics.\n```dql\ntimeseries {\n  host_cpu = avg(dt.host.cpu.usage),\n  process_cpu = avg(dt.process.cpu.usage)\n}, by: {dt.smartscape.host, dt.smartscape.process}\n```\n\n### Pattern 4: Entity Enrichment with Lookup\nEnrich data with entity attributes. After `lookup`, reference fields with `lookup.` prefix.\n```dql\ntimeseries cpu = avg(dt.host.cpu.usage), by: {dt.smartscape.host}\n| lookup [\n    smartscapeNodes HOST\n    | fields id, cpuCores, memoryTotal\n  ], sourceField:dt.smartscape.host, lookupField:id\n| fieldsAdd cores = lookup.cpuCores, mem_gb = lookup.memoryTotal / 1024 / 1024 / 1024\n```\n\n---\n\n## Tags and Metadata\n\n### Important Notes\n- Generic `tags` field is NOT populated in smartscape queries\n- Use specific tag fields: `tags:azure[*]`, `tags:environment`\n- Use custom metadata: `host.custom.metadata[*]`\n\n### Available Tags\n- **Azure Tags:** `tags:azure[dt_owner_team]`, `tags:azure[dt_cloudcost_capability]`\n- **Environment:** `tags:environment`\n- **Custom Metadata:** `host.custom.metadata[OperatorVersion]`, `host.custom.metadata[Cluster]`\n- **Cost:** `dt.cost.costcenter`, `dt.cost.product`\n\n→ For complete tag reference, see [references/inventory-discovery.md](#tags-and-metadata)\n\n---\n\n## Cloud-Specific Attributes\n\n### AWS\n- `cloud.provider == \"aws\"`\n- `aws.region`, `aws.availability_zone`, `aws.account.id`\n- `aws.resource.id`, `aws.resource.name`\n- `aws.state` (running, stopped, terminated)\n\n### Azure\n- `cloud.provider == \"azure\"`\n- `azure.location`, `azure.subscription`, `azure.resource.group`\n- `azure.status`, `azure.provisioning_state`\n- `azure.resource.sku.name` (VM size)\n\n### Kubernetes\n- `k8s.cluster.name`, `k8s.cluster.uid`\n- `k8s.namespace.name`, `k8s.node.name`, `k8s.pod.name`\n- `k8s.workload.name`, `k8s.workload.kind`\n\n→ For multi-cloud analysis, see [references/inventory-discovery.md](references/inventory-discovery.md#multi-cloud-hosts)\n\n---\n\n## Best Practices\n\n1. Use percentiles (p95, p99) for latency; `max()` for limits; `avg()` for trends\n2. Set multi-level thresholds (warning 80%, critical 90%)\n3. Filter early in the pipeline; limit results with `| limit N`\n4. Aggregate before enrichment (lookup)\n5. Use `getNodeName(dt.smartscape.host)` for human-readable host names; `getNodeName(dt.smartscape.process)` for processes\n6. Convert bytes to GB: `/ 1024 / 1024 / 1024`; round with `round(value, decimals: 1)`\n\n**Time windows:** Real-time: 5-15 min | Trends: 1-7 days | Capacity planning: 30-90 days\n\n### Limitations\n- `dt.host.cpu.iowait` available on Linux only\n- Generic `tags` field NOT populated in smartscape (use specific tag namespaces)\n- Container image names NOT available in smartscape\n\n---\n\n## Troubleshooting\n\n| Problem | Cause | Solution |\n|---------|-------|----------|\n| No hosts returned from `smartscapeNodes \"HOST\"` | Missing time range or OneAgent not deployed | Verify OneAgent is installed; add a time range to the query |\n| `tags` field always empty | Generic `tags` not populated in smartscape | Use specific tag namespaces: `tags:azure[*]`, `tags:environment`, `dt.cost.costcenter` |\n| Memory values in bytes are unreadable | Raw metric unit is bytes | Divide by `1024 / 1024 / 1024` and use `round(value, decimals: 1)` |\n| `dt.host.cpu.iowait` returns no data | Metric is Linux-only | Check `os.type`; iowait is unavailable on Windows, AIX, Solaris |\n| Container image names missing | Not available in smartscape | Use `k8s.object` parsing for image details; see dt-obs-kubernetes skill |\n| `process.software_technologies` is empty | Process not monitored by deep injection | Verify OneAgent deep monitoring is enabled for the process group |\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 host-metrics.md when:\n- Analyzing CPU component breakdown (user, system, iowait, steal)\n- Investigating memory pressure and swap usage\n- Troubleshooting disk I/O latency\n- Diagnosing network packet drops or errors\n\n### Load process-monitoring.md when:\n- Analyzing process-level I/O patterns\n- Investigating TCP connection quality\n- Detecting resource exhaustion (file descriptors, threads)\n- Tracking GC suspension time\n\n### Load container-monitoring.md when:\n- Analyzing container lifecycle and churn\n- Tracking Kubernetes version distribution\n- Managing OneAgent operator versions\n- Planning K8s cluster upgrades\n\n### Load inventory-discovery.md when:\n- Performing security audits via port discovery\n- Implementing cost attribution and chargeback\n- Validating data quality and metadata completeness\n- Managing multi-cloud infrastructure\n\n---\n\n## References\n\n- [host-metrics.md](references/host-metrics.md) - Detailed host CPU, memory, disk, and network monitoring\n- [process-monitoring.md](references/process-monitoring.md) - Process-level CPU, memory, I/O, and network analysis\n- [container-monitoring.md](references/container-monitoring.md) - Container inventory, Kubernetes versions, and operator management\n- [inventory-discovery.md](references/inventory-discovery.md) - Host/process discovery, technology inventory, cost attribution, and data quality\n\n---","tags":["obs","hosts","dynatrace","for","agent-skills","ai-agents","claude-code","devops","dql","mcp","observability"],"capabilities":["skill","source-dynatrace","skill-dt-obs-hosts","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-hosts","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 (18,495 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:48.115Z","embedding":null,"createdAt":"2026-05-11T18:57:14.199Z","updatedAt":"2026-05-18T18:56:48.115Z","lastSeenAt":"2026-05-18T18:56:48.115Z","tsv":"'-100':355 '-15':1870 '-7':1874 '-90':1879 '/references/smartscape-topology-navigation.md':148 '0':354,599 '0.1':242 '1':47,186,239,250,1028,1292,1416,1575,1797,1863,1873,1973 '10':448 '100':438 '1024':736,737,738,1681,1682,1683,1855,1856,1857,1965,1966,1967 '14d':1424 '2':193,299,1038,1311,1350,1430,1594,1810 '20':484 '20ms':233 '22':92,629 '2h':1356 '3':200,449,1616,1820 '30':244,1878 '30d':1307,1427 '3306':631 '4':209,505,1640,1831 '443':627 '5':213,569,1836,1869 '50':246,478,620 '5432':633 '6':645,1850 '7':710,1367 '70':227,816 '7d':1302 '8':772 '80':222,331,335,343,625,831,1817,2044 '85':229 '90':224,345,828,1819 'abrupt':1065 'across':308 'actual':931,999,1476 'ad':1262 'adapt':1054 'adaptive-anomaly-detector':1053 'add':1926 'address':141 'affect':1461 'aggreg':1243,1832 'ahead':1327 'aix':285,1990 'alert':219,1085 'alon':1155,1161 'alongsid':871,930,1149 'also':142 'alway':1363,1935 'analysi':389,452,488,785,898,904,925,989,1000,1010,1044,1233,1272,1442,1454,1787,2172 'analysisnoveltytyp':1176 'analyt':973,983 'analyz':968,1600,2059,2086,2109 'anomali':365,899,932,985,1006,1017,1046,1055,1128,1217,1436,1449,1542 'answer':1075,1110 'appropri':1043,1246 'arrayavg':329,333,337,432,439,476,480,813,818 'arrays':596 'artifact':922 'asc':618 'ask':849,896,940,1013,1061,1098,1202,1223,1283,1408,1512 'attribut':292,298,712,771,1649,1749,2137,2189 'audit':2131 'avail':688,1710,1883,1902,1997 'avg':313,316,319,419,429,463,466,790,794,798,1251,1257,1400,1609,1630,1634,1660,1807 'avoid':1261 'aw':43,105,1750,1752 'aws.account.id':1756 'aws.availability':1754 'aws.region':1753 'aws.resource.id':1757 'aws.resource.name':1758 'aws.state':1759 'azur':1703,1712,1715,1720,1763,1765,1948 'azure.location':1766 'azure.provisioning':1770 'azure.resource.group':1768 'azure.resource.sku.name':1772 'azure.status':1769 'azure.subscription':1767 'back':1393 'base':111 'baselin':1435,1473 'behavior':937,1016,1100,1108,1216,1415 'best':1275,1795 'bottleneck':234 'bound':1480 'boundari':1491 'breakdown':398,2062 'byte':1852,1955,1962 'calcul':79,715 'call':1525,1555 'candid':110 'capabl':1723 'capac':1876 'case':2047 'categori':185 'caus':1385,1907 'center':84,720 'chang':1021,1066,1101,1105,1117,1180,1194 'chargeback':714,2139 'check':101,562,1983 'choos':1050 'churn':2113 'classif':254 'classifi':257,1583 'clear':913 'cloud':161,204,290,296,1747,1786,1793,2149 'cloud-specif':289,1746 'cloud-specific-attribut':295 'cloud.provider':267,276,1751,1764 'cloudcost':1722 'cluster':1732,2124 'collect':921 'combin':123 'common':548,1571 'complet':103,216,1277,1737,2145 'complianc':93,218,561 'compon':2061 'comprehens':636 'concept':154 'connect':2094 'construct':845,993,1029,1293 'consum':59,456 'contain':172,174,646,651,659,665,673,684,702,708,1898,1992,2110,2175 'container-inventori':707 'container-monitoring.md':2107,2173 'context':948 'convert':1851 'core':153,744,758,1676 'correl':775,776,1620,1621 'cost':78,81,83,210,711,717,719,764,770,1733,2136,2188 'cost-attribut':769 'count':272,273,279,537,538,546,607,608,666,667,674,741,742,1472 'cover':1502 'coverag':1208 'cpu':16,53,304,312,330,338,348,352,357,368,374,380,388,394,462,477,481,789,797,815,820,863,1225,1629,1633,1659,2060,2156,2167 'cpu-monitor':393 'cpu/memory/disk':221 'cpucor':1669 'critic':225,247,346,824,1818 'cronjob':682 'cross':115,783,1079,1124,1618 'cross-lay':782,1617 'cross-sourc':114 'custom':1707,1727 'daemonset':679 'data':102,125,851,920,928,1204,1209,1270,1279,1300,1337,1371,1383,1646,1977,2141,2191 'databas':65,554 'day':1368,1875,1880 'decim':1862,1972 'dedic':1004 'deep':2020,2024 'default':1187 'deliver':885,908 'deploy':678,1921 'desc':280,339,446,482,547,675,759,821 'descriptor':2100 'desir':1319 'detail':387,2005,2052,2154 'detect':366,837,900,986,1007,1049,1093,1174,1405,1451,1543,2096 'detector':1047,1052,1056,1437 'diagnos':2077 'disclosur':2040 'discov':63,255,509,1581 'discoveri':252,571,644,1577,2134,2185 'disk':18,180,182,231,306,318,405,413,416,430,433,440,2074,2158 'distribut':74,652,2117 'divid':1963 'dql':146,262,310,414,460,516,583,657,721,786,855,866,996,1249,1255,1398,1586,1605,1626,1657 'dql-templat':1585,1604 'drop':237,2080 'dt':2,145,1531,1551,1716,1721,2008 'dt-dql-essenti':144 'dt-obs-host':1 'dt-obs-kubernet':2007 'dt-obs-servic':1530,1550 'dt.cost.costcenter':211,725,730,755,1734,1951 'dt.cost.product':212,1735 'dt.host':1610 'dt.host.cpu':189 'dt.host.cpu.idle':356,1252 'dt.host.cpu.iowait':379,1882,1974 'dt.host.cpu.system':373 'dt.host.cpu.usage':314,350,791,1401,1631,1661 'dt.host.cpu.user':367 'dt.host.disk':191 'dt.host.disk.used.percent':320,420 'dt.host.memory':190 'dt.host.memory.usage':317,795,1258 'dt.host.net':192 'dt.process.cpu':196 'dt.process.cpu.usage':464,799,1635 'dt.process.io':198 'dt.process.memory':197 'dt.process.memory.usage':467 'dt.process.network':199 'dt.process_group.detected':589,612 'dt.smartscape.host':322,327,422,427,801,807,957,1138,1254,1260,1403,1612,1637,1663,1672,1839 'dt.smartscape.process':469,474,802,811,1638,1847 'durat':1086 'e.g':132,857,1301 'earli':1822 'east':46 'empti':1936,2015 'enabl':2027 'endpoint':1567 'enrich':1642,1645,1834 'entiti':155,962,1142,1147,1153,1584,1641,1648 'environ':1705,1724,1726,1950 'eol':97 'error':236,240,1522,1564,2082 'essenti':147 'estim':1288 'even':1535 'exclud':1188 'exhaust':2098 'expand':522,600 'explicit':1201 'fail':1390 'fall':1392 'far':1326 'field':1265,1653,1667,1691,1701,1889,1934 'fieldsadd':265,323,423,428,470,519,526,586,660,724,731,803,1590,1613,1675 'file':2050,2099 'filter':328,475,591,728,812,1263,1591,1614,1821 'find':86,108,408,912,918 'focus':909 'follow':1164 'follow-up':1163 'forecast':901,987,1280,1286,1315,1320,1323,1347,1377,1387,1540,1570 'format':1126,1239,1439 'free':406,412,436,444 'futur':1289 'gap':929,944,1189,1205,1210 'gb':733,750,753,1679,1854 'gc':2103 'generic':1689,1887,1937 'get':891,961,1141 'get-entity-nam':960,1140 'getnodenam':326,426,473,806,810,956,1137,1838,1846 'group':171,2031 'health':774,822 'help':992 'high':52,228,340 'histor':1299,1332,1370,1396 'horizon':1321,1324,1354,1378 'host':4,6,11,41,50,95,106,124,137,156,177,181,187,251,256,264,271,278,309,324,409,424,723,740,777,788,792,804,814,819,861,950,975,1023,1133,1146,1290,1462,1463,1484,1487,1497,1503,1589,1622,1628,1666,1794,1844,1910,1914,2155 'host-level':1496 'host-metrics.md':2057,2152 'host.custom.metadata':1709,1729,1731 'host.logical.cpu.cores':268,726,747 'host.physical.memory':269,727,735 'host/process':2184 'hour':1351 'http':626 'https':628 'human':1842 'human-read':1841 'i/o':383,487,2075,2090,2169 'id':954,1148,1154,1467,1668,1674 'identifi':94,453 'idl':358 'imag':685,1899,1993,2004 'implement':2135 'impli':1119 'import':1687 'includ':15,864,949,1130,1446 'incorrect':1230 'independ':1343 'infrastructur':5,14,80,716,773,1212,1506,2150 'inject':2021 'input':981 'instal':1925 'instead':1534 'interfac':176,179 'inventori':22,36,201,260,508,568,582,709,2176,2187 'inventory-discovery.md':2127,2182 'invers':360 'investig':2067,2092 'involv':1489,1539 'io':494 'iowait':1985,2065 'ip':140 'isnotnul':592,729 'issu':1213 'java':98,550 'job':681 'join':117 'jump':1073 'k8s':654,692,2123 'k8s.cluster.name':661,669,672,1776 'k8s.cluster.uid':1777 'k8s.namespace.name':662,1778 'k8s.node.name':1779 'k8s.object':2001 'k8s.pod.name':1780 'k8s.workload.kind':663,670,1782 'k8s.workload.name':1781 'kernel':377 'key':248,347 'known':623 'kubernet':72,173,648,699,1775,2010,2115,2177 'kubernetes-vers':698 'latenc':232,1803,2076 'layer':784,1619 'lead':933 'least':1366,1423 'level':459,763,917,1494,1498,1516,1814,2089,2166 'lifecycl':703,2111 'like':1346 'limit':447,483,619,1806,1826,1829,1881 'linux':40,136,283,384,1885,1981 'linux-on':1980 'listen':89,575,601,610,616 'load':2034,2048,2056,2083,2106,2126 'log':127,134 'longer':1309,1419 'lookback':1362 'lookup':1644,1651,1655,1664,1835 'lookup.cpucores':1677 'lookup.memorytotal':1680 'lookupfield':1673 'machin':160 'magnitud':1063 'manag':10,2118,2146,2181 'map':574,638 'max':1804 'mean':889 'mem':1678 'memori':17,62,305,315,334,397,403,465,732,749,752,793,1227,1952,2068,2157,2168 'memory-monitor':402 'memorytot':1670 'mention':943 'messag':557 'metadata':215,1686,1708,1728,1745,2144 'metric':184,188,195,349,498,780,916,936,976,1024,1078,1215,1244,1291,1499,1507,1517,1546,1601,1608,1625,1959,1978 'metric-level':915 'min':1871 'minut':1527,1557 'miss':1191,1196,1915,1995 'mode':372,378 'model':1339,1388 'monitor':8,48,302,303,395,404,649,1207,2018,2025,2161 'month':1429 'most/least':411 'much':1335 'multi':834,1785,1792,1813,2148 'multi-cloud':1784,2147 'multi-cloud-host':1791 'multi-level':1812 'multi-resourc':833 'multipl':1486 'must':122 'mysql':632 'n':1830 'name':325,425,472,590,613,805,809,951,963,1134,1143,1160,1464,1845,1900,1994 'names/versions':686 'namespac':1897,1946 'need':34,2055 'net':553 'network':19,175,178,226,235,307,497,504,2078,2160,2171 'new':1107 'next':1349 'node.js':551 'normal':1071 'note':683,1688 'noth':1359 'novelti':1048,1092,1167,1173 'ob':3,1532,1552,2009 'often':978 'on-premis':163 'oneag':1919,1923,2023,2119 'opaqu':1157 'oper':2120,2180 'operatorvers':1730 'optim':107 'organ':1481 'os':202,281 'os.type':266,275,1984 'os/cloud':259 'owner':1717 'p95':1800 'p99':1801 'packet':2079 'paramet':1457 'pars':2002 'pass':1039,1312,1431 'past':1336 'pattern':1009,1037,1103,1228,1412,1573,1574,1593,1615,1639,2091 'pct':418,435,437,442,445 'peak':1088 'per':1526,1556 'percentil':1799 'perform':1002,1596,2129 'physic':157 'pipelin':1825 'plan':70,77,1877,2122 'point':1384 'popul':1694,1891,1940 'port':91,573,576,588,594,598,602,604,611,617,624,637,643,2133 'port-discoveri':642 'postgresql':634 'practic':1796 'predict':1285,1310,1329 'prefix':1656 'premis':165 'present':911,1444 'pressur':2069 'prevent':1162 'priorit':914 'problem':1906 'process':13,57,88,166,168,170,194,450,458,471,486,493,496,503,518,536,545,585,606,779,796,808,1505,1624,1632,1849,2016,2030,2088,2165 'process-io':492 'process-level':2087,2164 'process-monitoring.md':2084,2162 'process-network':502 'process.listen':587,593,597,603 'process.software':520,524,2012 'product':69,762 'product-level':761 'progress':2039 'provid':205 'python':552 'qualiti':100,214,2095,2142,2192 'queri':121,152,856,867,881,977,997,1032,1166,1231,1296,1572,1697,1932 'question':1538 'rang':1248,1421,1917,1929 'rate':238,241,1519,1523,1559,1565 'raw':1395,1958 'read':143 'readabl':1843 'real':1867 'real-tim':1866 'recur':1414 'redirect':1547 'reduc':1268 'refer':1652,1739,2035,2049,2151 'references/container-monitoring.md':696,697,705,706,2174 'references/host-metrics.md':391,392,400,401,839,840,2153 'references/inventory-discovery.md':294,564,565,640,641,767,768,1741,1789,1790,2183 'references/process-monitoring.md':490,491,500,501,2163 'regardless':1372 'report':927,1084,1218 'request':1345,1518,1558 'requir':118 'resolv':1135 'resourc':261,300,451,455,827,835,842,2097 'resource-satur':841 'respons':844,870,1125,1438,1520,1560 'result':873,892,905,1129,1445,1482,1827 'retriev':852 'return':1911,1975 'reus':879 'right':995 'rightsiz':109 'round':1858,1860,1970 'rule':1170 'run':67,96,167,1760 'satur':230,836,843 'say':1358 'scope':1490 'score':823 'season':902,988,1404,1410,1434,1441,1448 'secur':85,580,2130 'see':293,390,399,489,499,563,639,695,704,766,838,877,1740,1788,2006 'select':1169 'serv':979 'server':556 'servic':570,578,1493,1515,1524,1533,1553,1554,1563,1568 'service-level':1492,1514 'set':1175,1352,1811 'shape':1113 'short':1305,1375 'short-term':1304 'show':37,133,858 'signal':1116 'simpl':1237 'singl':1242 'size':1774 'skill':7,27,30,991,1035,1501,2011,2037 'skill-dt-obs-hosts' 'smartscap':690,1576,1696,1893,1904,1942,1999 'smartscapenod':263,517,584,658,722,1579,1588,1665,1913 'softwar':512 'solari':286,1991 'solut':1908 'someth':1104 'sort':277,336,443,479,544,614,671,756,817 'sourc':116,131 'source-dynatrace' 'sourcefield':1671 'space':407 'specif':291,297,1121,1699,1748,1895,1944,2053 'spike':1018,1064,1179 'ssh':630 'stack':207,507 'start':2041 'state':965,1771 'statefulset':680 'steal':2066 'stop':1761 'sudden':1020,1072 'suffici':1298 'sum':745,751 'summar':270,535,605,664,739,1592 'supplementari':947 'suspens':2104 'swap':243,2071 'system':558,2064 'tag':1684,1690,1700,1702,1704,1711,1713,1714,1719,1725,1738,1743,1888,1896,1933,1938,1945,1947,1949 'tags-and-metadata':1742 'tcp':2093 'team':1718 'tech':523,527,529,531,533,540,542 'technolog':21,206,506,513,521,525,549,567,2013,2186 'technology-inventori':566 'telemetri':130 'templat':1587,1606 'term':1306 'termin':1762 'thread':2101 'threshold':220,342,1082,1122,1815 'throughput':1528,1569 'time':359,369,375,1247,1420,1521,1561,1603,1864,1868,1916,1928,2105 'timefram':967,1455 'timeseri':311,415,461,787,1031,1091,1238,1250,1256,1278,1295,1399,1595,1598,1607,1627,1658 'timeseries-novelty-detect':1090 'timestamp':1150,1468 'todoubl':734 'tolong':615,746 'tool':926,964,984,1005,1045,1234,1273,1316 'tools/parameters':971 'top':454,860 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-devops' 'topic-dql' 'topic-dynatrace' 'topic-mcp' 'topic-observability' 'total':351,743,748,757 'track':71,511,650,694,765,2102,2114 'train':1340,1382 'transform':1266 'trend':1106,1183,1809,1872 'troubleshoot':55,1905,2073 'type':203,282,528,530,541,656,677,1168 'unavail':1987 'unexpect':1081 'unit':1960 'unless':1198 'unread':1957 'unusu':1015,1102 'upgrad':76,2125 'upper/lower':1479 'us':45 'us-east':44 'usag':54,362,2072 'use':25,28,363,417,431,434,441,955,972,1033,1057,1094,1172,1236,1364,1417,1458,1529,1578,1597,1698,1706,1798,1837,1894,1943,1969,2000,2038,2046 'user':33,371,848,874,895,939,1012,1060,1097,1159,1200,1222,1282,1407,1511,2063 'util':113,301,341,353 'valid':2140 'valu':1067,1089,1152,1182,1185,1192,1197,1397,1474,1477,1861,1953,1971 'verifi':1922,2022 'version':73,99,208,217,515,532,534,543,560,693,700,2116,2121,2178 'via':572,1136,2132 'violat':1470,1471 'virtual':159 'vm':1773 'volum':183 'vs':1475,1495 'wait':381 'want':875 'warn':223,245,344,829,1816 'web':555 'week':1411,1426 'well':622 'well-known':621 'went':1069 'whether':1447 'window':284,1333,1865,1989 'without':1118 'work':1274 'workflow':249,974,1026 'workload':655,676 'write':150 'yes/no':1452 'zone':1755 'zos':287","prices":[{"id":"ca994cc4-2220-4e78-a5e3-671fbdb72b9d","listingId":"d70eba13-49f6-4150-b490-8637e36f8611","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:14.199Z"}],"sources":[{"listingId":"d70eba13-49f6-4150-b490-8637e36f8611","source":"github","sourceId":"Dynatrace/dynatrace-for-ai/dt-obs-hosts","sourceUrl":"https://github.com/Dynatrace/dynatrace-for-ai/tree/main/skills/dt-obs-hosts","isPrimary":false,"firstSeenAt":"2026-05-11T18:57:14.199Z","lastSeenAt":"2026-05-18T18:56:48.115Z"}],"details":{"listingId":"d70eba13-49f6-4150-b490-8637e36f8611","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Dynatrace","slug":"dt-obs-hosts","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":"3c1d86ecdad5c62e6aa42565a9d3e3061fe36d4c","skill_md_path":"skills/dt-obs-hosts/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Dynatrace/dynatrace-for-ai/tree/main/skills/dt-obs-hosts"},"layout":"multi","source":"github","category":"dynatrace-for-ai","frontmatter":{"name":"dt-obs-hosts","license":"Apache-2.0","description":">-"},"skills_sh_url":"https://skills.sh/Dynatrace/dynatrace-for-ai/dt-obs-hosts"},"updatedAt":"2026-05-18T18:56:48.115Z"}}