Overview
PipecatInstrumentor is an auto-instrumentation library that converts Pipecat
traces to OpenInference, an
OpenTelemetry-compatible tracing format. It automatically wraps your
PipelineWorker to observe frame flow and create spans for LLM, TTS, and STT
services, which you can then view in
Arize Phoenix or Arize AX.
Source Repository
Source code, examples, and issues for the OpenInference Pipecat
instrumentation
PyPI Package
The
openinference-instrumentation-pipecat package on PyPIOpenInference
OpenInference specification and documentation
Arize Phoenix
Open-source LLM observability platform for viewing traces
Installation
This is a community-maintained package distributed separately frompipecat-ai:
Prerequisites
This instrumentation emits OpenTelemetry traces in the OpenInference format, so you need a backend to send them to. The repository’s quickstart uses Arize Phoenix (open source) or Arize AX:- Phoenix: Run Phoenix locally or use a hosted instance, then register a
tracer provider with
phoenix.otel.register(...). - Arize AX: Provide an
ARIZE_SPACE_IDandARIZE_API_KEYand register witharize.otel.register(...).
Usage
Set up a tracer provider and enable the instrumentor at the top of your application, before building your Pipecat pipeline:PipelineWorker,
and exchanges in the running application are logged to your project in Phoenix or
Arize AX.
The instrumentor wraps
PipelineWorker. The deprecated PipelineTask alias
is a thin subclass of PipelineWorker and is covered transparently. See the
source
repository
for the full example.Compatibility
The instrumentation tracks Pipecat versions as follows:openinference-instrumentation-pipecat | pipecat-ai | Python |
|---|---|---|
>=2.0 | >=1.3 | >=3.11 |
>=1.0, <2.0 | >=1.0, <1.3 | >=3.11 |
<=0.1.4 | <1.0 (e.g. 0.0.99) | >=3.10 |
PipelineTask in favor of PipelineWorker; use >=2.0
with pipecat-ai>=1.3. Check the source repository
for the latest tested versions and changelog.