Monitorowanie wykonań w Azure Functions

Usługa Azure Functions oferuje wbudowaną integrację z aplikacja systemu Azure Szczegółowe informacje w celu monitorowania wykonań funkcji. Ten artykuł zawiera omówienie możliwości monitorowania udostępnianych przez platformę Azure na potrzeby monitorowania usługi Azure Functions.

Usługa Application Insights zbiera dane dzienników, wydajności i błędów. Automatycznie wykrywając anomalie wydajności i korzystając z zaawansowanych narzędzi analitycznych, można łatwiej diagnozować problemy i lepiej zrozumieć sposób korzystania z funkcji. Te narzędzia są przeznaczone do ciągłego zwiększania wydajności i użyteczności funkcji. Możesz nawet użyć Szczegółowe informacje aplikacji podczas tworzenia lokalnego projektu aplikacji funkcji. Aby uzyskać więcej informacji, zobacz Co to jest aplikacja Szczegółowe informacje?.

Ponieważ instrumentacja Szczegółowe informacje aplikacji jest wbudowana w usługę Azure Functions, potrzebujesz prawidłowego klucza instrumentacji, aby połączyć aplikację funkcji z zasobem application Szczegółowe informacje. Klucz instrumentacji jest dodawany do ustawień aplikacji podczas tworzenia zasobu aplikacji funkcji na platformie Azure. Jeśli aplikacja funkcji nie ma jeszcze tego klucza, możesz ją ustawić ręcznie.

Możesz również monitorować samą aplikację funkcji przy użyciu usługi Azure Monitor. Aby dowiedzieć się więcej, zobacz Monitorowanie usługi Azure Functions za pomocą usługi Azure Monitor.

Cennik i limity Szczegółowe informacje aplikacji

Możesz wypróbować integrację aplikacji Szczegółowe informacje z usługą Azure Functions, aby bezpłatnie korzystać z dziennego limitu ilości przetwarzanych danych.

Jeśli włączysz Szczegółowe informacje aplikacji podczas programowania, możesz osiągnąć ten limit podczas testowania. Platforma Azure udostępnia portal i powiadomienia e-mail, gdy zbliżasz się do dziennego limitu. Jeśli przegapisz te alerty i osiągniesz limit, nowe dzienniki nie będą wyświetlane w zapytaniach usługi Application Szczegółowe informacje. Pamiętaj o limicie, aby uniknąć niepotrzebnego czasu rozwiązywania problemów. Aby uzyskać więcej informacji, zobacz Rozliczenia Szczegółowe informacje aplikacji.

Ważne

Aplikacja Szczegółowe informacje ma funkcję próbkowania, która może chronić cię przed generowaniem zbyt dużej ilości danych telemetrycznych na ukończonych wykonaniach w godzinach szczytowego obciążenia. Próbkowanie jest domyślnie włączone. Jeśli wydaje się, że brakuje danych, może być konieczne dostosowanie ustawień próbkowania w celu dopasowania ich do konkretnego scenariusza monitorowania. Aby dowiedzieć się więcej, zobacz Konfigurowanie próbkowania.

Pełna lista funkcji usługi Application Szczegółowe informacje dostępnych dla aplikacji funkcji jest szczegółowa w temacie Application Szczegółowe informacje for Azure Functions supported features (Funkcje obsługiwane przez usługę Application Szczegółowe informacje for Azure Functions).

Integracja z usługą Application Insights

Zazwyczaj podczas tworzenia aplikacji funkcji tworzysz wystąpienie aplikacji Szczegółowe informacje. W tym przypadku klucz instrumentacji wymagany do integracji jest już ustawiony jako ustawienie aplikacji o nazwie APPINSIGHTS_INSTRUMENTATIONKEY. Jeśli z jakiegoś powodu aplikacja funkcji nie ma zestawu kluczy instrumentacji, musisz włączyć integrację aplikacji Szczegółowe informacje.

Ważne

Suwerenne chmury, takie jak Azure Government, wymagają użycia Szczegółowe informacje parametry połączenia aplikacji (APPLICATIONINSIGHTS_CONNECTION_STRING) zamiast klucza instrumentacji. Aby dowiedzieć się więcej, zobacz dokumentację APPLICATIONINSIGHTS_CONNECTION_STRING.

W poniższej tabeli przedstawiono obsługiwane funkcje usługi Application Szczegółowe informacje dostępne do monitorowania aplikacji funkcji:

Wersja środowiska uruchomieniowego usługi Azure Functions 1.x 2.x+
Automatyczna kolekcja
•Żądania
•Wyjątki
• Liczniki wydajności
•Zależności
   — HTTP
   — Service Bus
   — Event Hubs
   — SQL*
Obsługiwane funkcje
• QuickPulse/LiveMetrics Tak Tak
   — Bezpieczny kanał sterowania Tak
•Pobierania próbek Tak Tak
•Bicie serca Tak
Korelacja
• Service Bus Tak
• Event Hubs Tak
Konfigurowalne
W pełni konfigurowalny Tak

* Aby włączyć kolekcję tekstu ciągu zapytania SQL, zobacz Włączanie zbierania zapytań SQL.

Zbieranie danych telemetrycznych

Po włączeniu integracji Szczegółowe informacje aplikacji dane telemetryczne są wysyłane do połączonego wystąpienia usługi Application Szczegółowe informacje. Te dane obejmują dzienniki generowane przez hosta usługi Functions, ślady zapisane na podstawie kodu funkcji i dane wydajności.

Uwaga

Oprócz danych z funkcji i hosta usługi Functions można również zbierać dane z kontrolera skalowania usługi Functions.

Poziomy i kategorie dzienników

Podczas pisania śladów z kodu aplikacji należy przypisać poziom dziennika do śladów. Poziomy dzienników umożliwiają ograniczenie ilości danych zebranych ze śledzenia.

Poziom dziennika jest przypisywany do każdego dziennika. Wartość jest liczbą całkowitą wskazującą względną ważność:

PoziomRejestrowania Kod opis
Śledzenie 0 Dzienniki zawierające najbardziej szczegółowe komunikaty. Te komunikaty mogą zawierać poufne dane aplikacji. Te komunikaty są domyślnie wyłączone i nigdy nie powinny być włączone w środowisku produkcyjnym.
Debugowanie 1 Dzienniki używane do interaktywnego badania podczas opracowywania. Te dzienniki powinny zawierać przede wszystkim informacje przydatne do debugowania i nie mają długoterminowej wartości.
Informacja 2 Dzienniki śledzące ogólny przepływ aplikacji. Te dzienniki powinny mieć wartość długoterminową.
Ostrzeżenie 3 Dzienniki, które podkreślają nietypowe lub nieoczekiwane zdarzenie w przepływie aplikacji, ale nie powodują zatrzymania wykonywania aplikacji.
Błąd 100 Dzienniki, które podkreślają, kiedy bieżący przepływ wykonywania jest zatrzymany z powodu awarii. Te błędy powinny wskazywać błąd w bieżącym działaniu, a nie awarii całej aplikacji.
Krytyczne 5 Dzienniki opisujące nieodwracalną awarię aplikacji lub systemu albo katastrofalne awarie, które wymagają natychmiastowej uwagi.
Brak 6 Wyłącza rejestrowanie dla określonej kategorii.

Konfiguracja pliku host.json określa, ile rejestrowania aplikacja funkcji wysyła do usługi Application Szczegółowe informacje.

Aby dowiedzieć się więcej na temat poziomów dzienników, zobacz Konfigurowanie poziomów dziennika.

Przypisując zarejestrowane elementy do kategorii, masz większą kontrolę nad telemetrią wygenerowaną z określonych źródeł w aplikacji funkcji. Kategorie ułatwiają uruchamianie analiz na zebranych danych. Ślady zapisane w kodzie funkcji są przypisywane do poszczególnych kategorii na podstawie nazwy funkcji. Aby dowiedzieć się więcej o kategoriach, zobacz Konfigurowanie kategorii.

Niestandardowe dane telemetryczne

W językach C#, JavaScript i Python można użyć zestawu SDK usługi Application Szczegółowe informacje do zapisywania niestandardowych danych telemetrycznych.

Zależności

Począwszy od wersji 2.x usługi Functions, aplikacja Szczegółowe informacje automatycznie zbiera dane dotyczące zależności dla powiązań korzystających z niektórych zestawów SDK klienta. Śledzenie rozproszone i śledzenie zależności Szczegółowe informacje aplikacji nie są obecnie obsługiwane w przypadku aplikacji języka C# działających w izolowanym procesie roboczym. Aplikacja Szczegółowe informacje zbiera dane na następujących zależnościach:

  • Azure Cosmos DB
  • Azure Event Hubs
  • Azure Service Bus
  • Usługi Azure Storage (obiekty blob, kolejki i tabele)

Żądania HTTP i wywołania bazy danych używane SqlClient również są przechwytywane. Aby uzyskać pełną listę zależności obsługiwanych przez usługę Application Szczegółowe informacje, zobacz automatycznie śledzone zależności.

Aplikacja Szczegółowe informacje generuje mapę aplikacji zebranych danych zależności. Poniżej przedstawiono przykład mapy aplikacji funkcji wyzwalacza HTTP z powiązaniem wyjściowym usługi Queue Storage.

Mapa aplikacji z zależnością

Zależności są zapisywane na Information poziomie. W przypadku filtrowania na Warning poziomie lub powyżej nie będą widoczne dane zależności. Ponadto automatyczne zbieranie zależności odbywa się w zakresie innych niż użytkownik. Aby przechwycić dane zależności, upewnij się, że poziom jest ustawiony na co najmniej Information poza zakresem użytkownika (Function.<YOUR_FUNCTION_NAME>.User) na hoście.

Oprócz automatycznego zbierania danych zależności można również użyć jednego z zestawów SDK aplikacji specyficznych dla języka Szczegółowe informacje, aby zapisywać niestandardowe informacje o zależnościach w dziennikach. Przykładowy sposób pisania niestandardowych zależności można znaleźć w jednym z następujących przykładów specyficznych dla języka:

Liczniki wydajności

Automatyczne zbieranie liczników wydajności nie jest obsługiwane w przypadku uruchamiania w systemie Linux.

Zapisywanie w dziennikach

Sposób zapisywania w dziennikach i używanych interfejsów API zależy od języka projektu aplikacji funkcji.
Aby dowiedzieć się więcej na temat pisania dzienników z funkcji, zobacz przewodnik dla deweloperów dla danego języka.

Analizowanie danych

Domyślnie dane zebrane z aplikacji funkcji są przechowywane w Szczegółowe informacje Aplikacji. W witrynie Azure Portal aplikacja Szczegółowe informacje udostępnia obszerny zestaw wizualizacji danych telemetrycznych. Możesz przejść do szczegółów dzienników błędów i zapytań dotyczących zdarzeń i metryk. Aby dowiedzieć się więcej, w tym podstawowe przykłady wyświetlania zebranych danych i wykonywania zapytań o nie, zobacz Analizowanie danych telemetrycznych usługi Azure Functions w usłudze Application Szczegółowe informacje.

Dzienniki przesyłania strumieniowego

Podczas tworzenia aplikacji często chcesz zobaczyć, co jest zapisywane w dziennikach niemal w czasie rzeczywistym podczas uruchamiania na platformie Azure.

Istnieją dwa sposoby wyświetlania strumienia danych dziennika generowanych przez wykonywanie funkcji.

  • Wbudowane przesyłanie strumieniowe dzienników: platforma App Service umożliwia wyświetlanie strumienia plików dziennika aplikacji. Ten strumień jest odpowiednikiem danych wyjściowych widocznych podczas debugowania funkcji podczas programowania lokalnego i korzystania z karty Test w portalu. Zostaną wyświetlone wszystkie informacje oparte na dzienniku. Aby uzyskać więcej informacji, zobacz Stream logs (Dzienniki usługi Stream). Ta metoda przesyłania strumieniowego obsługuje tylko jedno wystąpienie i nie może być używana z aplikacją działającą w systemie Linux w planie Zużycie.

  • Transmisja strumieniowa metryk na żywo: gdy aplikacja funkcji jest połączona z aplikacją Szczegółowe informacje, możesz wyświetlać dane dziennika i inne metryki niemal w czasie rzeczywistym w witrynie Azure Portal przy użyciu strumienia metryk na żywo. Użyj tej metody podczas monitorowania funkcji działających w wielu wystąpieniach lub w systemie Linux w planie Zużycie. Ta metoda używa przykładowych danych.

Strumienie dzienników można wyświetlać zarówno w portalu, jak i w większości lokalnych środowisk programistycznych. Aby dowiedzieć się, jak włączyć strumienie dzienników, zobacz Włączanie dzienników wykonywania przesyłania strumieniowego w usłudze Azure Functions.

Dzienniki diagnostyczne

Szczegółowe informacje aplikacji umożliwia eksportowanie danych telemetrycznych do długoterminowego magazynu lub innych usług analizy.

Ponieważ usługa Functions integruje się również z usługą Azure Monitor, możesz również użyć ustawień diagnostycznych do wysyłania danych telemetrycznych do różnych miejsc docelowych, w tym dzienników usługi Azure Monitor. Aby dowiedzieć się więcej, zobacz Monitorowanie usługi Azure Functions za pomocą dzienników usługi Azure Monitor.

Dzienniki kontrolera skalowania

Kontroler skalowania usługi Azure Functions monitoruje wystąpienia hosta usługi Azure Functions, na którym działa aplikacja. Ten kontroler podejmuje decyzje dotyczące tego, kiedy dodać lub usunąć wystąpienia na podstawie bieżącej wydajności. Kontroler skalowania może emitować dzienniki do aplikacji Szczegółowe informacje, aby lepiej zrozumieć decyzje podejmowane przez kontroler skalowania dla aplikacji funkcji. Wygenerowane dzienniki można również przechowywać w usłudze Blob Storage na potrzeby analizy przez inną usługę.

Aby włączyć tę funkcję, należy dodać ustawienie aplikacji o nazwie SCALE_CONTROLLER_LOGGING_ENABLED do ustawień aplikacji funkcji. Aby dowiedzieć się, jak to zrobić, zobacz Konfigurowanie dzienników kontrolera skalowania.

Metryki usługi Azure Monitor

Oprócz danych telemetrycznych opartych na dziennikach zebranych przez aplikację Szczegółowe informacje można również uzyskać dane dotyczące sposobu działania aplikacji funkcji z metryk usługi Azure Monitor. Aby dowiedzieć się więcej, zobacz Monitorowanie za pomocą usługi Azure Monitor.

Zgłaszanie problemów

Aby zgłosić problem z integracją usługi Application Szczegółowe informacje w usłudze Functions lub aby zgłosić sugestię lub żądanie, utwórz problem w usłudze GitHub.

Następne kroki

Aby uzyskać więcej informacji, zobacz następujące zasoby: