Ślady OpenTelemetry
Ślady OpenTelemetry
Eksportuj ślady OpenTelemetry do swojego stosu obserwowalności jako OTLP JSON.
ElevenLabs Agents może eksportować rozmowy jako ślady OpenTelemetry zakodowane jako OTLP JSON (resourceSpans). Przekaż je do Datadog, Grafana Tempo, Honeycomb lub dowolnego backendu obsługującego OTLP.
ElevenLabs nie wysyła śladów bezpośrednio do twojego kolektora OTLP. Otrzymujesz JSON w formacie OTLP z webhooka, API lub monitorującego WebSocketu i przekazujesz go do swojego backendu.
Przegląd
Eksportuj ślady z trzech źródeł. Wszystkie używają tego samego ID śladu dla każdej rozmowy i nazewnictwa atrybutów elevenlabs.*. Kształt spanów i czas różnią się między połączeniem po zakończeniu/GET (na podstawie transkrypcji) a monitoringiem (na podstawie zdarzeń).
Źródła eksportu
Wybór źródła
- Każde zakończone połączenie w twojej hurtowni danych: webhook po rozmowie
- Jednorazowy eksport lub naprawa: GET rozmowy z
format=opentelemetry - Panel nadzorcy na żywo lub alerty: monitorujący WebSocket
- Pełny harmonogram zdarzeń po fakcie: webhook po rozmowie lub GET rozmowy
- Zdarzenia narzędzi, MCP lub guardraili w chwili wystąpienia: monitorujący WebSocket
Użyj traceId lub elevenlabs.conversation_id, aby łączyć dane między źródłami. Połącz monitoring do działań na żywo, webhooki do trwałej analityki i GET do uzupełniania danych.
Dla każdego źródła potrzebujesz kolektora obsługującego OTLP lub dostawcy narzędzi obserwowalności. Webhooki po rozmowie wymagają endpointu webhooka workspace’u. API GET i monitorujący WebSocket mają własne zakresy kluczy API oraz konfigurację; szczegóły znajdziesz w sekcjach poniżej.
Webhook po rozmowie
Po zakończeniu rozmowy ElevenLabs wysyła żądanie POST, gdy skonfigurowany jest webhook po rozmowie, events zawiera transcript, a transcript_format ma wartość opentelemetry.
Webhook ma type równy post_call_transcription_otel (nie post_call_transcription, który zwraca transkrypcje JSON).
Payload webhooka
Włącz transkrypcje OpenTelemetry
Konfiguracja w panelu
Konfiguracja przez CLI
Konfiguracja przez API
Utwórz webhook workspace’u
W panelu ElevenAgents utwórz webhook workspace’u z adresem HTTPS i uwierzytelnianiem.
Podłącz webhook po rozmowie
Otwórz ustawienia Agents, przypisz webhook jako webhook po rozmowie, włącz zdarzenie Transcript i opcję OpenTelemetry transcript payloads.

Webhooki transkrypcji OpenTelemetry nie zawierają audio. Użyj post_call_audio, jeśli potrzebujesz
nagrań.
Zwróć 2xx, aby oznaczyć sukces. 4xx i 5xx są traktowane jako błędy.
Ponowne próby dotyczą webhooków transkrypcji (w tym OpenTelemetry) tylko wtedy, gdy opcja Enable retries jest włączona w webhooku workspace’u. Przejściowe błędy (5xx, 429, 408) są ponawiane do 5 razy; 4xx nie. Webhooki audio nigdy nie są ponawiane. Powtarzające się błędy mogą automatycznie wyłączyć webhook. Szczegóły i wyjątki HIPAA znajdziesz w Webhookach po rozmowie.
Dostarczanie
Struktura śladu
Każde dostarczenie to jeden kompletny ślad: span główny i elementy podrzędne.
Spany odpowiedzi agenta zawierają elevenlabs.reasoning_content, gdy dostarczenie zawiera podsumowanie rozumowania.
Czas pochodzi z time_in_call_secs transkrypcji i metadanych połączenia. Span główny ustawia elevenlabs.source = post_call_webhook oraz status ERROR, gdy połączenie nie zakończyło się normalnym rozłączeniem klienta.
GET rozmowy
Poproś o format OpenTelemetry w Get conversation, aby otrzymać ten sam obiekt otlp_traces co w webhooku OpenTelemetry po rozmowie oraz pełny model rozmowy.
Wymaga klucza API z CONVAI_READ. Przy format=json (domyślnie) otlp_traces jest pomijany.
Oczekiwane nazwy spanów to m.in. elevenlabs.conversation, elevenlabs.recv.user_transcript i elevenlabs.recv.agent_response.
Monitorujący WebSocket
Monitoring w czasie rzeczywistym wymaga workspace’u Enterprise lub flagi funkcji realtime-monitoring.
Konfigurację, polecenia sterujące i wymagania dostępu znajdziesz w Monitoringu w czasie rzeczywistym.
Przesyłaj dane śladów OpenTelemetry jako OTLP JSON podczas rozmowy. Każda wiadomość to mała partia resourceSpans, a nie jeden ślad na końcu połączenia.
Uwierzytelnianie wymaga CONVAI_WRITE, xi-api-key (lub Authorization) oraz dostępu EDITOR do workspace’u agenta. Połącz się po rozpoczęciu rozmowy.
Włącz monitoring dla agenta
Ustaw monitoring_enabled: true i skonfiguruj monitoring_events przed połączeniem. Zobacz Monitoring w czasie rzeczywistym.
Protokół sesji
- Połącz się z nagłówkami uwierzytelniającymi.
- Otrzymaj
{"type": "connected"}. - Otrzymaj partię spanu głównego (
elevenlabs.conversation,elevenlabs.source=monitoring). - Otrzymaj historię z pamięci podręcznej (około ostatnich 100 zdarzeń), a następnie
{"type": "history_complete"}. - Otrzymuj partie spanów na żywo w miarę występowania zdarzeń.
Przy events_format=json (domyślnie) WebSocket zwraca surowe zdarzenia klienta zamiast resourceSpans. Polecenia sterujące odpowiadają Monitoringowi w czasie rzeczywistym.
Struktura śladu
Zdarzenia strukturalne są mapowane na dedykowane atrybuty (np. elevenlabs.user.text, elevenlabs.agent.text). Nieznane zdarzenia używają elevenlabs.event.data ze skróconym JSON-em.
Nie zakładaj, że kolejność zdarzeń odpowiada kolejności mówienia. Łącz spany na żywo z danymi po rozmowie za pomocą
tego samego traceId.
Przykładowe połączenie
Struktura OTLP JSON
Ślady OpenTelemetry ze wszystkich źródeł mają ten sam układ partii OTLP JSON:
Ograniczenia
- Brak bezpośredniego wysyłania do endpointu OTLP gRPC.
- Payloady to JSON w formacie eksportu OTLP, a nie surowy protobuf przesyłany przez sieć.