Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Observerbarhet ger insikter om arbetsflödens interna tillstånd och beteende under körningen. Detta omfattar funktioner för loggning, mått och spårning som hjälper dig att övervaka och felsöka arbetsflöden.
Tips/Råd
Observerbarhet är en ramverksomfattande funktion och är inte begränsad till arbetsflöden. Mer information finns i Observerbarhet.
Förutom genAI-standardtelemetrin genererar Agent Framework-arbetsflöden ytterligare intervall, loggar och mått för att ge djupare insikter om arbetsflödeskörning. Dessa observerbarhetsfunktioner hjälper utvecklare att förstå flödet av meddelanden, prestanda för utförare och eventuella fel som kan uppstå.
Aktivera observerbarhet
Se Aktivera observerbarhet för anvisningar om hur du aktiverar observerbarhet i dina program.
Se Aktivera observerbarhet för anvisningar om hur du aktiverar observerbarhet i dina program.
Arbetsflödesintervall
Följande tidsintervall genereras under utförandet av arbetsflödet:
| Namn på intervall | Description |
|---|---|
workflow.build |
Genereras för varje arbetsflödesversion. |
workflow.session |
Yttre intervall som representerar hela livslängden för en arbetsflödesexekvering, från start tills det stoppas eller vid fel. |
workflow_invoke |
Genereras för varje indata-till-avbrott-cykel i en arbetsflödessession. |
executor.process {executor_id} |
Genereras för varje exekutor som behandlar ett meddelande. Exekverings-ID läggs till i span-namnet. |
edge_group.process |
Genereras för varje kantgrupp som bearbetar ett meddelande. |
message.send |
Genereras för varje meddelande som skickas från en exekverare till en annan exekverare. |
Följande intervall genereras under arbetsflödeskörningen:
| Namn på intervall | Description |
|---|---|
workflow.build |
Genereras för varje arbetsflödesversion. |
workflow.run |
Genereras för varje arbetsflödeskörning. |
executor.process {executor_id} |
Genereras för varje exekverare som bearbetar ett meddelande. Exekverings-ID:t läggs till i spänn-namnet. |
edge_group.process {edge_group_type} |
Genereras för varje kantgrupp som bearbetar ett meddelande. Kantgruppstypen läggs till i spannets namn. |
message.send |
Genereras för varje meddelande som skickas från en exekverare till en annan exekverare. |
Span-attribut
Spans bär attribut som ger ytterligare kontext om operationen. Följande attribut anges för arbetsflödesintervall:
| Attribute | Intervall | Description |
|---|---|---|
workflow.id |
workflow.build, workflow.session |
Arbetsflödets unika identifierare. |
workflow.name |
workflow.session |
Namnet på arbetsflödet. |
workflow.description |
workflow.session |
Beskrivningen av arbetsflödet. |
workflow.definition |
workflow.build |
JSON-definitionen för arbetsflödesdiagrammet. |
session.id |
workflow.session |
Den unika sessionsidentifieraren. |
executor.id |
executor.process |
Den unika identifieraren för utföraren. |
executor.type |
executor.process |
Exekverarens typnamn. |
executor.input |
executor.process |
Indatameddelandet. Ange endast när känsliga data är aktiverade. |
executor.output |
executor.process |
Utdata från exekutorn. Ange endast när känsliga data är aktiverade. |
message.type |
executor.process, message.send |
Typnamnet på meddelandet. |
message.content |
message.send |
Meddelandeinnehållet. Ange endast när känsliga data är aktiverade. |
message.source_id |
message.send |
ID för exekutorn som skickade meddelandet. |
message.target_id |
message.send |
ID:t för målexekutorn, om det anges. |
edge_group.type |
edge_group.process |
Typen av kantgrupp. |
edge_group.delivered |
edge_group.process |
Om meddelandet levererades (booleskt). |
edge_group.delivery_status |
edge_group.process |
Leveransresultatet (se Edge-gruppleveransstatus). |
error.type |
Alla intervall vid fel | Namnet på undantagstypen. |
| Attribute | Intervaller | Description |
|---|---|---|
workflow.id |
workflow.build, workflow.run |
Arbetsflödets unika identifierare. |
workflow.name |
workflow.run |
Namnet på arbetsflödet. |
workflow.description |
workflow.run |
Beskrivningen av arbetsflödet. |
workflow.definition |
workflow.build |
JSON-definitionen för arbetsflödesdiagrammet. |
workflow_builder.name |
workflow.build |
Namnet på arbetsflödesverktyget. |
workflow_builder.description |
workflow.build |
Beskrivningen av arbetsflödesverktyget. |
executor.id |
executor.process |
Den unika identifieraren för utföraren. |
executor.type |
executor.process |
Exekverarens typnamn. |
message.type |
executor.process, message.send |
Typnamnet på meddelandet. |
message.payload_type |
executor.process |
Datatypen för meddelandets nyttolast. |
message.destination_executor_id |
message.send |
ID:t för målexekutorn, om det anges. |
message.source_id |
edge_group.process |
ID:t för exekutorn som skickade meddelandet. |
message.target_id |
edge_group.process |
ID:t för målexekutorn, om det anges. |
edge_group.type |
edge_group.process |
Typen av kantgrupp. |
edge_group.id |
edge_group.process |
Den unika identifieraren för gränsgruppen. |
edge_group.delivered |
edge_group.process |
Om meddelandet levererades (booleskt). |
edge_group.delivery_status |
edge_group.process |
Leveransresultatet (se Edge-gruppleveransstatus). |
Span-händelser
Span-händelser är strukturerade loggposter som är kopplade till intervall, vilket ger en tidslinje över viktiga ögonblick inom varje intervall.
| Händelsenamn | Intervall | Description |
|---|---|---|
build.started |
workflow.build |
Genereras när byggprocessen börjar. |
build.validation_completed |
workflow.build |
Genereras när byggverifieringen godkänns. |
build.completed |
workflow.build |
Genereras när bygget har slutförts. |
build.error |
workflow.build |
Genereras när bygget misslyckas. |
session.started |
workflow.session |
Genereras när en arbetsflödessession börjar. |
session.completed |
workflow.session |
Genereras när en arbetsflödessession är klar. |
session.error |
workflow.session |
Genereras när en arbetsflödessession stöter på ett fel. |
workflow.started |
workflow_invoke |
Genereras när ett arbetsflödesanrop börjar. |
workflow.completed |
workflow_invoke |
Genereras när ett arbetsflödesanrop slutförs. |
workflow.error |
workflow_invoke |
Genereras när ett arbetsflödesanrop påträffar ett fel. |
| Händelsenamn | Omfång | Description |
|---|---|---|
build.started |
workflow.build |
Genereras när byggprocessen börjar. |
build.validation_completed |
workflow.build |
Genereras när byggverifieringen godkänns. |
build.completed |
workflow.build |
Genereras när bygget har slutförts. |
build.error |
workflow.build |
Genereras när bygget misslyckas. |
workflow.started |
workflow.run |
Genereras när en arbetsflödeskörning börjar. |
workflow.completed |
workflow.run |
Genereras när en arbetsflödeskörning slutförs. |
workflow.error |
workflow.run |
Genereras när en arbetsflödeskörning påträffar ett fel. |
Länkar mellan intervall
När en exekutor skickar ett meddelande till en annan exekutor skapas span message.send som underordnad executor.process span. Målexekutorintervallet executor.process är dock inte underordnat message.send intervallet eftersom körningen inte är kapslad. I stället är målexekutorintervallet executor.processlänkat till message.send källexekutorns intervall. Den här länken skapar en spårningsbar sökväg genom arbetsflödeskörningen utan att innebära en kapslad anropshierarki.
Samma länkningsmetod gäller för edge_group.process intervall, som är länkade till källintervallen message.send för kausalitetsspårning. Detta stöder inbyggda scenarier där flera källintervall bidrar till ett enda bearbetningsintervall.
Leveransstatus för edge-grupp
Bearbetningsspann för kantgrupp inkluderar leveransstatusattribut som visar resultatet av meddelanderoutning genom varje kantgrupp. Attributet edge_group.delivery_status är inställt på något av följande värden:
| Status | Description |
|---|---|
delivered |
Meddelandet levererades till målexekutorn. |
dropped type mismatch |
Målexekutorn kan inte hantera meddelandetypen. |
dropped target mismatch |
Meddelandet angav ett mål som inte matchar denna nod. |
dropped condition false |
Gränsroutningsvillkoret blev bedömt som falskt. |
exception |
Ett undantag inträffade under kantbearbetningen. |
buffered |
Meddelandet buffrades och låg i väntan på ytterligare meddelanden (fan-in). |
Det edge_group.delivered booleska attributet ger en snabb kontroll av om meddelandet har levererats.
Telemetrikonfiguration
Arbetsflödestelemetri kan aktiveras via WithOpenTelemetry tilläggsmetoden i arbetsflödesverktyget. Klassen WorkflowTelemetryOptions ger detaljerad kontroll över vilka intervall som genereras:
| Option | Standardinställning | Description |
|---|---|---|
EnableSensitiveData |
false |
Innehåller råa indata, utdata och meddelandeinnehåll i span-attribut. |
DisableWorkflowBuild |
false |
Inaktiverar workflow.build intervall. |
DisableWorkflowRun |
false |
Inaktiverar workflow.session- och workflow_invoke-spänningsintervall. |
DisableExecutorProcess |
false |
Inaktiverar executor.process span-element. |
DisableEdgeGroupProcess |
false |
Inaktiverar edge_group.process intervall. |
DisableMessageSend |
false |
Inaktiverar message.send intervall. |
Varning
Aktivering av känsliga data gör att innehållet i råa meddelanden, indata och utdata från utföraren inkluderas i telemetrin. Aktivera endast detta i säkra miljöer där telemetridata skyddas på rätt sätt.
Arbetsflödestelemetri aktiveras via den globala enable_instrumentation() funktionen. När instrumentation är aktiverat genereras alla arbetsflödesintervall automatiskt. Funktionen configure_otel_providers() kan användas för att konfigurera exportörer för spårningar, mått och loggar.
Varning
Granska konfigurationen av telemetripipelinen för att se till att känsliga data skyddas på rätt sätt när du exporterar spårningar.