---
title: LPARStats
description: Collect IBM POWER LPAR performance metrics from AIX systems via lparstat.
breadcrumbs: Docs > Integrations > LPARStats
---

# LPARStats
Supported OS Integration version1.0.0
{% callout %}
# Important note for users on the following Datadog sites: us2.ddog-gov.com

{% alert level="info" %}
To find out if this integration is available in your organization, see your [Datadog Integrations](https://app.datadoghq.com/integrations) page or ask your organization administrator.

To initiate an exception request to enable this integration for your organization, email [support@ddog-gov.com](mailto:support@ddog-gov.com).
{% /alert %}

{% /callout %}

## Overview{% #overview %}

The LPARStats check collects performance metrics from IBM POWER Logical Partitions (LPARs) running AIX by parsing the output of the `lparstat` command.

**This check is only supported on AIX.** It relies on the `lparstat` utility, which is exclusive to IBM AIX on POWER hardware.

Metrics collected:

- **Memory statistics** (`system.lpar.memory.*`): physical memory usage, page statistics, I/O memory pool utilization.
- **Hypervisor call statistics** (`system.lpar.hypervisor.*`): per-call counts and latency for hypervisor calls. Requires root or sudo.
- **I/O memory entitlements** (`system.lpar.memory.entitlement.*`): per-pool entitlement and allocation data. Requires root or sudo.
- **SPURR processor utilization** (`system.lpar.spurr.*`): actual and normalized physical processor utilization rates.

## Setup{% #setup %}

### Installation{% #installation %}

The LPARStats check is included in the [Datadog Agent](https://app.datadoghq.com/account/settings/agent/latest) package for AIX. No additional installation is needed.

### Configuration{% #configuration %}

1. Edit the `lparstats.d/conf.yaml` file in your Agent's `conf.d/` directory. See the [sample lparstats.d/conf.yaml](https://github.com/DataDog/integrations-core/blob/master/lparstats/datadog_checks/lparstats/data/conf.yaml.example) for all available configuration options.

1. To collect hypervisor and memory entitlement metrics, the Agent must run as root, or the `dd-agent` user must be granted sudo access to `lparstat`:

   ```
   dd-agent ALL=(root) NOPASSWD: /usr/bin/lparstat
   ```

1. [Restart the Agent](https://docs.datadoghq.com/agent/guide/agent-commands.md#start-stop-and-restart-the-agent).

### Validation{% #validation %}

Run the [Agent's status subcommand](https://docs.datadoghq.com/agent/guide/agent-commands.md#agent-status-and-information) and look for `lparstats` under the Checks section.

## Data Collected{% #data-collected %}

### Metrics{% #metrics %}

|  |
|  |
| **system.lpar.hypervisor.n\_calls**(gauge)         | Number of hypervisor calls.                                                              |
| **system.lpar.hypervisor.time.call.avg**(gauge)    | Average hypervisor call time.*Shown as nanosecond*                                       |
| **system.lpar.hypervisor.time.call.max**(gauge)    | Maximum hypervisor call time.*Shown as nanosecond*                                       |
| **system.lpar.hypervisor.time.spent.hyp**(gauge)   | Percent hypervisor time spent.*Shown as percent*                                         |
| **system.lpar.hypervisor.time.spent.total**(gauge) | Percent total time spent in hypervisor calls.*Shown as percent*                          |
| **system.lpar.memory.ccol**(gauge)                 | Compaction collection rate.                                                              |
| **system.lpar.memory.entc**(gauge)                 | Entitlement consumed (%).                                                                |
| **system.lpar.memory.entitlement.iodes**(gauge)    | I/O memory desired entitlement per pool.                                                 |
| **system.lpar.memory.entitlement.iohwm**(gauge)    | I/O memory high-water mark per pool.                                                     |
| **system.lpar.memory.entitlement.iomaf**(gauge)    | I/O memory adjustment failures per pool.                                                 |
| **system.lpar.memory.entitlement.iomin**(gauge)    | I/O memory minimum entitlement per pool.                                                 |
| **system.lpar.memory.entitlement.iomu**(gauge)     | I/O memory in use per pool.                                                              |
| **system.lpar.memory.entitlement.iores**(gauge)    | I/O memory reserved per pool.                                                            |
| **system.lpar.memory.hpi**(gauge)                  | Hard page-in rate.                                                                       |
| **system.lpar.memory.hpit**(gauge)                 | Hard page-in time.                                                                       |
| **system.lpar.memory.iohwm**(gauge)                | I/O memory high-water mark (GB).                                                         |
| **system.lpar.memory.iomaf**(gauge)                | I/O memory adjustment failures.                                                          |
| **system.lpar.memory.iomf**(gauge)                 | I/O memory free (GB).                                                                    |
| **system.lpar.memory.iomin**(gauge)                | I/O memory minimum (GB).                                                                 |
| **system.lpar.memory.iomu**(gauge)                 | I/O memory in use (GB).                                                                  |
| **system.lpar.memory.mpgcol**(gauge)               | Minor page collection rate.                                                              |
| **system.lpar.memory.pgcol**(gauge)                | Page collection rate.                                                                    |
| **system.lpar.memory.physb**(gauge)                | Physical memory busy (allocated).                                                        |
| **system.lpar.memory.pmem**(gauge)                 | Physical memory in use (GB).                                                             |
| **system.lpar.memory.vcsw**(gauge)                 | Voluntary context switches.                                                              |
| **system.lpar.spurr.idle**(gauge)                  | SPURR actual idle processor utilization.                                                 |
| **system.lpar.spurr.idle.norm**(gauge)             | SPURR normalized idle processor utilization.                                             |
| **system.lpar.spurr.idle.norm.pct**(gauge)         | SPURR normalized idle processor utilization as a fraction of total.*Shown as fraction*   |
| **system.lpar.spurr.idle.pct**(gauge)              | SPURR actual idle processor utilization as a fraction of total.*Shown as fraction*       |
| **system.lpar.spurr.sys**(gauge)                   | SPURR actual system processor utilization.                                               |
| **system.lpar.spurr.sys.norm**(gauge)              | SPURR normalized system processor utilization.                                           |
| **system.lpar.spurr.sys.norm.pct**(gauge)          | SPURR normalized system processor utilization as a fraction of total.*Shown as fraction* |
| **system.lpar.spurr.sys.pct**(gauge)               | SPURR actual system processor utilization as a fraction of total.*Shown as fraction*     |
| **system.lpar.spurr.user**(gauge)                  | SPURR actual user processor utilization.                                                 |
| **system.lpar.spurr.user.norm**(gauge)             | SPURR normalized user processor utilization.                                             |
| **system.lpar.spurr.user.norm.pct**(gauge)         | SPURR normalized user processor utilization as a fraction of total.*Shown as fraction*   |
| **system.lpar.spurr.user.pct**(gauge)              | SPURR actual user processor utilization as a fraction of total.*Shown as fraction*       |
| **system.lpar.spurr.wait**(gauge)                  | SPURR actual wait processor utilization.                                                 |
| **system.lpar.spurr.wait.norm**(gauge)             | SPURR normalized wait processor utilization.                                             |
| **system.lpar.spurr.wait.norm.pct**(gauge)         | SPURR normalized wait processor utilization as a fraction of total.*Shown as fraction*   |
| **system.lpar.spurr.wait.pct**(gauge)              | SPURR actual wait processor utilization as a fraction of total.*Shown as fraction*       |

### Service Checks{% #service-checks %}

**lparstats.can\_collect**

Returns `CRITICAL` if any `lparstat` sub-command fails (non-zero exit code). Returns `OK` otherwise.

*Statuses: ok, critical*

### Events{% #events %}

The LPARStats check does not include any events.

## Support{% #support %}

Need help? Contact [Datadog support](https://docs.datadoghq.com/help/).
