# @opentelemetry/instrumentation-host-metrics

> OpenTelemetry Host Metrics instrumentation for Node.js

Latest version **0.6.0** (published 2026-10-06) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @opentelemetry/instrumentation-host-metrics
pnpm add @opentelemetry/instrumentation-host-metrics
yarn add @opentelemetry/instrumentation-host-metrics
bun add @opentelemetry/instrumentation-host-metrics
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.6.0 |
| Published | 2026-10-06 |
| First published | 2026-06-11 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | ^18.19.0 \|\| >=20.6.0 |
| Dependencies | 2 |
| Unpacked size | 93.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 930 |
| Author | OpenTelemetry Authors |
| Maintainers | dyladan, pichlermarc, overbalance, npmjs-account, trentm, martinkuba |
| Keywords | opentelemetry, metrics, nodejs, instrumentation, plugin |

## Links

- npm: https://www.npmjs.com/package/@opentelemetry/instrumentation-host-metrics
- Repository: https://github.com/open-telemetry/opentelemetry-js-contrib
- Homepage: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/instrumentation-host-metrics#readme
- Issues: https://github.com/open-telemetry/opentelemetry-js-contrib/issues
- npm.io page: https://npm.io/package/@opentelemetry/instrumentation-host-metrics

## Dependencies (2)

- [systeminformation](https://npm.io/package/systeminformation.md) ^5.31.6
- [@opentelemetry/instrumentation](https://npm.io/package/@opentelemetry/instrumentation.md) ^0.223.0

## Recent versions

- 0.6.0 (latest) — 2026-10-06
- 0.5.0 — 2026-08-31
- 0.4.0 — 2026-07-23
- 0.3.0 — 2026-07-03
- 0.2.0 — 2026-06-11

## README

# OpenTelemetry Host Metrics Instrumentation for Node.js

[![NPM Published Version][npm-img]][npm-url]
[![Apache License][license-image]][license-image]

This module provides automatic collection of host metrics for the Node.js process and operating system, including CPU, memory, and network. It is included in the [`@opentelemetry/auto-instrumentations-node`](https://www.npmjs.com/package/@opentelemetry/auto-instrumentations-node) bundle (disabled by default; enable via `OTEL_NODE_ENABLED_INSTRUMENTATIONS`).

Compatible with OpenTelemetry JS API and SDK `1.0+`.

## Installation

```bash
npm install --save @opentelemetry/instrumentation-host-metrics
```

## Supported Versions

- Node.js `^18.19.0 || >=20.6.0`

## Usage

```js
const { NodeSDK } = require('@opentelemetry/sdk-node');
const { HostMetricsInstrumentation } = require('@opentelemetry/instrumentation-host-metrics');

const sdk = new NodeSDK({
  instrumentations: [new HostMetricsInstrumentation()],
});

sdk.start();
```

### Host Metrics Instrumentation Options

| Option         | Type       | Description                                                                                                                                                                                                                                                            |
|----------------|------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `metricGroups` | `string[]` | Optionally restrict collection to one or more metric groups (see [Semantic Conventions](#semantic-conventions)). When unset, all metrics are collected. For example, `metricGroups: ['process.cpu', 'process.memory']` limits collection to those metrics only. |

## Semantic Conventions

Metrics collected:

| Metric                          | Short Description                                         |
|---------------------------------|-----------------------------------------------------------|
| **Group `system.cpu`**          |                                                           |
| `system.cpu.time`               | Seconds each logical CPU spent on each mode               |
| `system.cpu.utilization`        | CPU usage (0-1)                                           |
| **Group `system.memory`**       |                                                           |
| `system.memory.usage`           | Reports memory in use by state                            |
| `system.memory.utilization`     | Memory usage (0-1)                                        |
| **Group `system.network`**      |                                                           |
| `system.network.packet.dropped` | Count of packets dropped                                  |
| `system.network.errors`         | Count of network errors detected                          |
| `system.network.io`             | Bytes transmitted and received                            |
| **Group `process.cpu`**         |                                                           |
| `process.cpu.time`              | Total CPU seconds                                         |
| `process.cpu.utilization`       | Difference in process.cpu.time since the last measurement |
| **Group `process.memory`**      |                                                           |
| `process.memory.usage`          | The amount of physical memory in use                      |

The "Group" names are the values accepted by the `metricGroups` configuration option.

Attributes collected:

| Attribute              | Short Description                  |
|------------------------|------------------------------------|
| `cpu.logical_number`   | The logical CPU number             |
| `cpu.mode`             | The mode of the CPU                |
| `system.memory.state`  | The memory state                   |
| `system.device`        | The device identifier              |
| `network.io.direction` | The network IO operation direction |

## Useful links

- For more information on OpenTelemetry, visit: <https://opentelemetry.io/>
- For more about OpenTelemetry JavaScript: <https://github.com/open-telemetry/opentelemetry-js>
- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]

## License

Apache 2.0 - See [LICENSE][license-url] for more information.

[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions
[license-url]: https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/LICENSE
[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat
[npm-url]: https://www.npmjs.com/package/@opentelemetry/instrumentation-host-metrics
[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Finstrumentation-host-metrics.svg

---
_Source: https://npm.io/package/@opentelemetry/instrumentation-host-metrics · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
