チャットボットサービス
このサービスは、デモの AI アシスタントのチャットインターフェイスを提供します。
Gradio Web UI を配信し、ユーザーのメッセージを HTTP 経由でエージェントサービスに転送し、応答をレンダリングします。
フロントエンドプロキシの /chatbot を通じて公開されています。
計装ライブラリ
このサービスは opentelemetry-instrument ラッパーを通じて起動されません。
Dockerfile はスクリプトを直接実行し、計装はコード内でセットアップされます。
CMD ["python", "run.py"]
エージェントサービスや MCP サービスとは異なり、このサービスは Traceloop SDK ではなく OpenTelemetry SDK を直接使用します。 2つの HTTP クライアント計装ライブラリが有効化されています。
RequestsInstrumentor().instrument()
HTTPXClientInstrumentor().instrument()
エージェントへの呼び出しは requests で行われるため、opentelemetry-instrumentation-requests がそのクライアントスパンを生成し、送信リクエストにトレースコンテキストを注入します。
これにより、チャットインターフェイスがエージェントに、さらにエージェントが行う LLM やツール呼び出しに接続されます。
Gradio サーバー自体は計装されていないため、ブラウザからの受信リクエストはサーバースパンを生成しません。 このサービスのトレースは、エージェントへの送信呼び出しから始まります。
トレース
トレースの初期化
トレースは _configure_tracing で明示的に設定されており、run.py がインポート時に呼び出します。
このコードはトレーサープロバイダーを作成し、OTLP エクスポーターを備えたバッチスパンプロセッサーを追加し、計装ライブラリが使用できるようにプロバイダーをグローバルに登録します。
def _configure_tracing() -> None:
provider = TracerProvider()
provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))
trace.set_tracer_provider(provider)
RequestsInstrumentor().instrument()
HTTPXClientInstrumentor().instrument()
エクスポーターは opentelemetry.exporter.otlp.proto.http.trace_exporter からインポートされるため、このサービスは OTLP/HTTP 経由でエクスポートします。
Docker Compose はこのサービスに対して OTEL_EXPORTER_OTLP_ENDPOINT を OpenTelemetry Collector の OTLP/HTTP ポートに設定していますが、他のほとんどのデモサービスは gRPC 経由でエクスポートします。
エクスポートエンドポイント、リソース属性、サービス名はすべて標準の OpenTelemetry 環境変数から取得されます。
新しいスパンの作成
このサービスは独自のスパンを作成しません。
トレーサーを取得せず、start_as_current_span を呼び出さず、set_attribute を使用してスパンを拡充することもありません。
すべてのスパンは requests および HTTPX 計装ライブラリから生成されます。
メトリクス
メータープロバイダーは設定されていません。
このサービスはトレースエクスポーターのみをインポートし、metrics.set_meter_provider を呼び出さないため、requests および HTTPX 計装ライブラリが出力可能なメトリクスは送信先がなく、エクスポートされません。
メトリクスカバレッジマトリクスを参照してください。
ログ
このサービスは Python 標準ライブラリのロガーのみを設定しています。
logging.basicConfig(level=logging.INFO)
エージェントへのリクエストとエラーは、chat_with_agent 内でこのロガーを通じて記録されます。
logging.info(f"Sending request {payload} to Agent")
LoggerProvider や LoggingHandler が設定されていないため、これらのレコードは OTLP 経由でエクスポートされるのではなく、標準出力に出力されコンテナランタイムによって収集されます。
そのため、トレースとの相関はありません。
ログカバレッジマトリクスを参照してください。
環境変数の完全なリストとトラブルシューティング手順については、サービスの README を参照してください。
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!