OpenTelemetry instrumentation for Pipecat
Project description
Pipecat OpenTelemetry Integration
Overview
This integration provides support for using OpenTelemetry with Pipecat applications. It enables tracing and monitoring of voice applications built with Pipecat, with automatic attribute mapping to Future AGI conventions.
Installation
- Install traceAI Pipecat
pip install traceAI-pipecat
Set Environment Variables
Set up your environment variables to authenticate with FutureAGI and Pipecat.
import os
os.environ["FI_API_KEY"] = FI_API_KEY
os.environ["FI_SECRET_KEY"] = FI_SECRET_KEY
Quickstart
This method automatically updates your existing span exporters to include Pipecat attribute mapping.
Register Tracer Provider
Set up the trace provider to establish the observability pipeline:
from fi_instrumentation.otel import register, Transport, ProjectType
trace_provider = register(
project_type=ProjectType.OBSERVE,
project_name="Pipecat Voice App",
set_global_tracer_provider=True,
)
Install Attribute Mapping
Install attribute mapping to convert Pipecat attributes to Future AGI conventions:
from traceai_pipecat import enable_http_attribute_mapping
# For HTTP transport
success = enable_http_attribute_mapping()
# For gRPC transport
from traceai_pipecat import enable_grpc_attribute_mapping
success = enable_grpc_attribute_mapping()
# Or specify transport explicitly via enum
from traceai_pipecat import enable_fi_attribute_mapping
from fi_instrumentation.otel import Transport
success = enable_fi_attribute_mapping(transport=Transport.HTTP) # or Transport.GRPC
Features
Automatic Attribute Mapping
The integration automatically maps Pipecat-specific attributes to Future AGI conventions:
- LLM Operations: Maps
gen_ai.system,gen_ai.request.modeltollm.provider,llm.model_name - Input/Output: Maps
input,output,transcriptto structured Future AGI format - Token Usage: Maps
gen_ai.usage.*tollm.token_count.* - Tools: Maps tool-related attributes to Future AGI tool conventions
- Session Data: Maps conversation and session information
- Metadata: Consolidates miscellaneous attributes into structured metadata
Transport Support
- HTTP: Full support for HTTP transport with automatic endpoint detection
- gRPC: Support for gRPC transport (requires
fi-instrumentation[grpc])
Span Kind Detection
Automatically determines the appropriate fi.span.kind based on span attributes:
LLM: For LLM, STT, and TTS operationsTOOL: For tool calls and resultsAGENT: For setup and configuration spansCHAIN: For turn and conversation spans
Examples
Complete HTTP Integration Example
from fi_instrumentation.otel import register, Transport, ProjectType
from traceai_pipecat import enable_http_attribute_mapping
# Initialize tracer provider
trace_provider = register(
project_type=ProjectType.OBSERVE,
project_name="My Pipecat Voice App",
transport=Transport.HTTP,
set_global_tracer_provider=True,
)
# Install attribute mapping
try:
enable_http_attribute_mapping()
print("✅ Successfully installed HTTP attribute mapping")
except Exception as e:
print(f"❌ Error: {e}")
# Your Pipecat application code here...
Complete gRPC Integration Example
from fi_instrumentation.otel import register, Transport, ProjectType
from traceai_pipecat import enable_grpc_attribute_mapping
# Initialize tracer provider
trace_provider = register(
project_type=ProjectType.OBSERVE,
project_name="My Pipecat Voice App",
transport=Transport.GRPC,
set_global_tracer_provider=True,
)
# Install attribute mapping
try:
enable_grpc_attribute_mapping()
print("✅ Successfully installed gRPC attribute mapping")
except Exception as e:
print(f"❌ Error: {e}")
# Your Pipecat application code here...
API Reference
Integration Functions
enable_fi_attribute_mapping(transport: Transport = Transport.HTTP) -> bool
Install attribute mapping by replacing existing span exporters.
Parameters:
transport: Transport protocol enum (Transport.HTTPorTransport.GRPC)
Returns:
bool: True if at least one exporter was replaced
enable_http_attribute_mapping() -> bool
Convenience function for HTTP transport.
enable_grpc_attribute_mapping() -> bool
Convenience function for gRPC transport.
Exporter Creation Functions
create_mapped_http_exporter(endpoint: Optional[str] = None, headers: Optional[dict] = None)
Create a new HTTP exporter with Pipecat attribute mapping.
create_mapped_grpc_exporter(endpoint: Optional[str] = None, headers: Optional[dict] = None)
Create a new gRPC exporter with Pipecat attribute mapping.
Exporter Classes
MappedHTTPSpanExporter
HTTP span exporter that maps Pipecat attributes to Future AGI conventions.
MappedGRPCSpanExporter
gRPC span exporter that maps Pipecat attributes to Future AGI conventions.
BaseMappedSpanExporter
Base class for mapped span exporters.
Troubleshooting
Common Issues
-
No exporters found to replace
- Ensure you've called
register()before installing attribute mapping - Check that the transport type matches your tracer provider configuration
- Ensure you've called
-
Import errors for gRPC
- Install gRPC dependencies:
pip install "fi-instrumentation[grpc]"
- Install gRPC dependencies:
-
Data not being sent to FutureAGI
- Ensure that your you have set the
FI_API_KEYandFI_SECRET_KEYenvironment variables - Ensure that the
set_global_tracer_providerin theregisterfunction is set toTrue
- Ensure that your you have set the
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file traceai_pipecat-0.1.1.tar.gz.
File metadata
- Download URL: traceai_pipecat-0.1.1.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f52b6a46aafbd17081ac816981de429a567144106b2cbd251a7de502908899a
|
|
| MD5 |
34204d6bac5334ac449c4c975abf1d9b
|
|
| BLAKE2b-256 |
f80f43abfc6e9fbbe04edb03712af0879197d6865ee9563bcc2d444c1635b4b2
|
File details
Details for the file traceai_pipecat-0.1.1-py3-none-any.whl.
File metadata
- Download URL: traceai_pipecat-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4e9d9f5f9cfa50ed25119be33d520973eda59496466238653e4423393f98e55
|
|
| MD5 |
b72505d3cd18f1e323c8666f01b444b2
|
|
| BLAKE2b-256 |
6a149ec89028368f15754ca8aac48ed01a0eaa87db2c570c2f2f3138b94eba68
|