用語集

この記事は英語の原文を日本語に翻訳したものです。原文: https://opentelemetry.io/docs/specs/otel/glossary/

翻訳元: open-telemetry/opentelemetry-specification v1.60.0(コミット 29ae8c7

このドキュメントは、この仕様書全体で使われるいくつかの用語を定義します。

その他の基本的な用語は概要ドキュメントに記載されています。

ユーザーの役割

Application Owner

アプリケーションやサービスの保守者で、OpenTelemetry SDKの設定とライフサイクルの管理を担う人物。

Library Author

多くのアプリケーションから依存され、OpenTelemetryの計装の対象となる共有ライブラリの保守者。

Instrumentation Author

OpenTelemetry APIに対して書かれたOpenTelemetryの計装の保守者。これは、アプリケーションコード内、共有ライブラリ内、あるいはInstrumentation Library内に書かれた計装を指すことがあります。

Plugin Author

OpenTelemetry SDKのプラグインインターフェースに対して書かれた、OpenTelemetry SDKプラグインの保守者。

共通

Signals

OpenTelemetryはシグナル、つまりテレメトリーのカテゴリを軸に構成されています。メトリクス、ログ、トレース、プロファイル、バゲージはシグナルの例です。各シグナルは、まとまりのある独立した機能の集合を表します。各シグナルは、それぞれ現在の安定性レベルを定義する個別のライフサイクルに従います。

Packages

この仕様書において、パッケージという用語は、他のパッケージとは独立してプログラムにインポートできる、単一の依存関係を表すコードの集合を表します。この概念は、一部の言語では「モジュール」といった異なる用語に対応することがあります。一部の言語では、「パッケージ」という用語が異なる概念を指すことに注意してください。

ABI Compatibility

ABI(application binary interface)とは、マシンコードレベルでソフトウェアコンポーネント間のやり取りを定義するインターフェースです。例えばアプリケーションの実行ファイルと、コンパイルされた共有オブジェクトライブラリのバイナリとの間のインターフェースです。ABI互換性とは、対象の実行ファイルを再コンパイルする必要なく、ライブラリの新しくコンパイルされたバージョンをそこに正しくリンクできることを意味します。

ABI互換性は、一部の言語、特にマシンコードの形式を提供する言語では重要です。他の言語では、ABI互換性は関連する要件ではない場合があります。

In-band and Out-of-band Data

In telecommunications, in-band signaling is the sending of control information within the same band or channel used for data such as voice or video. This is in contrast to out-of-band signaling which is sent over a different channel, or even over a separate network (Wikipedia).

(電気通信において、インバンド信号とは、音声や映像などのデータに使われる同じ帯域またはチャネル内で制御情報を送ることを指す。これに対し、アウトオブバンド信号は異なるチャネル、あるいは別のネットワークを介して送られる。)

OpenTelemetryにおいて、インバンドデータとは、分散システムの構成要素間で業務メッセージの一部として渡されるデータを指します。例えば、トレースやバゲージがHTTPリクエストにHTTPヘッダーの形で含まれる場合です。このようなデータは通常テレメトリー自体を含まず、様々なコンポーネントによって生成されたテレメトリーを関連付けたり結合したりするために使われます。テレメトリー自体はアウトオブバンドデータと呼ばれます。それはアプリケーションから専用のメッセージを介して、通常はビジネスロジックのクリティカルパスからではなく、バックグラウンドのルーチンによって非同期に送信されます。テレメトリーバックエンドへエクスポートされるメトリクス、ログ、トレースは、アウトオブバンドデータの例です。

Manual Instrumentation

エンドユーザーのコードや共有フレームワーク(MongoDB、Redisなど)からテレメトリーを収集するために、Tracing APIMetrics APIなどのOpenTelemetry APIに対してコードを書くこと。

Automatic Instrumentation

エンドユーザーがアプリケーションのソースコードを変更する必要のないテレメトリー収集の方法を指します。方法はプログラミング言語によって異なり、例としてはコード操作(コンパイル時または実行時)、モンキーパッチ、eBPFプログラムの実行があります。

同義語: Auto-instrumentation

Natively Instrumented

ライブラリやアプリケーションが、標準の計装を提供するためにOpenTelemetry APIを直接使用していることを表します。この場合、instrumented library(計装対象ライブラリ)とinstrumentation library(計装ライブラリ)は同一のライブラリです。

あるライブラリやアプリケーションを計装するために別のinstrumentation libraryやプラグインが必要な場合、そのinstrumented libraryやアプリケーションは、そのinstrumentation libraryやプラグインが同じ作者によって提供されていたり、対象のソフトウェアのエコシステムに適合するプラグインであったりしても、natively instrumentedと呼んではなりません。

Telemetry SDK

OpenTelemetry APIを実装するライブラリを表します。

ライブラリガイドラインおよびライブラリのリソースセマンティック規約を参照してください。

Constructors

コンストラクタとは、Application OwnerがOpenTelemetry SDKとContribパッケージを初期化・設定するために使う公開コードです。コンストラクタの例には、設定オブジェクト、環境変数、ビルダーがあります。

SDK Plugins

プラグインとは、OpenTelemetry SDKを拡張するライブラリです。プラグインインターフェースの例には、SpanProcessorExporterSamplerインターフェースがあります。

Exporter Library

エクスポーターとは、Exporterインターフェースを実装し、コンシューマーにテレメトリーを送出するSDKプラグインです。

Instrumented Library

テレメトリーシグナル(トレース、メトリクス、ログ)が収集される対象のライブラリを表します。

OpenTelemetry APIへの呼び出しは、Instrumented Library自身によって行われることもあれば、別のInstrumentation Libraryによって行われることもあります。

例: org.mongodb.client

Instrumentation Library

指定したInstrumented Libraryに対して計装を提供するライブラリを表します。組み込みのOpenTelemetry計装を持つ場合、Instrumented LibraryInstrumentation Libraryは同一のライブラリになることがあります。

より詳細な定義と命名のガイドラインについては概要を参照してください。

例: io.opentelemetry.contrib.mongodb

同義語: Instrumenting Library

Tracer Name / Meter Name / Logger Name

これは、新しいTracerMeterを作成するときに指定されるnameと(任意で)versionの引数を指します(Obtaining a TracerObtaining a MeterObtaining a Loggerを参照)。name/versionの組は、Instrumentation Scope、例えばInstrumentation Libraryや、その他テレメトリーが発行されるスコープにおけるアプリケーションの単位を識別します。

Execution Unit

マルチタスクの様々な概念で使われる、逐次的なコード実行の最小単位を指す包括的な用語。例としてはスレッド、コルーチン、ファイバーがあります。

ログ

Log Record

イベントの記録。通常、レコードにはイベントが発生した時刻を示すタイムスタンプと、何が起きたのか、どこで起きたのかなどを記述するその他のデータが含まれます。

同義語: Log Entry

Log

Log Recordの集合を指すために使われることがあります。人によってはLogを単一のLog Recordを指すために使うこともあるため、曖昧になりがちであり、この用語は慎重に使うべきであり、曖昧さが生じうる文脈では追加の修飾語(例えばLog Record)を使うべきです。

Embedded Log

Spanオブジェクトの中の、Eventsのリストに埋め込まれたLog Record

Standalone Log

Spanに埋め込まれず、別の場所に記録されるLog Record

Log Attributes

Log Recordに含まれるキーと値のペア。

Structured Logs

Log Recordの様々な要素(タイムスタンプ、属性など)を区別できる、明確に定義された構造を持つ形式で記録されるログ。例えばSyslogプロトコルRFC 5424)はstructured-data形式を定義しています。

Flat File Logs

テキストファイルに、多くの場合1レコードにつき1行の形式で記録されるログ(複数行にわたるレコードも可能です)。より構造化された形式(例えばJSONファイル)でテキストファイルに書かれたログをFlat File Logsとみなすかどうかについて、業界内で共通の合意はありません。この区別が重要な場面では、具体的に明示することが推奨されます。

Log Appender / Bridge

ログアペンダーまたはブリッジとは、Log APIを使って既存のロギングライブラリのログをOpenTelemetryへ橋渡しするコンポーネントです。「log bridge」と「log appender」という用語は同義に使われており、これらのコンポーネントはデータをOpenTelemetryへ橋渡しするものですが、ロギングの領域ではしばしばアペンダーと呼ばれることを反映しています。

プロファイル

プロファイルはOpenTelemetryのシグナルを表します。

Profile

プロファイルシグナルの文脈において、プロファイルはOpenTelemetryのInstrumentation Scopeに関する1つ以上のサンプル(関連するメタデータを伴うスタックトレース)を保持します。

Profiling

プロファイリングとは、プロファイルシグナルとして報告されるデータを収集するプロセスを表します。