Monitorowanie usługi Azure Functions

Azure Functions oferuje wbudowaną integrację z aplikacja systemu Azure Szczegółowe informacje do monitorowania funkcji. Ten artykuł zawiera omówienie możliwości monitorowania udostępnianych przez platformę Azure na potrzeby monitorowania Azure Functions.

Szczegółowe informacje aplikacji zbiera dane dzienników, wydajności i błędów. Dzięki automatycznemu wykrywaniu anomalii wydajności i zaawansowanym narzędziom analitycznym można łatwiej diagnozować problemy i lepiej zrozumieć, jak są używane funkcje. Te narzędzia zostały zaprojektowane w celu zapewnienia ciągłej poprawy wydajności i użyteczności funkcji. Można 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 Azure Functions, potrzebujesz prawidłowego klucza instrumentacji, aby połączyć aplikację funkcji z zasobem Szczegółowe informacje aplikacji. 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.

Cennik i limity Szczegółowe informacje aplikacji

Możesz wypróbować integrację aplikacji Szczegółowe informacje z Azure Functions bezpłatnie z limitem dziennym na ilość przetwarzanych danych bezpłatnie.

Jeśli włączysz opcję Aplikacje Szczegółowe informacje podczas programowania, możesz osiągnąć ten limit podczas testowania. Platforma Azure udostępnia portal i powiadomienia e-mail w przypadku zbliżania się do dziennego limitu. Jeśli przegapisz te alerty i osiągniesz limit, nowe dzienniki nie będą wyświetlane w zapytaniach Szczegółowe informacje aplikacji. Należy pamiętać 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ć przed tworzeniem 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 Szczegółowe informacje aplikacji 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).

Integracja Szczegółowe informacje aplikacji

Zazwyczaj podczas tworzenia aplikacji tworzy się wystąpienie aplikacji Szczegółowe informacje. W takim 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 parametrów połączenia Szczegółowe informacje aplikacji (APPLICATIONINSIGHTS_CONNECTION_STRING) zamiast klucza instrumentacji. Aby dowiedzieć się więcej, zobacz dokumentację APPLICATIONINSIGHTS_CONNECTION_STRING.

Zbieranie danych telemetrycznych

Po włączeniu integracji Szczegółowe informacje aplikacji dane telemetryczne są wysyłane do połączonego wystąpienia aplikacji 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 śladów.

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

LogLevel Kod Opis
Ślad 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.
Informacje 2 Dzienniki śledzące ogólny przepływ aplikacji. Te dzienniki powinny mieć długoterminową wartość.
Ostrzeżenie 3 Dzienniki, które podkreślają nietypowe lub nieoczekiwane zdarzenie w przepływie aplikacji, ale nie powodują zatrzymania wykonywania aplikacji.
Błąd 4 Dzienniki, które podkreślają, kiedy bieżący przepływ wykonywania został 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 lub 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 aplikacji Application Szczegółowe informacje.

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

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 za pośrednictwem zebranych danych. Ślady napisane z kodu 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ęzyku C#, JavaScript i Python można użyć zestawu SDK Szczegółowe informacje aplikacji do zapisywania niestandardowych danych telemetrycznych.

Zależności

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

  • Azure Cosmos DB
  • Azure Event Hubs
  • Azure Service Bus
  • Usługi Azure Storage (Blob, Queue i Table)

Żą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ładową mapę aplikacji funkcji wyzwalacza HTTP z powiązaniem wyjściowym usługi Queue Storage.

Application map with dependency

Zależności są zapisywane na Information poziomie. Jeśli filtrujesz pod adresem Warning lub powyżej, nie będą widoczne dane zależności. Ponadto automatyczne zbieranie zależności odbywa się w zakresie niebędącym użytkownikiem. 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 Szczegółowe informacje aplikacji specyficznych dla języka, aby zapisywać niestandardowe informacje o zależnościach w dziennikach. Aby zapoznać się z przykładem pisania zależności niestandardowych, zobacz jeden z następujących przykładów specyficznych dla języka:

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 zbierane z aplikacji funkcji są przechowywane w usłudze Application Szczegółowe informacje. W Azure Portal usługa Application Szczegółowe informacje udostępnia obszerny zestaw wizualizacji danych telemetrycznych. Możesz przechodzić do szczegółów dzienników błędów oraz wykonywać zapytania o zdarzenia i metryki. Aby dowiedzieć się więcej, w tym podstawowe przykłady wyświetlania zebranych danych i wykonywania względem ich zapytań, zobacz Analizowanie Azure Functions telemetrii 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 wykonania 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 usługą Application Szczegółowe informacje, możesz wyświetlać dane dziennika i inne metryki niemal w czasie rzeczywistym w 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 Azure Functions.

Dzienniki diagnostyczne

Ta funkcja jest w wersji zapoznawczej.

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żna 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 Azure Functions za pomocą dzienników usługi Azure Monitor.

Skalowanie dzienników kontrolera

Ta funkcja jest w wersji zapoznawczej.

Kontroler skalowania Azure Functions monitoruje wystąpienia hosta Azure Functions, na którym działa aplikacja. Ten kontroler podejmuje decyzje dotyczące tego, kiedy należy dodawać lub usuwać 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 magazynie obiektów blob 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 dzienniku zebranych przez usługę Application Szczegółowe informacje można również uzyskać dane dotyczące sposobu działania aplikacji funkcji z poziomu metryk usługi Azure Monitor. Aby dowiedzieć się więcej, zobacz Using Azure Monitor Metric with Azure Functions (Używanie metryki usługi Azure Monitor z Azure Functions).

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 GitHub.

Następne kroki

Więcej informacji można znaleźć w następujących zasobach: