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.
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:
- Log custom telemetry in C# functions (Rejestrowanie telemetrii niestandardowej w funkcjach języka C#)
- Log custom telemetry in JavaScript functions (Rejestrowanie telemetrii niestandardowej w funkcjach języka JavaScript)
- Rejestrowanie niestandardowych danych telemetrycznych w funkcjach języka Python
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: