# コードベース

> コードベース計装のセットアップに不可欠なステップを学ぶ

---

## OpenTelemetry APIとSDKをインポートする {#import-the-opentelemetry-api-and-sdk}

まず、あなたのサービスコードに OpenTelemetry をインポートする必要があります。
もし、実行可能なバイナリによって消費されることを意図したライブラリやその他のコンポーネントを開発しているのであれば、APIにだけ依存することになるでしょう。
アーティファクトがスタンドアロンのプロセスやサービスであれば、APIとSDKに依存することになります。
OpenTelemetry APIとSDKの詳細については、[仕様](/docs/specs/otel/)を参照してください。

## OpenTelemetry API を設定する {#configure-the-opentelemetry-api}

トレースやメトリクスを作成するには、まずトレーサーやメーターのプロバイダーを作成する必要があります。
一般的に、SDKはこれらのオブジェクトに対して単一のデフォルトプロバイダーを提供することを推奨します。
次に、そのプロバイダーからトレーサーまたはメーターのインスタンスを取得し、名前とバージョンを与えます。
たとえばライブラリを書いているのであれば、ライブラリの名前（たとえば `com.example.myLibrary`）を付けるべきです。
また、ライブラリやサービスの現在のバージョンに対応するバージョン文字列（例：`semver:1.0.0`）を指定することを推奨します。

## OpenTelemetry SDK を設定する {#configure-the-opentelemetry-sdk}

サービスプロセスを構築している場合、テレメトリーデータを解析バックエンドにエクスポートするための適切なオプションをSDKに設定する必要もあります。
この設定は、設定ファイルまたはその他のメカニズムを通じてプログラムで処理することを推奨します。
また、場合によっては使いたくなるであろう、言語ごとのチューニングオプションもあります。

## テレメトリーデータの作成 {#create-telemetry-data}

APIとSDKを設定したら、プロバイダーから取得したトレーサーオブジェクトとメーターオブジェクトを通して、トレースとメトリクスイベントを自由に作成できるようになります。
依存関係のために計装ライブラリを利用しましょう。これらの詳細については、[レジストリ](/ecosystem/registry/) やあなたの言語のレポジトリをチェックしてください。

## データのエクスポート {#export-data}

テレメトリーデータを作成したら、それをどこかに送信したいでしょう。
OpenTelemetryは、プロセスから分析バックエンドにデータをエクスポートする2つの主要な方法をサポートしています。
プロセスから直接エクスポートするか、[OpenTelemetryコレクター](/docs/collector)を通してプロキシする方法です。

プロセス内からのエクスポートでは、1つ以上の _エクスポーター_ をインポートして依存する必要があります。
エクスポーターとは、OpenTelemetry のメモリ内のスパンやメトリクスオブジェクトを、JaegerやPrometheusのようなテレメトリー分析ツールに適したフォーマットに変換するライブラリです。
さらに、OpenTelemetry は `OTLP` として知られるワイヤプロトコルをサポートしていて、これはすべての OpenTelemetry SDK でサポートされています。
このプロトコルは、OpenTelemetryコレクターにデータを送るために使用できます。
OpenTelemetryコレクターはスタンドアローンのバイナリプロセスで、サービスインスタンスのプロキシやサイドカーとして実行したり、別のホストで実行したりできます。
コレクターは、このデータを転送し、好きな分析ツールにエクスポートするように設定できます。

JaegerやPrometheusのようなオープンソースツールに加えて、OpenTelemetryからのテレメトリーデータの取り込みをサポートする企業のリストが増えています。
詳細は、[ベンダー](/ecosystem/vendors/)のページを参照してください。
