Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usare questa guida per verificare l'inserimento dei dati di telemetria e diagnosticare i problemi relativi alla telemetria dell'agente inviati direttamente all'agente 365 tramite OTLP. È orientato al percorso OTel diretto - se stai usando l'SDK obsoleto Agent 365 Observability o la Microsoft OpenTelemetry Distro, consulta quelle guide invece. Per i limiti a livello di collegamento, i codici di errore e le condizioni di rilascio invisibile all'utente, vedere Limiti e condizioni di rilascio.
Verificare l'acquisizione
Un 200 OK non è prova di ingestione. Alcune condizioni di scarto restituiscono 200 anche se i tag results della risposta mostrano che gli span sono stati rifiutati. Verificare sempre le prime esecuzioni:
- Controllare lo stato HTTP. 200 → continua. 4xx → vedere Problemi comuni.
- Controllare
results. Per ogni intervallo, verificare che la destinazione applicabile abbia lo statosent. Uno stato direjectedonot_routedinclude una ragione. -
partialSuccessAnalizzare . Questo campo indica alcuni errori di filtraggio per span, ma un valore di0non garantisce che lo span sia stato instradato. - Aspetta ~5 minuti, poi esegui la query di ricerca avanzata di Defender nella sezione successiva.
- Nessuna riga? Usi l'albero decisionale in Nessun dato in Defender.
query di ricerca avanzata di Defender
Ricerca canonica (aggiunta all'identità dell'agente inviata):
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
Per l'elenco completo delle superfici (viste dell'attività degli agenti Defender, interfaccia di amministrazione di Microsoft 365, Microsoft Purview) e cosa serve ciascuna, vedi Dove compaiono i dati di osservabilità dell'Agent 365.
Nessun dato in Defender
-
partialSuccess.rejectedSpans == totalSpans→ tutti i tuoi span presentavano ungen_ai.operation.nameerrato. Correzione: usa uno diinvoke_agent,execute_tool,chat,output_messages(èchat, noninference). -
resultsDimostrarejectedcon motivotenant_not_licensed→ l'inquilino non è attualmente idoneo. Correzione: verifica che almeno un utente nel tenant disponga di una licenza Microsoft 365 E7 o Microsoft Agent 365 assegnata, quindi verifica l'idoneità del tenant. - Gli intervalli vengono visualizzati, ma l'albero di esecuzione è danneggiato oppure alcuni figli sono orfani → manca
parentSpanId,traceIdè diverso oppuregen_ai.conversation.idnon è impostato in ogni intervallo. Correggere: rivedere gerarchia degli span e raggruppamento dei run.
Insidie comuni
| Sintomo | Causa più probabile | Correzione |
|---|---|---|
401 Unauthorized |
Errore aud nel token. |
Usare 9b975845-388f-4429-889e-eab1ef63949c (o api://9b975845-...). |
403 Forbidden, ruolo, ambito o registrazione mancanti |
Sulla route S2S, l'istanza dell'agente non è registrata con Agent 365 e il token non ha il ruolo di app Agent365.Observability.OtelWrite. Sul percorso delegato, il token non porta l'ambito delegato. |
Per un'istanza di agente derivata dal blueprint, conferma che la registrazione dell'Agente 365 sia completata. Per riprovare, vedi Riprovare una registrazione non riuscita. Per altre identità S2S, abilita la tua app Microsoft Entra per il ruolo app. Per le chiamate delegate, configura l'app nell'ambito delegato. Vedi Ambiti e consenso. Per S2S, acquisire il token con <resource>/.default. |
403 Forbidden, mancata corrispondenza dell'identità dell'agente |
{agentId} nell'URL ≠ appid o azp del token, oppure uno span presenta un gen_ai.agent.id che non corrisponde all'agente autenticato. |
La route agentId deve essere l'appId dell'app chiamante. Per le identità derivate da blueprint, si tratta dell'appId dell'identità dell'agente, non dell'appId del blueprint. Assicurati che gen_ai.agent.id corrisponda in ogni span. |
200 OK ma partialSuccess.rejectedSpans == totalSpans |
Tutti gli span presentavano un problema con gen_ai.operation.name. |
Usare uno di invoke_agent, execute_tool, chat, output_messages.
È chat, non inference. |
200 OK con results che mostra rejected e il motivo tenant_not_licensed |
L'inquilino attualmente non è idoneo all'osservabilità. | Conferma che almeno un utente nel tenant abbia assegnata una licenza Microsoft 365 E7 o Microsoft Agent 365 (la presenza dello SKU non è sufficiente), quindi usa il controllo facoltativo dell'idoneità del tenant. |
Gli intervalli vengono visualizzati in CloudAppEvents, ma l'esecuzione non è presente nelle visualizzazioni delle attività dell'agente Defender e dal interfaccia di amministrazione di Microsoft 365 |
L'esecuzione non ha un invoke_agent intervallo. Entrambe le superfici dipendono da invoke_agent. |
Emetti esattamente uno span invoke_agent a livello radice di ogni esecuzione; rendi chat, execute_tool e output_messages figli di invoke_agent tramite parentSpanId. |
| L'albero delle esecuzioni è danneggiato oppure gli intervalli dello strumento appaiono orfani | Mancante parentSpanId o diverso traceId per gli intervalli figlio. |
Vedi Gerarchia degli span e raggruppamento delle esecuzioni. Ogni span non-root imposta parentSpanId e condivide il traceId del run. |
Gli intervalli dello strumento mostrano vuoti ChannelName o ConversationId nelle query |
Il canale o la conversazione non sono impostati sull'intervallo dello strumento, e il genitore invoke_agent non era nella stessa richiesta OTLP. |
Impostare microsoft.channel.name e gen_ai.conversation.id su ogni intervallo. |
413 Payload Too Large |
Corpo della richiesta > 1 MB. | Suddividere l'intervallo tra più richieste. |
429 Too Many Requests |
Limite di velocità raggiunto. | Onora Retry-After: 1 e torna indietro con instabilità. |
| Agente appare non identificato nelle dashboard |
gen_ai.agent.id è vuoto o non è un GUID. |
Usare l'appId di Entra dell'agente. Se l'agente non dispone di una registrazione in Entra, vedi Scelta dei valori. |
Requisiti di idoneità per l'inquilino preflight
Le integrazioni S2S di terze parti integrate possono utilizzare l'endpoint opzionale di idoneità al tenant prima di abilitare un'integrazione o inviare telemetria. Se la tua integrazione utilizza questo endpoint, le seguenti indicazioni possono aiutarti a interpretarne le risposte.
| Sintomo | Causa più probabile | Correzione |
|---|---|---|
Resi di idoneità 200 OK con enabled: false |
L'inquilino attualmente non soddisfa i requisiti di idoneità. | Non inviare telemetria. Verifica che l'inquilino soddisfi i prerequisiti e ricontrolla dopo che il suo stato cambia. |
Dichiarazioni di idoneità 403 Forbidden |
Nel token manca Agent365.Observability.OtelWrite, oppure il token tid non corrisponde a {tenantId} nell'URL. |
Correggi l'assegnazione del ruolo dell'app, il consenso del tenant o la mancata corrispondenza del tenant. |
Dichiarazioni di idoneità 429 Too Many Requests |
Il chiamante ha superato il limite di idoneità richiesto. | Rispetta il valore Retry-After della risposta e riprova con backoff e jitter. |
La verifica di idoneità restituisce una risposta senza corpo 503 Service Unavailable |
Non si poteva determinare l'idoneità. | Rispetta Retry-After: 30 e riprova. Non considerare il corpo mancante come enabled: false. |
Passaggi successivi
- Concetti di osservabilità dell'agente 365 : flusso di dati, modelli di identità, autenticazione, ambiti e limiti.
- Guida all'integrazione : prerequisiti, ricette di autenticazione, configurazione dell'SDK e elenco di controllo per l'onboarding.
- Informazioni di riferimento sugli attributi: indicazioni per la specifica per attributo e la selezione di valori.