OpenTelemetryトレーシングをClaudeと実装する
Claude Codeにトレーシング設計を相談する
Section titled “Claude Codeにトレーシング設計を相談する”分散システムの可観測性向上において、OpenTelemetry(OTel)の導入は非常に効果的です。しかし、スパンの設計やメトリクスの粒度判断は意外と難しいもの。Claude Codeを活用すれば、この設計フェーズから一緒に進められます。
まずはClaude Codeにこんなプロンプトを投げてみましょう。
私のNode.jsアプリにOpenTelemetryを導入したいです。エンドポイント /api/orders の処理で、DBアクセスと外部API呼び出しを個別のスパンとして計測する実装を提案してください。Claudeはスパンの親子関係や属性設計まで具体的に提案してくれます。設計意図を説明しながら出力してくれるため、チームへの共有資料としても使えます。
※エンドポイント: APIにアクセスするためのURL。例: `/api/users` や `/api/posts/123` など。※プロンプト: AIへの指示文。Claude Codeへの指示の質がそのまま出力の質に影響する。※API: Application Programming Interface の略。外部サービスとプログラム間でデータをやりとりするための接続口。
実装コードをClaudeに生成させる
Section titled “実装コードをClaudeに生成させる”設計が固まったら、実装コードの生成に進みましょう。Claude Codeは以下のような初期化コードをすぐに出力できます。
import { NodeSDK } from '@opentelemetry/sdk-node';import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';import { Resource } from '@opentelemetry/resources';import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
const sdk = new NodeSDK({ resource: new Resource({ [SemanticResourceAttributes.SERVICE_NAME]: 'order-service', }), traceExporter: new OTLPTraceExporter({ url: 'http://localhost:4318/v1/traces', }),});
sdk.start();さらに「DBクエリをスパンで囲む処理も書いて」と追加指示するだけで、スパンの開始・終了・エラーハンドリングまで含めたコードを連続して生成してくれます。コンテキストが維持されるため、会話を重ねるほど精度が上がります。
※コンテキスト: Claudeが一度に記憶・参照できる会話・コードの範囲。上限を超えると古い情報が失われる。
デバッグとメトリクス追加もClaude Codeで進める
Section titled “デバッグとメトリクス追加もClaude Codeで進める”トレースがCollectorに届かない、スパンが欠落するといったトラブルも、Claudeに相談できます。エラーログを貼り付けて「このエラーの原因と修正方法を教えて」と聞くだけで、設定ミスや依存バージョンの問題を特定してくれます。
メトリクス追加も同様です。以下のようにプロンプトを送ると、既存トレース実装に合わせたカウンターやヒストグラムのコードを生成してくれます。
先ほどのorderサービスに、注文処理時間を計測するOpenTelemetryのヒストグラムメトリクスを追加してください。エラー率もカウンターで記録したいです。OTelの導入は手順が多く敬遠されがちですが、Claude Codeを相棒にすれば設計・実装・デバッグまでを一気通貫で進められます。まずは小さなサービス一つへの導入から始めてみてください。