डायरेक्ट OTel ऑब्ज़र्वेबिलिटी की समस्याओं को ठीक करें

इस मार्गदर्शिका का उपयोग करें ताकि आप टेलीमेट्री इनजेशन को सत्यापित कर सकें और Agent 365 को सीधे OTLP के माध्यम से भेजी गई एजेंट टेलीमेट्री में समस्याओं का निदान कर सकें। यह direct OTel path के लिए है - यदि आप Agent 365 SDK या Microsoft OpenTelemetry Distro का उपयोग कर रहे हैं, तो इसके बजाय उन मार्गदर्शिकाओं को देखें। वायर-स्तर की सीमाओं, त्रुटि कोडों, और साइलेंट ड्रॉप स्थितियों के लिए सीमाएँ और ड्रॉप स्थितियाँ देखें।

अंतर्ग्रहण सत्यापन

200 ओके अंतर्ग्रहण का प्रमाण नहीं है। कुछ ड्रॉप शर्तें 200 के साथ लौटाती partialSuccess: null हैं और आपका डेटा बस दिखाई नहीं देता है ( देखें सीमाएं और ड्रॉप शर्तें)। हमेशा अपने पहले रन सत्यापित करें:

  1. HTTP स्थिति जाँचें। 200 → आगे बढ़ें। 4xx → सामान्य नुकसान देखें।
  2. पार्स करेंpartialSuccess। null इसका मतलब है कि एपीआई ने सब कुछ स्वीकार कर लिया। अन्य किसी भी स्थिति का अर्थ है कि कम से कम कुछ स्पैन प्रति-स्पैन फिल्टर पर हटा दिए गए थे।
  3. लगभग 5 मिनट प्रतीक्षा करें, फिर नीचे Defender एडवांस्ड-हंटिंग क्वेरी चलाएं।
  4. कोई पंक्ति नहीं? डिफेंडर में कोई डेटा नहीं के तहत निर्णय ट्री का उपयोग करें।

डिफेंडर एडवांस्ड हंटिंग क्वेरी

विहित लुकअप (आपके द्वारा भेजी गई एजेंट पहचान पर शामिल होना):

let agentIdToFind = "YOUR-AGENT-APP-ID-HERE";
CloudAppEvents
| where Timestamp > ago(1d)
| where ActionType in ("InvokeAgent", "InferenceCall", "ExecuteToolBySDK", "ExecuteToolByGateway", "ExecuteToolByMCPServer")
| extend resData = parse_json(tostring(RawEventData))
| extend AgentId = resData.AgentId
| extend TargetAgentId = resData.TargetAgentId
| extend AlternateId = resData.PlatformTargetAgentId
| where AgentId == agentIdToFind or TargetAgentId == agentIdToFind or AlternateId == agentIdToFind
| project Timestamp, ActionType, resData
| order by Timestamp desc

सभी सतहों (Defender एजेंट-गतिविधि दृश्य, Microsoft 365 एडमिन सेंटर, Microsoft Purview) की पूरी सूची और प्रत्येक के लिए आवश्यकताओं के लिए, देखें आपका डेटा कहाँ दिखता है।

डिफेंडर में कोई डेटा नहीं

  • partialSuccess.rejectedSpans == totalSpans → आपके सभी स्पैन का gen_ai.operation.name अमान्य था। फिक्स:invoke_agent, execute_tool, chat, output_messages में से किसी एक का उपयोग करें (यह chat है, inference नहीं).
  • 200 के साथ partialSuccess: null लेकिन 5 मिनट के बाद कोई डिफेंडर पंक्ति नहीं है → ग्राहक टैनेंट में किसी भी उपयोगकर्ता को Microsoft 365 E7 या Microsoft Agent 365 लाइसेंस असाइन नहीं किया गया है (सीमाएं और ड्रॉप शर्तें, ड्रॉप शर्त 2)। फिक्स: पुष्टि करें कि किरायेदार में कम से कम एक उपयोगकर्ता के पास लाइसेंस असाइन किया गया है (न कि केवल किरायेदार में मौजूद है); अन्यथा Agent 365 ऑनबोर्डिंग टीम से संपर्क करें।
  • स्पैन दिखाई देते हैं लेकिन रन ट्री टूट गया है / कुछ बच्चे अनाथ हो गए हैं → लापता parentSpanId, अलग traceId, या हर स्पैन पर gen_ai.conversation.id सेट नहीं है। समाधान:स्पैन पदानुक्रम और रन समूह की समीक्षा करें।

आम गलतियाँ

लक्षण सबसे संभावित कारण Fix
401 Unauthorized टोकन पर गलत aud। 9b975845-388f-4429-889e-eab1ef63949c (या api://9b975845-...) का उपयोग करें।
403 Forbidden, लापता भूमिका/गुंजाइश टोकन में Agent365.Observability.OtelWrite नहीं है। अपने Microsoft Entra ऐप को भूमिका (S2S) या स्कोप (डेलीगेटेड) के अनुसार स्कोप्स और सहमति पर ऑनबोर्ड करें। S2S के लिए, टोकन को <resource>/.default के साथ प्राप्त करना आवश्यक है।
403 Forbidden, एजेंट पहचान बेमेल URL में {agentId} ≠ टोकन के appid / azp, या कोई स्पैन ऐसा gen_ai.agent.id लिए हुए है जो प्रमाणित एजेंट से मेल नहीं खाता।. मार्ग agentId को कॉलिंग ऐप का appId होना चाहिए। ब्लूप्रिंट-व्युत्पन्न पहचान के लिए, यह एजेंट पहचान appId है, न कि ब्लूप्रिंट appId। सुनिश्चित करें कि हर अवधि का gen_ai.agent.id मिलान हो।
200 OK लेकिन partialSuccess.rejectedSpans == totalSpans सभी स्पैन का gen_ai.operation.name अमान्य था। invoke_agent, execute_tool, chat, output_messages में से किसी एक का उपयोग करें। यह chat है, inference नहीं।
200 OK के साथ partialSuccess: null, लेकिन डिफेंडर में कोई डेटा दिखाई नहीं देता है ग्राहक टैनेंट में किसी उपयोगकर्ता के पास Microsoft 365 E7 या Microsoft Agent 365 लाइसेंस असाइन नहीं है (सीमाएँ और ड्रॉप शर्तें)। पुष्टि करें कि टैनेंट में कम से कम एक उपयोगकर्ता के पास Microsoft 365 E7 या Microsoft Agent 365 लाइसेंस असाइन किया गया है (SKU का मौजूद होना पर्याप्त नहीं है)। अंतर्ग्रहण की पुष्टि में KQL के साथ सत्यापित करें; यदि 5 मिनट के बाद कुछ भी नहीं उतरता है, तो Agent 365 टीम से संपर्क करें।
स्पैन दिखाई CloudAppEvents देते हैं लेकिन रन डिफेंडर एजेंट-गतिविधि दृश्यों और Microsoft 365 व्यवस्थापक केंद्र से गायब है रन में कोई invoke_agent स्पैन नहीं है। दोनों सतहें बंद हो invoke_agentजाती हैं। हर रन के रूट में ठीक एक invoke_agent स्पैन उत्पन्न करें; chat / execute_tool / output_messages को parentSpanId के माध्यम से इसके बच्चे बनाएँ।
रन ट्री टूट गया है और टूल स्पैन अनाथ दिखाई देते हैं चाइल्ड स्पैन में parentSpanId मौजूद नहीं है या traceId भिन्न है। स्पैन पदानुक्रम और रन समूहकरण देखें। प्रत्येक गैर-रूट स्पैन parentSpanId सेट करता है और रन का traceId साझा करता है।
टूल स्पैन क्वेरीज़ में खाली ChannelName / ConversationId दिखाई देते हैं टूल स्पैन पर चैनल/वार्तालाप सेट नहीं है, और पैरेंट invoke_agent उसी OTLP अनुरोध में नहीं था। हर स्पैन पर microsoft.channel.name और gen_ai.conversation.id सेट करें।
413 Payload Too Large अनुरोध का मुख्य भाग > 1 MB। स्पैन को कई अनुरोधों में विभाजित करें।
429 Too Many Requests रेट लिमिट हिट हो गई Retry-After: 1 का पालन करें और जिटर के साथ पीछे हटें।
एजेंट डैशबोर्ड में पहचाना नहीं जाता है gen_ai.agent.id रिक्त है या GUID स्वरूप में नहीं है। एजेंट के Entra appId का उपयोग करें। यदि एजेंट के पास कोई Entra पंजीकरण नहीं है, तो मान चुनना देखें।

अगले चरण