Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Skorzystaj z tego przewodnika, aby zweryfikować przyjmowanie telemetrii i zdiagnozować problemy z telemetrią agenta wysyłaną bezpośrednio do Agent 365 przez OTLP. Przewodnik dotyczy bezpośredniej ścieżki OTel – jeśli korzystasz z Agent 365 SDK lub Microsoft OpenTelemetry Distro, zobacz odpowiednie przewodniki. Dla limitów na poziomie transmisji, kodów błędów i warunków cichego odrzucenia, zobacz Limity i warunki odrzucenia.
Weryfikowanie pozyskiwania
200 OK nie jest dowodem pozyskiwania. Niektóre warunki odrzucenia zwracają 200 partialSuccess: null, a Twoje dane po prostu się nie pojawiają (zobacz Limity i warunki odrzucenia). Zawsze weryfikuj swoje pierwsze uruchomienia:
- Sprawdź stan HTTP. 200 → kontynuuj. 4xx → zobacz Typowe pułapki.
- Przeanalizuj
partialSuccess.nulloznacza, że API zaakceptowało wszystko. Wszystko inne oznacza, że przynajmniej część spanów została odrzucona przez filtr dla poszczególnych spanów. - Odczekaj około 5 minut, a następnie uruchom poniżej zapytanie zaawansowanego wyszukiwania Defendera.
- Brak wiersza? Użyj drzewa decyzyjnego pod Brak danych w Defender.
Zapytanie zaawansowanego wyszukiwania Defender
Kanoniczne wyszukiwanie (łączenie na podstawie tożsamości agenta, którą wysłano):
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
Pełną listę obszarów (widoki aktywności agenta Defendera, centrum administracyjne Microsoft 365, Microsoft Purview) oraz wymagania dla każdego z nich znajdziesz w Gdzie pojawiają się dane.
Brak danych w Defender
-
partialSuccess.rejectedSpans == totalSpans→ wszystkie spany miały nieprawidłowygen_ai.operation.name. Poprawka: użyj jednego zinvoke_agent,execute_tool, ,chat(output_messagesto jestchat, nieinference). - 200 z
partialSuccess: null, ale po 5 minutach brak wiersza Defender → żaden użytkownik w dzierżawie klienta nie ma przypisanej licencji Microsoft 365 E7 ani Microsoft Agent 365 przypisanej (Limity i warunki odrzucenia, warunek odrzucenia 2). Naprawa: potwierdzenie, że przynajmniej jeden użytkownik w tenant ma przypisaną licencję (nie tylko obecną w tenant); w przeciwnym razie skontaktuj się z zespołem wdrożeniowym Agent 365. - Span pojawiają się, ale drzewo uruchomienia jest uszkodzone / niektóre elementy podrzędne są osierocone → brakuje
parentSpanId, różnetraceId, lubgen_ai.conversation.idnie są ustawione na każdym span. Poprawka: sprawdź hierarchię elementów span i grupowanie wierszy.
Typowe błędy
| Objaw | Najczęstsza przyczyna | Napraw |
|---|---|---|
401 Unauthorized |
Nieprawidłowy aud w tokenie. |
Użyj 9b975845-388f-4429-889e-eab1ef63949c (lub api://9b975845-...). |
403 Forbidden, brak roli/zakresu |
Token nie zawiera Agent365.Observability.OtelWrite. |
Przypisz swoją aplikację Microsoft Entra do roli (S2S) lub zakresu (delegowanego) zgodnie z dokumentacją dotyczącą zakresów i zgody. Dla S2S, token musi być uzyskany za pomocą <resource>/.default. |
403 Forbidden, niezgodność tożsamości agenta |
{agentId} w URL ≠ appid / azp tokena, lub span zawiera gen_ai.agent.id, która nie jest zgodna z uwierzytelnionym agentem. |
Trasa agentId musi być appId aplikacji wywołującej. W przypadku tożsamości wywodzących się z konspektu, chodzi o appId agenta, a nie appId konspektu. Upewnij się, że każde przęsło pasuje gen_ai.agent.id. |
200 OK ale partialSuccess.rejectedSpans == totalSpans |
Wszystkie span miały nieprawidłowy gen_ai.operation.name. |
Użyj jednego z invoke_agent, execute_tool, chat, output_messages.
To jest chat, a nie inference. |
200 OK z partialSuccess: null, ale żadne dane nie pojawiają się w Defender |
Żaden użytkownik w dzierżawie klienta nie ma licencji Microsoft 365 E7 ani Microsoft Agent 365 przypisanej (Limity i warunki odrzucenia). | Upewnij się, że przynajmniej jeden użytkownik w dzierżawie ma przypisaną licencję Microsoft 365 E7 lub Microsoft Agent 365 (sama obecność SKU nie wystarcza). Zweryfikuj za pomocą KQL w Weryfikacji przyjęcia danych; jeśli po 5 minutach nie pojawią się dane, skontaktuj się z zespołem Agent 365. |
Span pojawiają się w CloudAppEvents, ale run nie jest widoczny w widokach aktywności agenta Defender ani w Centrum administracyjnym Microsoft 365 |
Przebieg nie zawiera span invoke_agent. Obie powierzchnie są invoke_agent. |
Emituj dokładnie jeden invoke_agent span na poziomie głównym każdego przebiegu; ustaw chat / execute_tool / output_messages jako jego elementy podrzędne poprzez parentSpanId. |
| Drzewo uruchomień jest uszkodzone/span narzędzi wydają się być osierocone | Brak parentSpanId lub inny traceId na podrzędnych span. |
Zapoznaj się z Hierarchią span i grupowaniem przebiegów. Każdy rozpięty nie-pierwiastkowy ustawia parentSpanId i dzieli się z biegiem traceId. |
Elementy span narzędziowe pokazują puste ChannelName / ConversationId w zapytaniach |
Kanał / rozmowa nie jest ustawiona na span narzędziowy, a element nadrzędny invoke_agent nie znajdował się w tym samym żądaniu OTLP. |
Ustaw microsoft.channel.name i gen_ai.conversation.id na każdym span. |
413 Payload Too Large |
Treść żądania > 1 MB. | Podziel rozpiętości na kilka zamówień. |
429 Too Many Requests |
Osiągnięto limit żądań. | Zachowaj Retry-After: 1 i wycofaj się. |
| Agent pojawia się jako niezidentyfikowany na pulpitach nawigacyjnych |
gen_ai.agent.id jest pusty lub nie jest prawidłowym GUID. |
Użyj Entra appId agenta. Jeśli agent nie jest zarejestrowany w Entra, zobacz Wybieranie wartości. |
Następne kroki
- Koncepcje obserwowalności Agent 365 – przepływ danych, modele tożsamości, uwierzytelnianie, zakresy i limity.
- Przewodnik integracyjny – wymagania wstępne, metody uwierzytelniania, konfiguracja SDK oraz lista kontrolna wdrożenia.
- Referencja atrybutów – specyfikacja i wskazówki dotyczące wyboru wartości dla każdego atrybutu.