Feilsøk direkte OTel-observabilitet

Bruk denne veiledningen for å verifisere telemetriinntak og diagnostisere problemer med agenttelemetri sendt direkte til Microsoft Agent 365 over OTLP. Den er begrenset til den direkte OTel-stien – hvis du bruker Agent 365 SDK eller Microsoft OpenTelemetry Distro, se disse veiledningene i stedet. For trådnivågrenser, feilkoder og stille droppbetingelser, se Grenser og fallbetingelser.

Verifisering av inntak

En OK på 200 er ikke bevis på inntak. Noen drop-betingelser returnerer 200 med partialSuccess: null , og dataene dine vises rett og slett ikke (se Limits og drop-conditions). Sjekk alltid dine første kjøringer:

  1. Kontroller HTTP-status. 200 → fortsett. 4xx → se Vanlige fallgruver.
  2. Dele opp partialSuccess. null betyr at API-et aksepterte alt. Alt annet betyr at minst noen spans ble droppet ved per-span-filteret.
  3. Vent ~5 minutter, og kjør deretter Defender advanced-hunting-spørringen nedenfor.
  4. Ingen rad? Bruk beslutningstreet under Ingen data i Defender.

Defender Advanced Hunting-spørring

Det kanoniske oppslaget (slått sammen basert på agentidentiteten du sendte):

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

For en komplett liste over visninger (Defender agent-aktivitet visninger, Administrasjonssenter for Microsoft 365, Microsoft Purview) og kravene til hver, se Hvor dataene dine vises.

Ingen data i Defender

  • partialSuccess.rejectedSpans == totalSpans → Alle spans du sendte hadde en ugyldig gen_ai.operation.name. Løsning: bruk en av invoke_agent, execute_tool, chat, output_messages (det er chat, ikke inference).
  • 200 med partialSuccess: null men ingen rad i Defender etter 5 minutter → ingen bruker i kundeleietakeren har fått tildelt en Microsoft 365 E7- eller Microsoft Agent 365-lisens (Grenser og droppbetingelser, droppbetingelse 2). Løsning: Bekreft at minst én bruker i leietakeren har fått tildelt lisensen (ikke bare til stede i leietakeren); ellers kontakt Agent 365s onboarding-team.
  • Spans vises, men run-treet er brutt / noen underordnede er uten forelder → manglende parentSpanId, ulike traceId, eller gen_ai.conversation.id ikke satt på alle spans. Løsning: gå gjennom span-hierarkiet og run-gruppering.

Vanlige fallgruver

Symptom Mest sannsynlige årsak Rett
401 Unauthorized Feil aud på token. Bruk 9b975845-388f-4429-889e-eab1ef63949c (eller api://9b975845-...).
403 Forbidden, manglende rolle / scope Token inneholder ikke Agent365.Observability.OtelWrite. Onboarde Microsoft Entra-appen din til rollen (S2S) eller scope (delegert) i henhold til Omfang og samtykke. For S2S må token hentes med <resource>/.default.
403 Forbidden, agentidentitet samsvarer ikke {agentId} i nettadresse ≠ appid / azp på token, eller en span har en gen_ai.agent.id som ikke matcher den autentiserte agenten. Ruten agentId må være appId for den kallende appen. For identiteter som er avledet fra blueprint, skal det brukes agent identity appId, ikke blueprint appId. Sørg for at hver spenn gen_ai.agent.id matcher.
200 OK men partialSuccess.rejectedSpans == totalSpans Alle span-elementer hadde en ugyldig gen_ai.operation.name. Bruk én av invoke_agent, execute_tool, chat eller output_messages. Det er chat, ikke inference.
200 OK med partialSuccess: null, men ingen data fremkommer i Defender Ingen bruker i leietakeren har en Microsoft 365 E7- eller Microsoft Agent 365-lisens tildelt (Grenser og dropbetingelser). Bekreft at minst én bruker i leietakeren har en Microsoft 365 E7- eller Microsoft Agent 365-lisens tildelt (at SKU-en er til stede er ikke nok). Verifiser med KQL i Verifying ingestion; hvis ingen data mottas etter 5 minutter, ta kontakt med Agent 365-teamet.
Spans vises i CloudAppEvents, men kjøringen vises ikke i Defender-agentaktivitetsvisningene eller i Administrasjonssenter for Microsoft 365 Kjøringen mangler en invoke_agent span. Begge overflatene bruker invoke_agent som nøkkel. Opprett nøyaktig én invoke_agent-span som rot for hver kjøring; gjør chat / execute_tool / output_messages til underordnet av den via parentSpanId.
Run tree er ødelagt / verktøyspenn ser foreldreløse ut Mangler parentSpanId eller ulik traceId på underordnet spans. Se Span-hierarki og kjøregruppering. Hver ikke-rot span setter parentSpanId og deler løpets traceId.
Verktøyspan viser tomme ChannelName / ConversationId i spørringer Kanal/samtale er ikke satt på verktøyspanet, og overordnet invoke_agent var ikke med i samme OTLP-forespørsel. Sett microsoft.channel.name og gen_ai.conversation.id på hver span.
413 Payload Too Large Forespørselstekst > 1 MB. Del spennviddene på flere forespørsler.
429 Too Many Requests Rate limit nådd. Respekter Retry-After: 1 og implementer backoff med jitter.
Agenten vises som ikke identifisert i dashboards gen_ai.agent.id er tomt eller ikke en GUID. Bruk agentens Entra appId. Hvis agenten ikke har Entra-registrering, kan du se Plukk verdier.

Neste trinn