# 非OTLP形式へのマッピング

> Source: https://www.ymotongpoo.com/works/otel-specs-ja/spec/common/mapping-to-non-otlp/


**ステータス**: [Stable](../../document-status/)

OpenTelemetry APIを使って記録されるすべてのOpenTelemetryの概念とデータは、OTLP形式の対応するメッセージとフィールドを使って直接かつ正確に表現できます。しかし、他の形式では常にそうとは限りません。ある形式が、特定のOpenTelemetryの概念や概念のフィールドをネイティブに表現する方法を持たない場合があります。

本文書は、OTLP以外の形式のうち、OpenTelemetryのフィールドや概念に直接対応する意味論的な等価物を持たないものについて、OpenTelemetryとそれらの形式との間の変換を定義します。

注: ある形式が特定のフィールドや概念に対して直接対応する意味論的な等価物を持つ場合、本文書の推奨事項はMUST無視されるものとします。

[Prometheus](/works/otel-specs-ja/spec/compatibility/prometheus_and_openmetrics/)と[Zipkin](/works/otel-specs-ja/spec/trace/sdk_exporters/zipkin/)についての追加の具体的な変換規則も参照してください。PrometheusとZipkinについての具体的な規則は、本文書で定義される汎用的な規則より優先されます。

## Mappings

### InstrumentationScope

OpenTelemetryの`InstrumentationScope`のフィールドは、以下のマッピングを使って、Span・Metric Data Point・LogRecordに関連付けられたキーと値の組としてMUST報告されるものとします。

<!-- semconv otel.scope -->
| Attribute | Type | Description | Examples | Requirement Level |
| --- | --- | --- | --- | --- |
| `otel.scope.name` | string | Instrumentation Scopeの名前（OTLPにおける`InstrumentationScope.Name`）。 | `io.opentelemetry.contrib.mongodb` | Recommended |
| `otel.scope.version` | string | Instrumentation Scopeのバージョン（OTLPにおける`InstrumentationScope.Version`）。 | `1.0.0` | Recommended |
<!-- endsemconv -->

以下の非推奨のエイリアスも、後方互換性のため、まったく同じ値でMUST報告されるものとします。

<!-- semconv otel.library -->
| Attribute | Type | Description | Examples | Requirement Level |
| --- | --- | --- | --- | --- |
| `otel.library.name` | string | 非推奨。`otel.scope.name`属性を使用してください。 | `io.opentelemetry.contrib.mongodb` | Recommended |
| `otel.library.version` | string | 非推奨。`otel.scope.version`属性を使用してください。 | `1.0.0` | Recommended |
<!-- endsemconv -->

### Span Status

Spanの`Status`は、`Status`が`UNSET`である場合を除き、Spanに関連付けられたキーと値の組としてMUST報告されるものとします。`UNSET`の場合はMUST NOT報告されるものとします。

以下の表は、OpenTelemetryの`Status`のSpanのキーと値の組へのマッピングを定義します。

<!-- semconv otel_span -->
| Attribute | Type | Description | Examples | Requirement Level |
| --- | --- | --- | --- | --- |
| `otel.status_code` | string | コードの名前。"OK"または"ERROR"。ステータスコードが UNSET の場合は設定してはならない。 | `OK` | Recommended |
| `otel.status_description` | string | Statusに値がある場合のその説明、それ以外の場合は設定しない。 | `resource not found` | Recommended |

`otel.status_code`は以下のいずれかでなければなりません（MUST）。

| Value | Description |
| --- | --- |
| `OK` | アプリケーション開発者またはオペレーターによって、その操作が正常に完了したと検証済みであることを示す。 |
| `ERROR` | その操作にエラーが含まれることを示す。 |
<!-- endsemconv -->

### Dropped Attributes Count

OpenTelemetryのdropped attributes countは、対応するデータエンティティ（Span、Span Link、Span Event、Metricのデータポイント、LogRecordなど）に関連付けられたキーと値の組としてMUST報告されるものとします。キー名は`otel.dropped_attributes_count`でなければなりません（MUST）。

このキーと値の組は、値が0でない場合にのみ記録すべきです。

### Dropped Events Count

OpenTelemetryのSpanのdropped events countは、Spanに関連付けられたキーと値の組としてMUST報告されるものとします。キー名は`otel.dropped_events_count`でなければなりません（MUST）。

このキーと値の組は、値が0でない場合にのみ記録すべきです。

### Dropped Links Count

OpenTelemetryのSpanのdropped links countは、Spanに関連付けられたキーと値の組としてMUST報告されるものとします。キー名は`otel.dropped_links_count`でなければなりません（MUST）。

このキーと値の組は、値が0でない場合にのみ記録すべきです。

### Instrumentation Scope Attributes

Scopeに相当する概念を持たない形式へのエクスポーターは、それぞれの形式においてSpan・Metric・LogRecordに相当するもののうち最も適した場所に、これらの属性を記録すべきです（SHOULD）。

