OpenTelemetry ट्रेसेस
OpenTelemetry ट्रेसेस
OTLP JSON के रूप में OpenTelemetry ट्रेसेस को अपने ऑब्ज़र्वेबिलिटी स्टैक में एक्सपोर्ट करें।
ElevenLabs Agents बातचीत को OpenTelemetry traces के रूप में, OTLP JSON (resourceSpans) में एन्कोड करके एक्सपोर्ट कर सकता है। इन्हें Datadog, Grafana Tempo, Honeycomb या OTLP इनजेस्ट करने वाले किसी भी बैकएंड पर फ़ॉरवर्ड करें।
ElevenLabs सीधे आपके OTLP कलेक्टर पर ट्रेस पुश नहीं करता। आपको webhook, API या monitoring WebSocket से OTLP-जैसा JSON मिलता है, जिसे आप अपने बैकएंड पर फ़ॉरवर्ड करते हैं।
परिचय
तीन स्रोतों से ट्रेस एक्सपोर्ट करें। तीनों में हर बातचीत के लिए एक ही trace ID और elevenlabs.* एट्रिब्यूट नामकरण होता है। पोस्ट-कॉल/GET (ट्रांसक्रिप्ट-आधारित) और मॉनिटरिंग (इवेंट-आधारित) के बीच स्पैन का आकार और टाइमिंग अलग होते हैं।
एक्सपोर्ट स्रोत
स्रोत चुनना
- आपके डेटा वेयरहाउस में हर पूरी हुई कॉल: पोस्ट-कॉल webhook
- एक बार का एक्सपोर्ट या सुधार:
format=opentelemetryके साथ GET conversation - लाइव सुपरवाइज़र UI या अलर्टिंग: monitoring WebSocket
- बाद में पूरी फ़िडेलिटी वाली टाइमलाइन: पोस्ट-कॉल webhook या GET conversation
- टूल, MCP या गार्डरेल इवेंट, जैसे ही हों: monitoring WebSocket
अलग-अलग स्रोतों के डेटा को जोड़ने के लिए traceId या elevenlabs.conversation_id इस्तेमाल करें। लाइव ऑपरेशन के लिए monitoring, स्थायी एनालिटिक्स के लिए webhooks और बैकफिल के लिए GET को मिलाकर इस्तेमाल करें।
हर स्रोत के लिए आपको OTLP-सक्षम कलेक्टर या ऑब्ज़र्वेबिलिटी वेंडर चाहिए। पोस्ट-कॉल webhooks के लिए workspace webhook endpoint चाहिए। GET API और monitoring WebSocket, दोनों के अपने API key scopes और सेटअप हैं; नीचे दिए गए सेक्शन देखें।
पोस्ट-कॉल webhook
बातचीत खत्म होने के बाद, जब कोई पोस्ट-कॉल webhook कॉन्फ़िगर हो, events में transcript शामिल हो और transcript_format opentelemetry हो, तो ElevenLabs POST अनुरोध भेजता है।
webhook का type post_call_transcription_otel होता है (post_call_transcription नहीं, जो JSON ट्रांसक्रिप्ट लौटाता है)।
Webhook payload
OpenTelemetry ट्रांसक्रिप्ट चालू करें
डैशबोर्ड से कॉन्फ़िगर करें
CLI से कॉन्फ़िगर करें
API से कॉन्फ़िगर करें
workspace webhook बनाएं
ElevenAgents Dashboard में, अपने HTTPS URL और authentication के साथ एक workspace webhook बनाएं।
पोस्ट-कॉल webhook अटैच करें
Agents settings खोलें, webhook को पोस्ट-कॉल webhook के रूप में असाइन करें, Transcript इवेंट चालू करें और OpenTelemetry transcript payloads चालू करें।

OpenTelemetry transcript webhooks में ऑडियो शामिल नहीं होता। अगर आपको रिकॉर्डिंग चाहिए,
तो post_call_audio इस्तेमाल करें।
सफलता के लिए 2xx लौटाएं। 4xx और 5xx को विफलता माना जाता है।
ट्रांसक्रिप्ट webhooks (OpenTelemetry समेत) पर रीट्राई केवल तब लागू होते हैं, जब workspace webhook के लिए Enable retries चालू हो। अस्थायी त्रुटियों (5xx, 429, 408) पर अधिकतम 5 बार रीट्राई होता है; 4xx पर नहीं। ऑडियो webhooks पर कभी रीट्राई नहीं होता। बार-बार विफलता होने पर webhook अपने-आप बंद हो सकता है। विवरण और HIPAA अपवादों के लिए Post-call webhooks देखें।
डिलीवरी
ट्रेस संरचना
हर डिलीवरी एक पूरी ट्रेस होती है: एक रूट स्पैन और उसके चाइल्ड।
अगर डिलीवरी में reasoning summary हो, तो agent-response spans में elevenlabs.reasoning_content शामिल होता है।
टाइमिंग ट्रांसक्रिप्ट time_in_call_secs और कॉल मेटाडेटा से आती है। रूट स्पैन elevenlabs.source = post_call_webhook सेट करता है और अगर कॉल सामान्य client disconnect के साथ खत्म नहीं हुई हो, तो स्टेटस ERROR सेट करता है।
GET conversation
पोस्ट-कॉल OpenTelemetry webhook जैसा ही otlp_traces ऑब्जेक्ट, साथ में पूरा conversation model पाने के लिए Get conversation पर OpenTelemetry format का अनुरोध करें।
CONVAI_READ वाली API key चाहिए। format=json (डिफ़ॉल्ट) के साथ otlp_traces शामिल नहीं होता।
अपेक्षित स्पैन नामों में elevenlabs.conversation, elevenlabs.recv.user_transcript और elevenlabs.recv.agent_response शामिल हैं।
Monitoring WebSocket
रीयल-टाइम मॉनिटरिंग के लिए Enterprise workspace या realtime-monitoring feature flag चाहिए।
कॉन्फ़िगरेशन, कंट्रोल कमांड और एक्सेस आवश्यकताओं के लिए Real-time monitoring देखें।
बातचीत चल रही हो, तब OpenTelemetry trace data को OTLP JSON के रूप में स्ट्रीम करें। हर संदेश एक छोटा resourceSpans बैच होता है, न कि कॉल खत्म होने की एक ट्रेस।
Authentication के लिए CONVAI_WRITE, xi-api-key (या Authorization) और agent workspace पर EDITOR एक्सेस चाहिए। बातचीत शुरू होने के बाद कनेक्ट करें।
Agent पर monitoring चालू करें
कॉल से पहले monitoring_enabled: true सेट करें और monitoring_events कॉन्फ़िगर करें। Real-time monitoring देखें।
सेशन प्रोटोकॉल
- authentication headers के साथ कनेक्ट करें।
{"type": "connected"}पाएं।- एक रूट स्पैन बैच पाएं (
elevenlabs.conversation,elevenlabs.source=monitoring)। - कैश की गई हिस्ट्री (आखिरी लगभग 100 इवेंट) पाएं, फिर
{"type": "history_complete"}। - इवेंट होते ही लाइव स्पैन बैच पाएं।
events_format=json (डिफ़ॉल्ट) के साथ WebSocket, resourceSpans के बजाय raw client events लौटाता है। कंट्रोल कमांड Real-time monitoring के अनुसार होते हैं।
ट्रेस संरचना
स्ट्रक्चर्ड इवेंट समर्पित एट्रिब्यूट में मैप होते हैं (उदाहरण के लिए elevenlabs.user.text, elevenlabs.agent.text)। अज्ञात इवेंट, ट्रंकेट किए गए JSON के साथ elevenlabs.event.data इस्तेमाल करते हैं।
यह न मानें कि इवेंट का क्रम बोलने के क्रम जैसा होगा। लाइव स्पैन को पोस्ट-कॉल डेटा से जोड़ने के लिए
उसी traceId का उपयोग करें।
उदाहरण कनेक्शन
OTLP JSON संरचना
सभी स्रोतों के OpenTelemetry traces में एक ही OTLP JSON बैच लेआउट होता है:
सीमाएं
- आपके OTLP gRPC endpoint पर सीधे पुश नहीं किया जाता।
- Payloads OTLP export जैसे आकार वाले JSON हैं, wire पर raw protobuf नहीं।