Αντιμετώπιση προβλημάτων άμεσης παρατηρησιμότητας OTel

Χρησιμοποιήστε αυτόν τον οδηγό για να επαληθεύσετε την εισαγωγή τηλεμετρίας και να διαγνώσετε προβλήματα με την τηλεμετρία του agent που αποστέλλεται στο Agent 365 απευθείας μέσω OTLP. Έχει εμβέλεια στην άμεση διαδρομή OTel - εάν χρησιμοποιείτε το Agent 365 SDK ή το Microsoft OpenTelemetry Distro, ανατρέξτε σε αυτούς τους οδηγούς. Για όρια σε επίπεδο δικτύου, κωδικούς σφάλματος και συνθήκες αθόρυβης απόρριψης, δείτε Όρια και συνθήκες απόρριψης.

Επαλήθευση εισαγωγής

Ένα 200 OK δεν αποτελεί απόδειξη εισαγωγής. Ορισμένες συνθήκες πτώσης επιστρέφουν 200 με partialSuccess: null και τα δεδομένα σας απλώς δεν εμφανίζονται (δείτε την ενότητα Όρια και συνθήκες πτώσης). Επαληθεύετε πάντα τις πρώτες σας εκτελέσεις:

  1. Έλεγχος κατάστασης HTTP. 200 → συνέχεια. 4xx → δείτε Κοινές παγίδες.
  2. Ανάλυση partialSuccess. null σημαίνει ότι το API αποδέχτηκε τα πάντα. Οτιδήποτε άλλο σημαίνει ότι τουλάχιστον κάποια διαστήματα απορρίφθηκαν από το φίλτρο ανά διάστημα.
  3. Περιμένετε ~5 λεπτά και, στη συνέχεια, εκτελέστε το ερώτημα προηγμένου κυνηγιού του Defender παρακάτω.
  4. Δεν υπάρχει σειρά; Χρησιμοποιήστε το δέντρο αποφάσεων κάτω από την ενότητα Δεν υπάρχουν δεδομένα στο Defender.

Ερώτημα προηγμένου κυνηγιού του Defender

Η τυπική αναζήτηση (με συσχέτιση στην ταυτότητα του πράκτορα που στείλατε):

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) και τι απαιτεί η κάθε μία, ανατρέξτε στο θέμα Όπου εμφανίζονται τα δεδομένα σας.

Δεν υπάρχουν δεδομένα στο Defender

  • partialSuccess.rejectedSpans == totalSpans → όλα τα διαστήματα σας είχαν προβληματικό gen_ai.operation.name. Διόρθωση: χρησιμοποιήστε ένα από τα invoke_agent, execute_tool, chat, output_messages (είναι chat, όχι inference).
  • 200 με partialSuccess: null αλλά χωρίς γραμμή Defender μετά από 5 λεπτά → κανένας χρήστης στον μισθωτή του πελάτη δεν έχει ανατεθειμένη άδεια χρήσης Microsoft 365 E7 ή Microsoft Agent 365 (Όρια και συνθήκες απόρριψης, συνθήκη απόρριψης 2). Επιδιόρθωση: επιβεβαιώστε ότι τουλάχιστον ένας χρήστης στον μισθωτή έχει την άδεια χρήσης που έχει εκχωρηθεί (όχι μόνο στον μισθωτή), διαφορετικά επικοινωνήστε με την ομάδα προσθήκης λογαριασμών του Agent 365.
  • Τα διαστήματα εμφανίζονται, αλλά το δέντρο εκτέλεσης είναι σπασμένο / κάποιοι θυγατρικοί είναι ορφανοί → λείπει το parentSpanId, διαφορετικό traceId, ή το gen_ai.conversation.id δεν έχει οριστεί σε κάθε διάστημα. Διόρθωση: ελέγξτε την ιεραρχία των διαστημάτων και την ομαδοποίηση εκτέλεσης.

Συνηθισμένα λάθη

Σύμπτωμα Πιθανότερη αιτία Διόρθωση
401 Unauthorized Λάθος aud στο διακριτικό. Χρήση 9b975845-388f-4429-889e-eab1ef63949capi://9b975845-...).
403 Forbidden, λείπει ρόλος/πεδίο εφαρμογής Το διακριτικό δεν φέρει Agent365.Observability.OtelWrite. Εντάξτε την εφαρμογή Microsoft Entra στον ρόλο (S2S) ή στο scope (με ανάθεση) σύμφωνα με Scopes and consent. Για το S2S, το διακριτικό πρέπει να αποκτηθεί με <resource>/.default.
403 Forbidden, αναντιστοιχία ταυτότητας παράγοντα {agentId} στη διεύθυνση URL ≠ appid / azp του διακριτικού, ή ένα διάστημα φέρει ένα gen_ai.agent.id που δεν ταιριάζει με τον πιστοποιημένο πράκτορα. Η διαδρομή agentId πρέπει να είναι το appId της εφαρμογής που καλεί. Για τα blueprint-derived identities, πρέπει να χρησιμοποιείται το appId της ταυτότητας agent, όχι το appId του blueprint. Βεβαιωθείτε ότι το 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 αλλά δεν εμφανίζονται δεδομένα στο Defender Κανένας χρήστης στον μισθωτή πελάτη δεν έχει άδεια χρήσης Microsoft 365 E7 ή Microsoft Agent 365 εκχωρημένη (Όρια και συνθήκες απόρριψης). Επιβεβαιώστε ότι τουλάχιστον ένας χρήστης στον μισθωτή έχει εκχωρημένη άδεια χρήσης Microsoft 365 E7 ή Microsoft Agent 365 η παρουσία SKU δεν αρκεί. Επαληθεύστε με το KQL στην Επαλήθευση εισαγωγής δεδομένων· αν δεν εμφανιστεί τίποτα μετά από 5 λεπτά, επικοινωνήστε με την ομάδα του Agent 365.
Τα διαστήματα εμφανίζονται στο CloudAppEvents, αλλά η εκτέλεση δεν εμφανίζεται στις προβολές δραστηριότητας παράγοντα του Defender και από το Κέντρο διαχείρισης Microsoft 365 Η εκτέλεση δεν έχει invoke_agent διάστημα. Και οι δύο επιφάνειες κλείνουν invoke_agent. Εκπέμψτε ακριβώς ένα invoke_agent διάστημα στη ρίζα κάθε εκτέλεσης· κάντε τα chat / execute_tool / output_messages θυγατρικά του μέσω parentSpanId.
Το δέντρο εκτέλεσης είναι σπασμένο / τα διαστήματα των εργαλείων εμφανίζονται ορφανά Λείπει parentSpanId ή διαφέρει traceId στα θυγατρικά διαστήματα. Δείτε την ενότητα Ιεραρχία διαστημάτων και ομαδοποίηση εκτελέσεων. Το μη ριζικό διάστημα Every ορίζει το 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, ανατρέξτε στην ενότητα Επιλογή τιμών.

Επόμενα βήματα