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.
Obserwowalność dostarcza wglądu w stan wewnętrzny i zachowanie przepływów pracy w trakcie ich wykonywania. Obejmuje to rejestrowanie, metryki i funkcje śledzenia, które ułatwiają monitorowanie i debugowanie przepływów pracy.
Tip
Obserwacja jest funkcją obejmującą całą platformę i nie jest ograniczona do przepływów pracy. Aby uzyskać więcej informacji, zobacz Obserwowanie.
Oprócz standardowej telemetrii GenAI przepływy pracy platformy agentów emitują dodatkowe zakresy, dzienniki i metryki w celu zapewnienia dokładniejszego wglądu w wykonywanie przepływu pracy. Te funkcje obserwacji pomagają deweloperom zrozumieć przepływ komunikatów, wydajność funkcji wykonawczych i wszelkie błędy, które mogą wystąpić.
Włącz możliwość obserwowania
Zapoznaj się z artykułem Włączanie możliwości obserwacji , aby uzyskać instrukcje dotyczące włączania możliwości obserwowania w aplikacjach.
Zapoznaj się z artykułem Włączanie możliwości obserwacji , aby uzyskać instrukcje dotyczące włączania możliwości obserwowania w aplikacjach.
Zasięgi przepływu pracy
Podczas wykonywania przepływu pracy emitowane są następujące zakresy:
| Nazwa zakresu | Opis |
|---|---|
workflow.build |
Emitowane dla każdej kompilacji przepływu pracy. |
workflow.session |
Zakres zewnętrzny reprezentujący cały okres istnienia wykonywania przepływu pracy od początku do momentu zatrzymania lub błędu. |
workflow_invoke |
Emitowane dla każdego cyklu wejściowego do zatrzymania w ramach sesji przepływu pracy. |
executor.process {executor_id} |
Emitowane dla każdego wykonawcy przetwarzającego komunikat. Identyfikator wykonawcy jest dołączany do nazwy zakresu. |
edge_group.process |
Generowany dla każdej grupy krawędzi podczas przetwarzania wiadomości. |
message.send |
Emitowane dla każdego komunikatu wysyłanego od jednego wykonawcy do innego wykonawcy. |
Podczas wykonywania przepływu pracy emitowane są następujące zakresy:
| Nazwa zakresu | Opis |
|---|---|
workflow.build |
Emitowane dla każdej kompilacji przepływu pracy. |
workflow.run |
Emitowane dla każdego wykonania procesu. |
executor.process {executor_id} |
Emitowane dla każdego wykonawcy przetwarzającego komunikat. Identyfikator funkcji wykonawczej jest dołączany do nazwy zakresu. |
edge_group.process {edge_group_type} |
Emitowane dla każdej grupy krawędzi podczas przetwarzania komunikatu. Typ grupy krawędzi jest dodawany do nazwy obszaru. |
message.send |
Emitowane dla każdej wiadomości wysyłanej z jednego wykonawcy do innego wykonawcy. |
Atrybuty zakresów
Span'y niosą atrybuty, które zapewniają dodatkowy kontekst dotyczący procesu operacji. Następujące atrybuty są ustawiane w zakresach przepływu pracy:
| Attribute | Zakresy | Opis |
|---|---|---|
workflow.id |
workflow.build, workflow.session |
Unikatowy identyfikator przepływu pracy. |
workflow.name |
workflow.session |
Nazwa przepływu pracy. |
workflow.description |
workflow.session |
Opis przepływu pracy. |
workflow.definition |
workflow.build |
Definicja JSON grafu przepływu pracy. |
session.id |
workflow.session |
Unikatowy identyfikator sesji. |
executor.id |
executor.process |
Unikatowy identyfikator wykonawcy. |
executor.type |
executor.process |
Nazwa typu wykonawcy. |
executor.input |
executor.process |
Komunikat wejściowy. Ustawiaj tylko wtedy, gdy są włączone poufne dane. |
executor.output |
executor.process |
Dane wyjściowe funkcji wykonawczej. Ustawiaj tylko wtedy, gdy są włączone poufne dane. |
message.type |
executor.process, message.send |
Nazwa typu wiadomości. |
message.content |
message.send |
Zawartość wiadomości. Ustawiaj tylko wtedy, gdy są włączone poufne dane. |
message.source_id |
message.send |
Identyfikator wykonawcy, który wysłał wiadomość. |
message.target_id |
message.send |
Identyfikator wykonawcy celu, jeśli zostanie określony. |
edge_group.type |
edge_group.process |
Typ grupy krawędzi. |
edge_group.delivered |
edge_group.process |
Czy wiadomość została dostarczona (typ logiczny). |
edge_group.delivery_status |
edge_group.process |
Wynik dostawy (zobacz Stan dostarczania grupy usługi Edge). |
error.type |
Dowolny zakres błędu | Nazwa typu wyjątku. |
| Attribute | Zakresy | Opis |
|---|---|---|
workflow.id |
workflow.build, workflow.run |
Unikatowy identyfikator przepływu pracy. |
workflow.name |
workflow.run |
Nazwa przepływu pracy. |
workflow.description |
workflow.run |
Opis przepływu pracy. |
workflow.definition |
workflow.build |
Definicja JSON grafu przepływu pracy. |
workflow_builder.name |
workflow.build |
Nazwa konstruktora przepływu pracy. |
workflow_builder.description |
workflow.build |
Opis konstruktora przepływu pracy. |
executor.id |
executor.process |
Unikalny identyfikator wykonawcy. |
executor.type |
executor.process |
Nazwa typu egzekutora. |
message.type |
executor.process, message.send |
Nazwa typu wiadomości. |
message.payload_type |
executor.process |
Typ danych ładunku komunikatu. |
message.destination_executor_id |
message.send |
Identyfikator wykonawcy docelowego, jeśli zostanie określony. |
message.source_id |
edge_group.process |
Identyfikator wykonawcy, który wysłał komunikat. |
message.target_id |
edge_group.process |
Identyfikator wykonawcy obiektu docelowego, jeśli zostanie określony. |
edge_group.type |
edge_group.process |
Typ grupy krawędzi. |
edge_group.id |
edge_group.process |
Unikatowy identyfikator grupy brzegowej. |
edge_group.delivered |
edge_group.process |
Czy wiadomość została dostarczona (wartość logiczna). |
edge_group.delivery_status |
edge_group.process |
Wynik dostawy (zobacz Stan dostarczania grupy usługi Edge). |
Rozpiętość zdarzeń
Zdarzenia spanów to strukturalne wpisy w dzienniku dołączone do spanów, zapewniające chronologię kluczowych momentów w każdym span.
| Nazwa zdarzenia | Zakresy | Opis |
|---|---|---|
build.started |
workflow.build |
Emitowane po rozpoczęciu procesu kompilacji. |
build.validation_completed |
workflow.build |
Emitowane, gdy walidacja kompilacji zakończy się pomyślnie. |
build.completed |
workflow.build |
Emitowane po pomyślnym zakończeniu kompilacji. |
build.error |
workflow.build |
Emitowane w przypadku niepowodzenia kompilacji. |
session.started |
workflow.session |
Emitowane po rozpoczęciu sesji przepływu pracy. |
session.completed |
workflow.session |
Emitowane po zakończeniu sesji przepływu pracy. |
session.error |
workflow.session |
Emitowane, gdy sesja przepływu pracy napotka błąd. |
workflow.started |
workflow_invoke |
Emitowane po rozpoczęciu wywołania przepływu pracy. |
workflow.completed |
workflow_invoke |
Emitowany jest sygnał po zakończeniu wywołania przepływu pracy. |
workflow.error |
workflow_invoke |
Emitowane, gdy wywołanie przepływu pracy napotka błąd. |
| Nazwa zdarzenia | Zakresy | Opis |
|---|---|---|
build.started |
workflow.build |
Emitowane po rozpoczęciu procesu kompilacji. |
build.validation_completed |
workflow.build |
Emitowane po pomyślnej walidacji kompilacji. |
build.completed |
workflow.build |
Emitowane po pomyślnym zakończeniu kompilacji. |
build.error |
workflow.build |
Emitowane w przypadku niepowodzenia kompilacji. |
workflow.started |
workflow.run |
Emitowane po rozpoczęciu uruchomienia przepływu pracy. |
workflow.completed |
workflow.run |
Emitowane po zakończeniu przebiegu przepływu pracy. |
workflow.error |
workflow.run |
Emitowany jest sygnał, gdy uruchomienie przepływu pracy napotka błąd. |
Łącza między zakresami
Gdy wykonawca wysyła komunikat do innego wykonawcy, message.send zakres tworzony jest jako element podrzędny executor.process zakresu. Jednak zakres docelowego wykonawcy
To samo podejście łączące stosuje się do edge_group.process segmentów, które są powiązane z segmentami źródłowymi message.send na potrzeby śledzenia przyczynowości. Obsługuje to scenariusze fan-in, w których wiele zakresów źródłowych przyczynia się do jednego zakresu przetwarzania.
Status dostawy grupy Edge
Zakresy przetwarzania grup brzegowych zawierają atrybuty stanu dostarczania, które wskazują wynik trasowania wiadomości przez każdą grupę brzegową. Atrybut edge_group.delivery_status jest ustawiony na jedną z następujących wartości:
| Status | Opis |
|---|---|
delivered |
Wiadomość została dostarczona do docelowego podmiotu wykonawczego. |
dropped type mismatch |
Funkcja wykonawcza obiektu docelowego nie może obsłużyć typu komunikatu. |
dropped target mismatch |
Wiadomość określiła cel, który nie odpowiada tej krawędzi. |
dropped condition false |
Warunek routingu brzegowego jest obliczany na wartość false. |
exception |
Wystąpił wyjątek podczas przetwarzania krawędzi. |
buffered |
Komunikat został buforowany, czekając na dodatkowe komunikaty (fan-in). |
Atrybut edge_group.delivered logiczny zapewnia szybkie sprawdzenie, czy komunikat został pomyślnie dostarczony.
Konfiguracja telemetrii
Telemetrię przepływu pracy można włączyć za pomocą metody rozszerzenia WithOpenTelemetry w kreatorze przepływu pracy. Klasa WorkflowTelemetryOptions zapewnia szczegółową kontrolę nad tym, które zakresy są emitowane:
| Option | Wartość domyślna | Opis |
|---|---|---|
EnableSensitiveData |
false |
Zawiera nieprzetworzone dane wejściowe, dane wyjściowe i zawartość komunikatów w atrybutach zakresu. |
DisableWorkflowBuild |
false |
Wyłącza zakresy workflow.build . |
DisableWorkflowRun |
false |
Wyłącza zakresy workflow.session i workflow_invoke. |
DisableExecutorProcess |
false |
Wyłącza zakresy executor.process . |
DisableEdgeGroupProcess |
false |
Wyłącza zakresy edge_group.process . |
DisableMessageSend |
false |
Wyłącza zakresy message.send . |
Ostrzeżenie
Włączenie poufnych danych powoduje, że nieprzetworzona zawartość komunikatów, dane wejściowe funkcji wykonawczej i dane wyjściowe funkcji wykonawczej mają być uwzględniane w telemetrii. Włącz to tylko w bezpiecznych środowiskach, w których dane telemetryczne są odpowiednio chronione.
Telemetria przepływu pracy jest włączona za pośrednictwem funkcji globalnej enable_instrumentation() . Po włączeniu instrumentacji wszystkie zakresy przepływu pracy są emitowane automatycznie. Funkcja configure_otel_providers() może służyć do konfigurowania eksporterów do śladów, metryk i dzienników.
Ostrzeżenie
Przejrzyj konfigurację potoku telemetrii, aby upewnić się, że poufne dane są odpowiednio chronione podczas eksportowania śladów.