AI
OpenTelemetryとは?分散トレーシングの標準を初心者向けに解説【2026年版】

OpenTelemetryとは?分散トレーシングの標準を初心者向けに解説【2026年版】

オープンソースラボ編集部2026年6月13日

「マイクロサービスのどこで遅延が発生しているか分からない」——この問題を解決するのが**OpenTelemetry(OTel)**です。本記事でOTelの基礎から実装まで初心者向けに解説します。

OpenTelemetryとは

OpenTelemetryはメトリクス・ログ・トレース(可観測性の三本柱)を収集・送信するためのオープンスタンダードです。Cloud Native Computing Foundation(CNCF)管理プロジェクトで、2026年現在ほぼすべての主要クラウド・APMベンダーが対応しています。

三本柱の違い

シグナル内容
トレースリクエストの処理経路を可視化APIがDB・キャッシュを叩く順序・時間
メトリクス時系列の数値データレイテンシp99、エラー率、スループット
ログタイムスタンプ付きテキストイベントエラースタックトレース、アクセスログ

OTelのアーキテクチャ

[アプリ]
  └── OTel SDK(計装)
        └── OTel Collector(集約・変換)
              ├── Prometheus(メトリクス保存)
              ├── Grafana Tempo(トレース保存)
              └── Grafana Loki(ログ保存)
                    └── [Grafana](/tools/grafana)(ダッシュボード・クエリ)

Pythonアプリへの計装(自動・手動)

自動計装(コード変更ゼロ)

pip install opentelemetry-distro opentelemetry-exporter-otlp
opentelemetry-bootstrap -a install

# 実行時に計装を注入
opentelemetry-instrument \
  --traces_exporter otlp \
  --exporter_otlp_endpoint localhost:4317 \
  python app.py

手動計装(詳細なスパン追加)

from opentelemetry import trace

tracer = trace.get_tracer(__name__)

def process_payment(order_id: str):
    with tracer.start_as_current_span("process_payment") as span:
        span.set_attribute("order.id", order_id)
        span.set_attribute("payment.method", "credit_card")
        # 決済処理
        result = charge_card()
        span.set_attribute("payment.success", result.ok)
        return result

Prometheusでメトリクスを収集し、Grafanaで可視化するフルスタック構成が標準です。DevOps関連OSSはDevOpsカテゴリから探せます。

OTel Collector の設定例

# otel-collector-config.yaml
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

exporters:
  prometheus:
    endpoint: "0.0.0.0:8889"
  logging:
    loglevel: debug

service:
  pipelines:
    traces:
      receivers: [otlp]
      exporters: [logging]
    metrics:
      receivers: [otlp]
      exporters: [prometheus]

詳細はOpenTelemetry公式ドキュメントを参照。

まとめ

OpenTelemetryはベンダーロックインなしの可観測性標準です。SDKを一度導入すれば、バックエンドをDatadog→Grafana等に切り替えても計装コードを変えなくて済みます。まず自動計装から試してみてください。

よくある質問(FAQ)

Q. OpenTracingやOpenCensusとの違いは?

OpenTelemetryはOpenTracingとOpenCensusを統合・後継するプロジェクトです。2026年現在、OpenTracing・OpenCensusは非推奨でOTelへの移行が推奨されています。

Q. DatadogやNew RelicでもOTelは使えますか?

はい。DatadogもNew RelicもOTLPプロトコルを受け入れています。OTel SDKでの計装→DatadogにOTLP送信、という構成で使えます。

Q. パフォーマンスへの影響はありますか?

サンプリングを適切に設定すれば本番オーバーヘッドは1%未満です。全トレースを100%記録すると負荷増になるため、テールサンプリングで重要トレースのみ保存する運用が一般的です。

関連リンク・公式情報

ここで紹介したツールの一次情報(公式サイト・ソースコード)と、オープンソースラボ内の関連ページをまとめました。導入検討の際にご活用ください。

公式サイト・ソースコード(外部リンク)

オープンソースラボの関連ページ(内部リンク)

この記事で紹介したOSS

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。