> ## Documentation Index
> Fetch the complete documentation index at: https://docs-xcor.paloaltonetworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Host

> Operating system metrics from the machine running the Collector, including CPU, memory, disk, file system, network, load, paging, process counts, and uptime.

The Host integration requires CXDOT Collector 1.4.0 or greater.

Use the Host CXDOT Collector integration to collect operating system metrics from
the machine where the CXDOT Collector runs, including CPU, memory, disk, file
system, network, load, paging, process counts, and uptime.

## Supported telemetry types

The Host CXDOT Collector integration supports these telemetry types:

| Type | Supported |
| - | - |
| Logs | No |
| Metrics | Yes |
| Traces | No |
| Events | No |

## Prerequisites

The Host CXDOT Collector integration has the following prerequisites:

* When you deploy the CXDOT Collector with the Helm chart on Linux, the chart
  mounts the node's file system read-only at `/hostfs` and sets `root_path` so
  metrics describe the node rather than the Collector container. No extra volume
  mapping is required.
* For another container-based Linux deployment, bind-mount the host root file
  system read-only into the container and set `root_path` to that mount point.
  For example, mount the host root at `/hostfs` and set `root_path: /hostfs`.
  Without this mount, the integration reports metrics for the container instead
  of the host.
* When the CXDOT Collector runs directly on the host, you don't need a file
  system mount.

## Configure

The Host CXDOT Collector integration is enabled by default. It monitors the
machine where the node Collector runs and doesn't require target endpoints or
pod labels for discovery.

On Kubernetes, the node Collector runs one Host integration instance per node.
For more information about Collector tiers and node placement, see
[architecture](https://docs-xcor.paloaltonetworks.com/ingest/xcor/collector/install/kubernetes/architecture).

Host metrics receive base deployment enrichment, such as cluster and host
identity labels. They aren't scoped to individual pods.

By default, the integration collects CPU, memory, disk, file system, network,
load, paging, process counts, and uptime on Linux and macOS. On Linux, it also
collects network-interface configuration from `/sys/class/net` and system-wide
file descriptor usage. The interface configuration metrics describe the
interfaces the Collector process can see. They match the node's interfaces when
the Collector runs with host networking or directly on the host. Per-process
metrics are off by default because they can substantially increase time series
cardinality.

Shared timing settings and `root_path` apply to every metric family. You can
enable or disable each family and pass through additional settings for that
family. For the complete field list, accepted values, and defaults, see the
configuration reference on this page.

To configure the Host CXDOT Collector integration, follow these steps:

1. Optional: Adjust shared settings or individual metric families. For example,
   add the following to the `values.yaml` for your CXDOT Collector Helm chart:

   ```yaml theme={null}
   config:
     integrations:
       host:
         collection_interval: 30s
         filesystem:
           enabled: false
   ```

2. Optional: Enable detailed per-process metrics only when you need them. These
   metrics accept filters and per-metric toggles. For example, add the following
   to the `values.yaml` for your CXDOT Collector Helm chart:

   ```yaml theme={null}
   config:
     integrations:
       host:
         process:
           enabled: true
           config:
             include:
               match_type: regexp
               names:
                 - "^(nginx|postgres)$"
   ```

   The `include` filter selects processes by process name. This example collects
   per-process metrics for processes named `nginx` or `postgres`.

3. Optional: Disable the integration. For example, add the following to the
   `values.yaml` for your CXDOT Collector Helm chart:

   ```yaml theme={null}
   config:
     integrations:
       host:
         enabled: false
   ```

### Validate

To validate the Host CXDOT Collector integration, follow these steps:

1. In the Live Telemetry Analyzer, filter for
   `__name__=cxdot.integration.target.health` and
   `cxdot.integration.name=host`. Confirm that each series reports `1` for a
   healthy node. Use the `cxdot.integration.target` and `host.name` attributes
   to identify the node and metric family.

2. In Metrics Explorer, run the following query:

   ```text theme={null}
   count by ("host.name") ({"system.uptime"})
   ```

   Confirm that the query returns one time series per node. Use the `host.name`
   label to identify the node.

## Configuration reference

Configure one Host integration instance with the following settings. In Helm values, place these
settings under `config.integrations.host`. In a Collector configuration file, place them under
`cxdot.integrations.host`.

### Optional settings

* **`enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`collection_interval`**
  Type: `duration`. Optional. Default: `60s`.
  How often the Collector collects operating system metrics.

* **`timeout`**
  Type: `duration`. Optional. Default: `60s`.
  Maximum time allowed for one collection.

* **`root_path`**
  Type: `string`. Optional. Default: \`\`.
  Root of the host file system when the Collector runs in a container with the host root
  bind-mounted (for example, `/hostfs`). The Collector uses this path so metric collection reads
  the node instead of the container. Omit when the Collector runs directly on the host.

* **`cpu`**
  Type: `object`. Optional.
  Settings for collecting CPU usage metrics.

* **`cpu.enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`cpu.config`**
  Type: `object`. Optional. Default:
  `{"metrics":{"system.cpu.physical.count":{"enabled":true},"system.cpu.utilization":{"enabled":true}}}`.
  Advanced settings for CPU metrics, passed through to the Collector unchanged. The default
  enables this integration's standard metric set.

* **`memory`**
  Type: `object`. Optional.
  Settings for collecting memory usage metrics.

* **`memory.enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`memory.config`**
  Type: `object`. Optional. Default:
  `{"metrics":{"system.linux.memory.available":{"enabled":true},"system.memory.limit":{"enabled":true},"system.memory.linux.shared":{"enabled":true},"system.memory.utilization":{"enabled":true}}}`.
  Advanced settings for memory metrics, passed through to the Collector unchanged. The default
  enables this integration's standard metric set.

* **`filesystem`**
  Type: `object`. Optional.
  Settings for collecting file system usage metrics.

* **`filesystem.enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`filesystem.config`**
  Type: `object`. Optional. Default:
  `{"include_virtual_filesystems":true,"metrics":{"system.filesystem.utilization":{"enabled":true}}}`.
  Advanced settings for file system metrics, passed through to the Collector unchanged. The
  default enables this integration's standard metric set.

* **`filesystem.config.include_virtual_filesystems`**
  Type: `boolean`. Optional. Default: `true`.
  Include virtual and bind-mounted file systems. Containerized Collectors require this to report
  file systems from a bind-mounted host root.

* **`filesystem.config.exclude_devices`**
  Type: `object`. Optional.
  Filter that excludes filesystems by device name. Set `match_type` to `strict` to match names
  exactly or `regexp` to match them as regular expressions. The scraper requires `match_type`
  when this filter is set.

* **`filesystem.config.exclude_devices.devices`**
  Type: `array of string`. Optional.
  Device names or patterns to exclude, for example, `/dev/loop0`.

* **`filesystem.config.exclude_fs_types`**
  Type: `object`. Optional.
  Filter that excludes filesystems by type. Set `match_type` to `strict` to match types exactly
  or `regexp` to match them as regular expressions. The scraper requires `match_type` when this
  filter is set.

* **`filesystem.config.exclude_fs_types.fs_types`**
  Type: `array of string`. Optional.
  Filesystem types or patterns to exclude, for example, `tmpfs` or `overlay`.

* **`filesystem.config.exclude_mount_points`**
  Type: `object`. Optional.
  Filter that excludes filesystems by mount point. Set `match_type` to `strict` to match mount
  points exactly or `regexp` to match them as regular expressions. The scraper requires
  `match_type` when this filter is set. When `root_path` is set, specify mount points as the
  host sees them, not as the container does.

* **`filesystem.config.exclude_mount_points.mount_points`**
  Type: `array of string`. Optional.
  Mount points or patterns to exclude, for example, `/var/lib/docker`.

* **`filesystem.config.include_devices`**
  Type: `object`. Optional.
  Filter that limits filesystem metrics to the listed device names. Set `match_type` to `strict`
  to match names exactly or `regexp` to match them as regular expressions. The scraper requires
  `match_type` when this filter is set.

* **`filesystem.config.include_devices.devices`**
  Type: `array of string`. Optional.
  Device names or patterns to include, for example, `/dev/nvme0n1p2`.

* **`filesystem.config.include_fs_types`**
  Type: `object`. Optional.
  Filter that limits filesystem metrics to the listed filesystem types. Set `match_type` to
  `strict` to match types exactly or `regexp` to match them as regular expressions. The scraper
  requires `match_type` when this filter is set.

* **`filesystem.config.include_fs_types.fs_types`**
  Type: `array of string`. Optional.
  Filesystem types or patterns to include, for example, `ext4` or `xfs`.

* **`filesystem.config.include_mount_points`**
  Type: `object`. Optional.
  Filter that limits filesystem metrics to the listed mount points. Set `match_type` to `strict`
  to match mount points exactly or `regexp` to match them as regular expressions. The scraper
  requires `match_type` when this filter is set. When `root_path` is set, specify mount points
  as the host sees them, not as the container does.

* **`filesystem.config.include_mount_points.mount_points`**
  Type: `array of string`. Optional.
  Mount points or patterns to include, for example, `/` or `/data`.

* **`network`**
  Type: `object`. Optional.
  Settings for collecting network interface and connection metrics.

* **`network.enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`network.config`**
  Type: `object`. Optional. Default:
  `{"metrics":{"system.network.conntrack.count":{"enabled":true},"system.network.conntrack.max":{"enabled":true}}}`.
  Advanced settings for network metrics, passed through to the Collector unchanged. The default
  enables this integration's standard metric set.

* **`disk`**
  Type: `object`. Optional.
  Settings for collecting disk I/O metrics.

* **`disk.enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`disk.config`**
  Type: `object`. Optional. Default: `{}`.
  Advanced settings for disk metrics, passed through to the Collector unchanged.

* **`load`**
  Type: `object`. Optional.
  Settings for collecting system load average metrics.

* **`load.enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`load.config`**
  Type: `object`. Optional. Default: `{}`.
  Advanced settings for load metrics, passed through to the Collector unchanged.

* **`paging`**
  Type: `object`. Optional.
  Settings for collecting paging and swap activity metrics.

* **`paging.enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`paging.config`**
  Type: `object`. Optional. Default: `{}`.
  Advanced settings for paging metrics, passed through to the Collector unchanged.

* **`processes`**
  Type: `object`. Optional.
  Settings for collecting process count metrics.

* **`processes.enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`processes.config`**
  Type: `object`. Optional. Default: `{}`.
  Advanced settings for process count metrics, passed through to the Collector unchanged.

* **`uptime`**
  Type: `object`. Optional.
  Settings for collecting system uptime metrics.

* **`uptime.enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`uptime.config`**
  Type: `object`. Optional. Default: `{}`.
  Advanced settings for uptime metrics, passed through to the Collector unchanged.

* **`netclass`**
  Type: `object`. Optional.
  Settings for collecting per-interface configuration metrics from `/sys/class/net`.

* **`netclass.enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`file_handles`**
  Type: `object`. Optional.
  Settings for collecting system-wide file-descriptor counts from `/proc/sys/fs/file-nr`.

* **`file_handles.enabled`**
  Type: `boolean`. Optional. Default: `true`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`process`**
  Type: `object`. Optional.
  Settings for collecting per-process metrics. Off by default: one time series set per process
  is high cardinality.

* **`process.enabled`**
  Type: `boolean`. Optional. Default: `false`.
  Whether to enable this configuration block. If true, the Collector runs the integration or
  capability. If false, the Collector doesn't run it.

* **`process.config`**
  Type: `object`. Optional. Default: `{}`.
  Advanced settings for per-process metrics, passed through to the Collector unchanged.


## Related topics

- [Troubleshooting pipelines](/ingest/pipeline/v2/build/troubleshoot.md)
- [Clickhouse  destination plugin](/ingest/pipeline/plugins/destination-plugins/clickhouse.md)
- [Scalyr DataSet destination plugin](/ingest/pipeline/plugins/destination-plugins/scalyr.md)
- [Use monitors to generate alerts and notifications](/investigate/alerts/monitors.md)
- [Prometheus Remote Write destination plugin](/ingest/pipeline/plugins/destination-plugins/prometheus-remote-write.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.