Feature · OpenTelemetry tracing

Observability

A bridge from Prism’s telemetry to GenAI-convention OpenTelemetry spans: a root span per generation, and child spans per step and per tool call.

Export over OTLP to Arize Phoenix, Jaeger, Tempo, Grafana or anything else that speaks OTLP.

  • PHP
  • TypeScript
  • Python

Capabilities

What it does

01

Spans that follow the conventions

Spans carry both the OpenTelemetry gen_ai.* attributes and the OpenInference attributes Phoenix uses to render LLM traces.

02

Metadata only, by default

Spans carry model and provider, timing, finish reason, token counts, cost, rate limits and tool names. Prompts, completions and tool arguments are exported only when you turn on content capture.

03

Zero setup in PHP

In PHP the bridge subscribes to the Laravel events Prism emits; there is nothing to call once Prism telemetry is enabled.

04

Your SDK, in TypeScript and Python

The subscribers do not import OpenTelemetry. They write through a small tracer interface you connect to your OpenTelemetry SDK, and have no dependencies of their own.

How it fits

Where it sits in the ecosystem

In PHP, the bridge subscribes to the Laravel events Prism emits. In TypeScript and Python, your application calls the subscriber at generation, step and tool boundaries, and spans are written through a tracer interface you connect to your OpenTelemetry SDK.

Install

Add it to your project

  1. 01

    particle-academy/prism-opentelemetry PHP

  2. 02

    @particle-academy/prism-opentelemetry TypeScript

  3. 03

    prism-ai-opentelemetry Python

The packages

On the registries

PHP · Packagist

particle-academy/prism-opentelemetry

TypeScript · npm

@particle-academy/prism-opentelemetry

Python · PyPI

prism-ai-opentelemetry