🔭

Google Cloud Client Libraries for Go のデフォルト計装が OTel になった

2024/08/29に公開

Google Cloud Client Libraries for Go は、Go アプリから Google Cloud のさまざまなリソースを操作するためのクライアントライブラリを提供しています。また、クライアントライブラリは内部の挙動や性能を把握するための方法を備えています。
https://github.com/googleapis/google-cloud-go/blob/main/debug.md#logging-debugging-and-telemetry

一部のクライアントライブラリ[1]は分散トレースのための計装が施されており(experimental)、従来 OpenCensus での計装でしたが、2024/05 に OpenTelemetry でのトレース計装がデフォルトになりました[2]。以前までは OpenTelemetry で計装してるアプリとクライアントライブラリのトレースを接続するためには、以下のいずれかの対応が必要でした。

  • アプリ側で OpenCensus Bridge を使用する
  • クライアントライブラリ側で OpenTelemetry の使用を設定する(GOOGLE_API_GO_EXPERIMENTAL_TELEMETRY_PLATFORM_TRACING=opentelemetry

#10287 により OpenTelemetry 計装でデフォルトで繋がります。喜ばしいです。

OpenTelemetry でトレース計装しているアプリから cloud.google.com/go/datastore を使って Datastore に適当にデータを Put してみます。Cloud Trace ではアプリ側のスパンと、クライアントライブラリ側のスパンを確認することができます。

余談ですが、上図のスパンが実際にクライアントライブラリ側で生成されているコードは こちら です。トレースをすることで性能的な解析はもちろんですが、どういう流れで処理をしているかを大雑把に把握できるので、クライアントライブラリのソースコードを実際に読み解く必要があるときなどに便利です。

今回は Google Cloud Client Libraries for Go のデフォルト計装が OpenTelemetry になったのでメモブログ記事を書きました。

脚注
  1. リンク先に列挙されているライブラリ ↩︎

  2. https://github.com/googleapis/google-cloud-go/pull/10287 で対応がされました ↩︎

GitHubで編集を提案

Discussion