以下の内容はhttps://uga-box.hatenablog.com/entry/2025/03/26/000000より取得しました。


【システム開発】OpenTelemetryとは

Sentryを見ていていて、OTelId というのがあった

調べたところ、これが OpenTelemetry だとわかったのだが、OpenTelemetry に詳しくなかったので調べた

opentelemetry.io

OpenTelemetry は Cloud Native Computing Foundation(CNCF)がホストする、可観測性のためのオープンソースフレームワーク

主要な特徴

  • ベンダー中立なAPISDKの提供
  • 分散トレーシング、メトリクス、ログの統合的な収集
  • 多言語対応(Java, Python, Go, JavaScript など)
  • 既存の監視ツールとの互換性

主要なコンポーネント

1. トレーシング(Tracing)

分散トレーシング マイクロサービス間のリクエストの流れを追跡する機能

// トレーシングの基本的な実装例
const tracer = opentelemetry.trace.getTracer('my-service');
const span = tracer.startSpan('processRequest');
try {
  // ビジネスロジック
  await processBusinessLogic();
} finally {
  span.end();
}

2. メトリクス(Metrics) システムのパフォーマンスや状態の数値化と収集

// メトリクスの収集例
const meter = opentelemetry.metrics.getMeter('my-service');
const counter = meter.createCounter('requests_total', {
  description: 'Total number of requests'
});
counter.add(1);

3. ログ(Logs) - アプリケーションの動作状況やエラー情報の記録 - 既存のログシステムとの統合も可能

SentryがOpenTelemetry(OTel)をサポートする理由

  • OpenTelemetryでの、トレース、メトリクス、ログといった可観測性データの、Sentryへのデータ送信を容易にする。これにより、開発者は複雑な設定や再実装を避けつつ、Sentryのパフォーマンス監視機能を利用できる
  • SentryがOpenTelemetryをサポートすることで、開発者は特定のツールに依存せず、柔軟な監視体制を構築できる
  • SentryはOpenTelemetryのスパンデータを取り込み、独自のトランザクションやスパンとして処理。これにより、分散システム全体のトレースとエラー情報を一元的に可視化し、問題の根本原因を迅速に特定できる
  • Sentryは、JavaPython、Node.js、Ruby、Go、.NETなど、主要なプログラミング言語向けにOpenTelemetryとの統合を提供。これにより、開発者は数行のコード追加でSentryとOpenTelemetryの連携を実現できる
  • Sentryは、OpenTelemetry Protocol(OTLP)によるデータ受信のサポートを進めており、OpenTelemetry Collectorからの直接データ送信が可能になる予定。これにより、より柔軟でスケーラブルな監視体制の構築が期待される



以上の内容はhttps://uga-box.hatenablog.com/entry/2025/03/26/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14