Carpe Diem

備忘録

OpenTelemetry

OpenTelemetry Collectorでデータを一元的に管理する

概要 OpenTelemetryでは直接ExportせずにCollectorと呼ばれるProxyを挟むことで以下のことが可能になります。 アプリケーションコードでExport先を意識しなくて済み、ベンダーロックインを避けることができる データを一元的に管理できる アプリケーションや…

OpenTelemetryでのSampling

概要 トレーシングで重要なのがSamplingです。 単純に全データを計測するとコストが増えたりパフォーマンスに影響が出たりします。 OpenTelemetryではSamplingに対する仕様が決まっているので、それに基づいて具体的な実装を紹介します。 OpenTelemetry Spec…

Bridgeを使ってOpenCensusのSpanをOpenTelemetryに取り込む

概要 OpenTelemetryはOpenCensusやOpenTracingをまとめた形で生まれたので、既にOpenCensusやOpenTracingの形で実装されたライブラリは移行するのが大変です。 例えばGCPの各SDKは基本的にOpenCensusで実装されています。 そのようなライブラリを使用する際…

OpenTelemetryで分散トレーシング

概要 マイクロサービス構成など分散システムにおいて分散トレーシングを行いたい場合は、サービス間でのContextの伝播が必要になります。 OpenTelemetryでサービス間での伝播をしたい場合の実装方法を説明します。 環境 Go v1.20.2 go.opentelemetry.io/otel…

OpenTelemetryのTraceをGoで試してみる

概要 OpenTelemetryはObservabilityの三本柱であるLogs、Metrics、Tracesをベンダーに依存せず実装するための仕様&実装です。 今回はそのうちのTracesをGoで試してみます。 環境 Go v1.20.2 go.opentelemetry.io/otel/trace v1.14.0 前提知識 登場人物 Open…