Add support for OpenTelemetry tracing (#1729)
* Also added TurnTrackingObserver, TurnTraceObserver, foundational 29, open-telemetry-example
This commit is contained in:
39
CHANGELOG.md
39
CHANGELOG.md
@@ -16,6 +16,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
`CancelFrame` are pushed from the beginning of the pipeline and finally
|
||||
`FrameProcessor.cleanup()` is called.
|
||||
|
||||
- Added support for OpenTelemetry tracing in Pipecat. This initial
|
||||
implementation includes:
|
||||
|
||||
- A `setup_tracing` method where you can specify your OpenTelemetry exporter
|
||||
- Service decorators for STT (`@traced_stt`), LLM (`@traced_llm`), and TTS
|
||||
(`@traced_tts`) which trace the execution and collect properties and
|
||||
metrics (TTFB, token usage, character counts, etc.)
|
||||
- Class decorators that provide execution tracking; these are generic and can
|
||||
be used for service tracking as needed
|
||||
- Spans that help track traces on a per conversations and turn basis:
|
||||
|
||||
```
|
||||
conversation-uuid
|
||||
├── turn-1
|
||||
│ ├── stt_deepgramsttservice
|
||||
│ ├── llm_openaillmservice
|
||||
│ └── tts_cartesiattsservice
|
||||
...
|
||||
└── turn-n
|
||||
└── ...
|
||||
```
|
||||
|
||||
By default, Pipecat has implemented service decorators to trace execution of
|
||||
STT, LLM, and TTS services. You can enable tracing by setting `enable_tracing`
|
||||
to `True` in the PipelineTask.
|
||||
|
||||
- Added `TurnTrackingObserver`, which tracks the start and end of a user/bot
|
||||
turn pair and emits events `on_turn_started` and `on_turn_stopped`
|
||||
corresponding to the start and end of a turn, respectively.
|
||||
|
||||
- Allow passing observers to `run_test()` while running unit tests.
|
||||
|
||||
### Changed
|
||||
@@ -23,6 +53,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- `GoogleLLMService` has been updated to use `google-genai` instead of the
|
||||
deprecated `google-generativeai`.
|
||||
|
||||
### Other
|
||||
|
||||
- Added an `open-telemetry-tracing` example, showing how to setup tracing. The
|
||||
example also includes Jaeger as an open source OpenTelemetry client to review
|
||||
traces from the example runs.
|
||||
|
||||
- Added foundational example `29-turn-tracking-observer.py` to show how to use
|
||||
the `TurnTrackingObserver.
|
||||
|
||||
## [0.0.67] - 2025-05-07
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user