はじめに
七尾百合子さん、お誕生日 348日目 おめでとうございます! nikkieです。
福岡Rubyist会議の登壇準備1で知ったことのアウトプットです。
目次
- はじめに
- 目次
- Anthropic Ruby API library
- 私の期待値:Python の google-genai SDK と同じかな?
- opentelemetry-instrumentation-anthropic のコードを追加
- opentelemetry-instrumentation-net_http も追加する
- 終わりに
Anthropic Ruby API library
Ruby の OpenTelemetry の計装のライブラリ群を見ていて、「anthropic」の文字に気づきました。
https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/anthropic
そこから(OpenAI や Gemini は公式の Ruby SDK がなさそうですが)Claude にはあるということを知りました。
Web 検索の例も動かせました2
https://github.com/anthropics/anthropic-sdk-ruby/blob/v1.23.0/examples/web_search.rb
私の期待値:Python の google-genai SDK と同じかな?
Gemini の SDK google-genai には opentelemetry-instrumentation-google-genai があります。
- https://pypi.org/project/google-genai/
- https://pypi.org/project/opentelemetry-instrumentation-google-genai/
google-genai を使ったコードの前に opentelemetry-instrumentation-google-genai を呼び出すことで、テレメトリを計装できます。
Gemini API 呼び出しのリクエストボディを覗くこともできます。
anthropic-sdk-ruby と opentelemetry-instrumentation-anthropic も同じ関係なのかなと当初思いました。
opentelemetry-instrumentation-anthropic のコードを追加
README を元に以下のコードを追加します。
ENV["OTEL_TRACES_EXPORTER"] = "console" OpenTelemetry::SDK.configure do |c| c.use "OpenTelemetry::Instrumentation::Anthropic" end
ところがこの状態では
I, [2026-02-28T22:41:16.374068 #6341] INFO -- : Instrumentation: OpenTelemetry::Instrumentation::Anthropic was successfully installed with the following options {}
のみの出力で、テレメトリは console に出力されません。
README のとおりにやっているのに、なぜなのでしょう?
opentelemetry-instrumentation-net_http も追加する
gpt-5.3-codex medium でソースコードを読ませました。
README.md のとおりにやっても計装されないように思われる。何を間違えたか原因調査して
1. Anthropic 計装は Anthropic 呼び出しのスパンを自分では作りません
- 実装は PooledNetRequester に prepend して、Fiber間で OpenTelemetry::Context を引き継ぐだけです。
- 参照: instrumentation.rb:23, pooled_net_requester.rb:16
2. そのため、表示されるのが installed ログだけでも不思議ではありません
- 実際のテストも HTTP POST スパン(= net/http 側)を前提にしています。
- 参照: test_helper.rb:13, pooled_net_requester_test.rb:41
計装が見える実装に至りました。
コンソール出力のうちテレメトリ部分です
Claude の Messages API の呼び出しが記録されています。
ですが、リクエストボディまでは見えません(見誤りました)
終わりに
Ruby の Claude API クライアントとその計装ライブラリを見つけ、計装を試しました。
2026年2月時点では、opentelemetry-instrumentation-net_http を追加して、テレメトリが見えます。
しかしリクエストボディまでは見えません。
Python の google-genai とその計装ライブラリの関係を予想していましたが、現状はだいぶ異なりました。
ソースコードの全容はこちらです。
ruby 4.0.1、bundle 4.0.3 で動かしました