Skip to main content

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

  1. 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.model to llm.provider, llm.model_name
  • Input/Output: Maps input, output, transcript to structured Future AGI format
  • Token Usage: Maps gen_ai.usage.* to llm.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 operations
  • TOOL: For tool calls and results
  • AGENT: For setup and configuration spans
  • CHAIN: 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.HTTP or Transport.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

  1. No exporters found to replace

    • Ensure you've called register() before installing attribute mapping
    • Check that the transport type matches your tracer provider configuration
  2. Import errors for gRPC

    • Install gRPC dependencies: pip install "fi-instrumentation[grpc]"
  3. Data not being sent to FutureAGI

    • Ensure that your you have set the FI_API_KEY and FI_SECRET_KEY environment variables
    • Ensure that the set_global_tracer_provider in the register function is set to True

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

traceai_pipecat-0.1.0.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

traceai_pipecat-0.1.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file traceai_pipecat-0.1.0.tar.gz.

File metadata

  • Download URL: traceai_pipecat-0.1.0.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.0 CPython/3.13.0 Darwin/24.1.0

File hashes

Hashes for traceai_pipecat-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ae1196811bfe3bb4abb4c34a5a87aa1b76ae1f846f21e00b64814c80e2a1236e
MD5 4d0164b51254ee8192f0918116beeaae
BLAKE2b-256 8fdf72a3bb2baf986a297ea3dce79574ec3c5b14242c5298e882ceb6111e54df

See more details on using hashes here.

File details

Details for the file traceai_pipecat-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: traceai_pipecat-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.0 CPython/3.13.0 Darwin/24.1.0

File hashes

Hashes for traceai_pipecat-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7c06bec61b5ce33f410df0c7796001ea64b48b45968d890ade3a233fc63f2115
MD5 23ec8e52fa27271f67b0152181d68153
BLAKE2b-256 46144d691497dab9f7564ecf4e4d5b68188fd325be58c92c28272a7e2ccb50b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page