> Source: https://www.ymotongpoo.com/works/otel-specs-ja/semconv/runtime/nodejs-metrics/


# Node.jsランタイムメトリクスに関するセマンティック規約

**ステータス**: [Development][DocumentStatus]

この文書では、OpenTelemetryにおけるNode.jsランタイムメトリクスに関するセマンティック規約を定義します。

**Description:** `nodejs`の下で取得される、開発中のNode.jsランタイムメトリクス。

注記: イベントループの遅延に関するメトリクスは、単一のヒストグラムではなく個別の値に分割されています。これは、Node.jsランタイムが[`perf_hooks.monitorEventLoopDelay([options])`][Eventloop]を通じて単一の値のみを返し、ヒストグラム全体を返さないため、OpenTelemetryのヒストグラムに変換できないことによります。

## メトリクス: `nodejs.eventloop.delay.min`

このメトリクスは[推奨][MetricRecommended]です。

<!-- semconv metric.nodejs.eventloop.delay.min -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `nodejs.eventloop.delay.min` | Gauge | `s` | イベントループの最小遅延。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** 値は[`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)の`histogram.min`の値から取得できます。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メトリクス: `nodejs.eventloop.delay.max`

このメトリクスは[推奨][MetricRecommended]です。

<!-- semconv metric.nodejs.eventloop.delay.max -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `nodejs.eventloop.delay.max` | Gauge | `s` | イベントループの最大遅延。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** 値は[`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)の`histogram.max`の値から取得できます。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メトリクス: `nodejs.eventloop.delay.mean`

このメトリクスは[推奨][MetricRecommended]です。

<!-- semconv metric.nodejs.eventloop.delay.mean -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `nodejs.eventloop.delay.mean` | Gauge | `s` | イベントループの平均遅延。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** 値は[`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)の`histogram.mean`の値から取得できます。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メトリクス: `nodejs.eventloop.delay.stddev`

このメトリクスは[推奨][MetricRecommended]です。

<!-- semconv metric.nodejs.eventloop.delay.stddev -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `nodejs.eventloop.delay.stddev` | Gauge | `s` | イベントループの遅延の標準偏差。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** 値は[`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)の`histogram.stddev`の値から取得できます。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メトリクス: `nodejs.eventloop.delay.p50`

このメトリクスは[推奨][MetricRecommended]です。

<!-- semconv metric.nodejs.eventloop.delay.p50 -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `nodejs.eventloop.delay.p50` | Gauge | `s` | イベントループの50パーセンタイル遅延。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** 値は[`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)の`histogram.percentile(50)`の値から取得できます。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メトリクス: `nodejs.eventloop.delay.p90`

このメトリクスは[推奨][MetricRecommended]です。

<!-- semconv metric.nodejs.eventloop.delay.p90 -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `nodejs.eventloop.delay.p90` | Gauge | `s` | イベントループの90パーセンタイル遅延。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** 値は[`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)の`histogram.percentile(90)`の値から取得できます。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メトリクス: `nodejs.eventloop.delay.p99`

このメトリクスは[推奨][MetricRecommended]です。

<!-- semconv metric.nodejs.eventloop.delay.p99 -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `nodejs.eventloop.delay.p99` | Gauge | `s` | イベントループの99パーセンタイル遅延。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** 値は[`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)の`histogram.percentile(99)`の値から取得できます。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メトリクス: `nodejs.eventloop.utilization`

このメトリクスは[推奨][MetricRecommended]です。

<!-- semconv metric.nodejs.eventloop.utilization -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `nodejs.eventloop.utilization` | Gauge | `1` | イベントループの利用率。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** 値の範囲は[0.0, 1.0]であり、[`performance.eventLoopUtilization([utilization1[, utilization2]])`](https://nodejs.org/api/perf_hooks.html#performanceeventlooputilizationutilization1-utilization2)から取得できます。

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

## メトリクス: `nodejs.eventloop.time`

このメトリクスは[推奨][MetricRecommended]です。

<!-- semconv metric.nodejs.eventloop.time -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->

| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
| `nodejs.eventloop.time` | Counter | `s` | イベントループが各状態にあった時間の累積。[1] | ![Development](https://img.shields.io/badge/-development-blue) | |

**[1]:** 値は[`performance.eventLoopUtilization([utilization1[, utilization2]])`](https://nodejs.org/api/perf_hooks.html#performanceeventlooputilizationutilization1-utilization2)から取得できます。

**Attributes:**

| Key | Stability | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Value Type | Description | Example Values |
| --- | --- | --- | --- | --- | --- |
| [`nodejs.eventloop.state`](https://opentelemetry.io/docs/specs/semconv/registry/attributes/nodejs/) | ![Development](https://img.shields.io/badge/-development-blue) | `Required` | string | イベントループ時間の状態。 | `active`; `idle` |

---

`nodejs.eventloop.state`には、次のよく知られた値の一覧があります。いずれかが該当する場合はその値を使用しなければならず（MUST）、それ以外の場合は独自の値を使ってもかまいません（MAY）。

| Value | Description | Stability |
| --- | --- | --- |
| `active` | アクティブな時間。 | ![Development](https://img.shields.io/badge/-development-blue) |
| `idle` | アイドルな時間。 | ![Development](https://img.shields.io/badge/-development-blue) |

<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

[DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status
[MetricRecommended]: /works/otel-specs-ja/semconv/general/metric-requirement-level/#recommended
[Eventloop]: https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions

