> ## Documentation Index
> Fetch the complete documentation index at: https://docs.responsibleailabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenTelemetry

> RAILスコアをOpenTelemetryスパンとしてエクスポートし、完全な可観測性を実現します。

## インストール

```bash theme={null}
pip install "rail-score-sdk[telemetry]"
```

## セットアップ

```python theme={null}
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
from rail_score_sdk import RailScoreClient
from rail_score_sdk.telemetry import RAILTelemetry

# OTELエクスポータを設定
provider = TracerProvider()
exporter = OTLPSpanExporter(endpoint="http://localhost:4317")
provider.add_span_processor(BatchSpanProcessor(exporter))
trace.set_tracer_provider(provider)

# RAILテレメトリを有効にする
rail = RailScoreClient(api_key="YOUR_RAIL_API_KEY")
RAILTelemetry.instrument(rail)

# すべてのeval()呼び出しが自動的にスパンを発行します
result = rail.eval(content="Your text here", mode="basic")
```

## スパン属性

すべての `rail.eval()` 呼び出しは、次の属性を持つスパンを発行します：

| 属性                           | タイプ      | 説明                 |
| ---------------------------- | -------- | ------------------ |
| `rail.score`                 | `float`  | 全体のRAILスコア         |
| `rail.confidence`            | `float`  | スコアの信頼度            |
| `rail.mode`                  | `string` | `basic` または `deep` |
| `rail.credits_consumed`      | `float`  | 消費されたクレジット         |
| `rail.from_cache`            | `bool`   | 結果がキャッシュされたかどうか    |
| `rail.dim.{name}.score`      | `float`  | 次元ごとのスコア           |
| `rail.dim.{name}.confidence` | `float`  | 次元ごとの信頼度           |

## トレースの表示

RAILスパンは、Jaeger、Tempo、Honeycomb、Datadog、New Relic、またはLangfuseなどのOTEL互換バックエンドと統合されます。

```bash theme={null}
# 開発用にローカルJaegerインスタンスを起動
docker run -p 16686:16686 -p 4317:4317 jaegertracing/all-in-one
```

`http://localhost:16686`を開いてトレースを表示します。
