Monitorování spuštění v Azure Functions

Azure Functions nabízí integrovanou integraci s Aplikace Azure Insights pro monitorování provádění funkcí. Tento článek obsahuje přehled možností monitorování, které Azure poskytuje pro monitorování Azure Functions.

Application Insights shromažďuje data protokolů, výkonu a chyb. Díky automatickému zjišťování anomálií výkonu a použití výkonných analytických nástrojů můžete snadněji diagnostikovat problémy a lépe porozumět tomu, jak se vaše funkce používají. Tyto nástroje jsou navržené tak, aby vám pomohly neustále zlepšovat výkon a použitelnost vašich funkcí. Application Insights můžete dokonce použít při vývoji projektu místní aplikace funkcí. Další informace najdete v tématu Co je Application Insights?.

Vzhledem k tomu, že instrumentace Application Insights je integrovaná do Azure Functions, potřebujete platný instrumentační klíč pro připojení vaší aplikace funkcí k prostředku Application Insights. Instrumentační klíč se přidá do nastavení aplikace při vytváření prostředku aplikace funkcí v Azure. Pokud vaše aplikace funkcí tento klíč ještě nemá, můžete ho nastavit ručně.

Pomocí služby Azure Monitor můžete také monitorovat samotnou aplikaci funkcí. Další informace najdete v tématu Monitorování Azure Functions pomocí Azure Monitoru.

Ceny a omezení Application Insights

Bezplatnou integraci Application Insights s Azure Functions si můžete vyzkoušet s denním limitem, kolik dat se bezplatně zpracuje.

Pokud povolíte Application Insights během vývoje, můžete během testování tohoto limitu narazit. Azure poskytuje portálová a e-mailová oznámení, když se blížíte dennímu limitu. Pokud tato upozornění vynecháte a dosáhnete limitu, nové protokoly se v dotazech Application Insights nezobrazí. Mějte na paměti limit, abyste se vyhnuli zbytečnému odstraňování potíží. Další informace najdete v tématu Fakturace Application Insights.

Důležité

Application Insights má funkci vzorkování , která vás může chránit před vytvářením příliš velkého množství telemetrických dat při dokončených spuštěních v době zatížení ve špičce. Vzorkování je ve výchozím nastavení povolené. Pokud se zdá, že vám chybí data, možná budete muset upravit nastavení vzorkování tak, aby vyhovovalo vašemu konkrétnímu scénáři monitorování. Další informace najdete v tématu Konfigurace vzorkování.

Úplný seznam funkcí Application Insights dostupných pro vaši aplikaci funkcí najdete v tématu Application Insights, kde najdete Azure Functions podporovaných funkcí.

Integrace Application Insights

Instanci Application Insights obvykle vytvoříte při vytváření aplikace funkcí. V tomto případě je instrumentační klíč vyžadovaný pro integraci již nastavený jako nastavení aplikace s názvem APPINSIGHTS_INSTRUMENTATIONKEY. Pokud vaše aplikace funkcí z nějakého důvodu nemá nastavený instrumentační klíč, musíte povolit integraci Application Insights.

Důležité

Suverénní cloudy, jako je Azure Government, vyžadují místo instrumentačního klíče použití připojovacího řetězce Application Insights (APPLICATIONINSIGHTS_CONNECTION_STRING). Další informace najdete v referenčních informacích k APPLICATIONINSIGHTS_CONNECTION_STRING.

Následující tabulka podrobně popisuje podporované funkce Application Insights, které jsou k dispozici pro monitorování aplikací funkcí:

Azure Functions verze modulu runtime 1.x 2.x+
Automatické shromažďování
•Požadavky
•Výjimky
• Čítače výkonu
•Závislosti
   — HTTP
   — Service Bus
   — Event Hubs
   — SQL*
Podporované funkce
• QuickPulse/LiveMetrics Yes Yes
   — Zabezpečený řídicí kanál Yes
•Odběru vzorků Yes Yes
• Prezenčních signálů Yes
Korelace
• Service Bus Yes
• Event Hubs Yes
Konfigurovatelné
Plně konfigurovatelné Yes

* Pokud chcete povolit kolekci textu řetězce dotazu SQL, přečtěte si téma Povolení kolekce dotazů SQL.

Shromažďování telemetrických dat

S povolenou integrací Application Insights se telemetrická data odesílají do připojené instance Application Insights. Tato data zahrnují protokoly vygenerované hostitelem functions, trasování zapsaná z kódu funkcí a údaje o výkonu.

Poznámka

Kromě dat z vašich funkcí a hostitele Functions můžete také shromažďovat data z kontroleru škálování functions.

Úrovně a kategorie protokolů

Při zápisu trasování z kódu aplikace byste měli trasování přiřadit úroveň protokolu. Úrovně protokolu poskytují způsob, jak omezit množství dat shromažďovaných z trasování.

Každému protokolu je přiřazena úroveň protokolu . Hodnota je celé číslo, které označuje relativní důležitost:

LogLevel Kód Description
Trasování 0 Protokoly, které obsahují nejpodrobnější zprávy. Tyto zprávy můžou obsahovat citlivá data aplikací. Tyto zprávy jsou ve výchozím nastavení zakázané a nikdy by neměly být povoleny v produkčním prostředí.
Ladění 1 Protokoly, které se používají k interaktivnímu zkoumání během vývoje. Tyto protokoly by měly primárně obsahovat informace užitečné pro ladění a neměly by mít dlouhodobou hodnotu.
Informace 2 Protokoly, které sledují obecný tok aplikace. Tyto protokoly by měly mít dlouhodobou hodnotu.
Upozornění 3 Protokoly, které zvýrazňují neobvyklou nebo neočekávanou událost v toku aplikace, ale jinak nezpůsobí zastavení provádění aplikace.
Chyba 4 Protokoly, které zvýrazňují, kdy je aktuální tok provádění zastaven z důvodu selhání. Tyto chyby by měly znamenat selhání v aktuální aktivitě, nikoli selhání celé aplikace.
Kritické 5 Protokoly, které popisují neopravitelné selhání aplikace nebo systému nebo katastrofické selhání, které vyžaduje okamžitou pozornost.
Žádné 6 Zakáže protokolování pro zadanou kategorii.

Konfigurace souboru host.json určuje, kolik protokolování aplikace funkcí odesílá do Application Insights.

Další informace o úrovních protokolu najdete v tématu Konfigurace úrovní protokolu.

Přiřazením zaprotokolovaných položek ke kategorii získáte větší kontrolu nad telemetrií vygenerovanou z konkrétních zdrojů v aplikaci funkcí. Kategorie usnadňují spouštění analýz shromážděných dat. Trasování napsaná z kódu funkce se přiřadí k jednotlivým kategoriím na základě názvu funkce. Další informace o kategoriích najdete v tématu Konfigurace kategorií.

Vlastní telemetrická data

V jazycích C#, JavaScript a Python můžete k zápisu vlastních telemetrických dat použít sadu Application Insights SDK.

Závislosti

Od verze 2.x služby Functions služba Application Insights automaticky shromažďuje data o závislostech pro vazby, které používají určité klientské sady SDK. Distribuované trasování a sledování závislostí Application Insights se v současné době nepodporuje pro aplikace C# spuštěné v izolovaném pracovním procesu. Application Insights shromažďuje data o následujících závislostech:

  • Azure Cosmos DB
  • Azure Event Hubs
  • Azure Service Bus
  • Služby Azure Storage (Blob, Queue a Table)

Zachytávají se také požadavky HTTP a volání databáze pomocí SqlClient metody . Úplný seznam závislostí podporovaných službou Application Insights najdete v tématu automaticky sledované závislosti.

Application Insights vygeneruje mapu aplikace se shromážděnými daty závislostí. Následuje příklad mapy aplikace funkce triggeru HTTP s výstupní vazbou Queue Storage.

Mapa aplikace se závislostmi

Závislosti se zapisují na Information úrovni . Pokud filtrujete na Warning nebo nad, data závislostí se nezobrazí. Automatické shromažďování závislostí probíhá také v oboru, který není uživatelem. Pokud chcete zachytávat data závislostí, ujistěte se, že je úroveň nastavená alespoň Information mimo obor uživatele (Function.<YOUR_FUNCTION_NAME>.User) ve vašem hostiteli.

Kromě automatického shromažďování dat závislostí můžete k zápisu informací o vlastních závislostech do protokolů použít také jednu ze sad Application Insights SDK pro konkrétní jazyk. Příklad, jak psát vlastní závislosti, najdete v jednom z následujících příkladů specifických pro jazyk:

Čítače výkonu

Automatické shromažďování čítačů výkonu se při spuštění v Linuxu nepodporuje.

Zápis do protokolů

Způsob zápisu do protokolů a rozhraní API, která používáte, závisí na jazyce projektu aplikace funkcí.
Další informace o zápisu protokolů z funkcí najdete v příručce pro vývojáře pro váš jazyk.

Analýza dat

Ve výchozím nastavení se data shromážděná z vaší aplikace funkcí ukládají do Application Insights. V Azure Portal poskytuje Application Insights rozsáhlou sadu vizualizací vašich telemetrických dat. Můžete přejít k podrobnostem protokolů chyb, událostem dotazů a metrikám. Další informace, včetně základních příkladů zobrazení a dotazování shromážděných dat, najdete v tématu Analýza Azure Functions telemetrie v Application Insights.

Protokoly streamování

Při vývoji aplikace často chcete při spuštění v Azure vidět, co se zapisuje do protokolů téměř v reálném čase.

Existují dva způsoby, jak zobrazit stream dat protokolu generovaných spouštěním funkcí.

  • Integrované streamování protokolů: platforma App Service umožňuje zobrazit stream souborů protokolů aplikací. Tento datový proud je ekvivalentem výstupu, který se zobrazí při ladění funkcí během místního vývoje a při použití karty Test na portálu. Zobrazí se všechny informace založené na protokolu. Další informace najdete v tématu Protokoly streamování. Tato metoda streamování podporuje jenom jednu instanci a nedá se použít s aplikací spuštěnou v Linuxu v plánu Consumption.

  • Live Metrics Stream: Když je vaše aplikace funkcí připojená k Application Insights, můžete zobrazit data protokolů a další metriky téměř v reálném čase v Azure Portal pomocí streamu Live Metrics. Tuto metodu použijte při monitorování funkcí spuštěných na více instancích nebo v Linuxu v plánu Consumption. Tato metoda používá vzorkovaná data.

Streamy protokolů je možné zobrazit na portálu i ve většině místních vývojových prostředí. Informace o povolení streamů protokolů najdete v tématu Povolení protokolů spuštění streamování v Azure Functions.

Diagnostické protokoly

Application Insights umožňuje exportovat telemetrická data do dlouhodobého úložiště nebo jiných analytických služeb.

Vzhledem k tomu, že služba Functions se také integruje se službou Azure Monitor, můžete také pomocí nastavení diagnostiky odesílat telemetrická data do různých cílů, včetně protokolů služby Azure Monitor. Další informace najdete v tématu Monitorování Azure Functions s využitím protokolů služby Azure Monitor.

Protokoly kontroleru škálování

Kontroler škálování Azure Functions monitoruje instance hostitele Azure Functions, na kterém vaše aplikace běží. Tento kontroler rozhoduje o tom, kdy přidat nebo odebrat instance na základě aktuálního výkonu. Kontroler škálování může nechat generovat protokoly do Application Insights, abyste lépe porozuměli rozhodnutím, která kontroler škálování provádí pro vaši aplikaci funkcí. Vygenerované protokoly můžete také uložit do úložiště objektů blob pro analýzu jinou službou.

Tuto funkci povolíte tak, že do nastavení aplikace funkcí přidáte nastavení aplikace s názvem SCALE_CONTROLLER_LOGGING_ENABLED . Postup najdete v tématu Konfigurace protokolů kontroleru škálování.

Metriky služby Azure Monitor

Kromě telemetrických dat založených na protokolech shromažďovaných službou Application Insights můžete také získat data o tom, jak aplikace funkcí běží, z metrik Služby Azure Monitor. Další informace najdete v tématu Monitorování pomocí Azure Monitoru.

Nahlášení potíží

Pokud chcete nahlásit problém s integrací Application Insights ve Functions nebo vytvořit návrh nebo žádost, vytvořte problém na GitHubu.

Další kroky

Další informace naleznete v následujících zdrojích: