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

Azure Functions nabízí integrovanou integraci s Aplikace Azure lication Insights pro monitorování provádění funkcí. Tento článek obsahuje přehled možností monitorování, které poskytuje Azure 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 pochopit, jak se vaše funkce používají. Tyto nástroje jsou navržené tak, aby vám pomohly průběžně 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í 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ě.

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

Ceny a limity Application Insights

Integraci Application Insights se službou Azure Functions si můžete zdarma vyzkoušet s denním limitem počtu zpracovávaných dat zdarma.

Pokud povolíte Application Insights během vývoje, můžete tento limit během testování udeřili. Azure poskytuje portál a e-mailová oznámení, když se blížíte dennímu limitu. Pokud tyto výstrahy zmeškáte a dosáhnete limitu, v dotazech Application Insights se nezobrazí nové protokoly. Mějte na paměti limit, abyste se vyhnuli zbytečnému řešení 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ě špičky zatížení. 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 odpovídalo 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í je podrobně popsaný v Application Insights pro podporované funkce Azure Functions.

Integrace Application Insights

Při vytváření aplikace funkcí obvykle vytvoříte instanci Application Insights. 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í použití služby Application Insights připojovací řetězec (APPLICATIONINSIGHTS_CONNECTION_STRING) místo instrumentačního klíče. Další informace najdete v APPLICATIONINSIGHTS_CONNECTION_STRING referenčních informacích.

Následující tabulka obsahuje podrobnosti o podporovaných funkcích Application Insights, které jsou k dispozici pro monitorování aplikací funkcí:

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

* 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 služby 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í služby Functions.

Úrovně protokolů a kategorie

Když píšete trasování z kódu aplikace, měli byste trasování přiřadit úroveň protokolu. Úrovně protokolů poskytují způsob, jak omezit množství dat shromážděných z trasování.

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

ÚroveňProtokolu Kód Popis
Trasování 0 Protokoly, které obsahují nejpodrobnější zprávy. Tyto zprávy můžou obsahovat citlivá data aplikace. Tyto zprávy jsou ve výchozím nastavení zakázané a nikdy by neměly být povolené v produkčním prostředí.
Ladění 0 Protokoly, které se používají k interaktivnímu šetření během vývoje. Tyto protokoly by měly obsahovat především informace užitečné pro ladění a nemají dlouhodobou hodnotu.
Informační 2 Protokoly, které sledují obecný tok aplikace. Tyto protokoly by měly mít dlouhodobou hodnotu.
Upozorňující 3 Protokoly, které zvýrazňují neobvyklou nebo neočekávanou událost v toku aplikace, ale jinak nezpůsobí zastavení spuštění aplikace.
Chyba 4 Protokoly, které zvýrazňují, když je aktuální tok spuštění zastaven kvůli selhání. Tyto chyby by měly značí selhání v aktuální aktivitě, nikoli selhání na úrovni aplikace.
Kritické 5 Protokoly, které popisují neopravitelnou aplikaci nebo systémovou chybu nebo katastrofické selhání, které vyžaduje okamžitou pozornost.
Nic 6 Zakáže protokolování pro zadanou kategorii.

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

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

Přiřazením zaprotokolovaných položek do kategorie máte větší kontrolu nad telemetrií vygenerovanou z konkrétních zdrojů ve vaší 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řazují 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 jazyce C#, JavaScript a Python můžete k zápisu vlastních telemetrických dat použít sadu Application Insights SDK.

Závislosti

Počínaje verzí 2.x služby Functions 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 u aplikací c# spuštěných 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 (objekty blob, fronta a tabulka)

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

Application Insights generuje mapu aplikací shromážděných dat závislostí. Následuje příklad mapy aplikace funkce triggeru HTTP s výstupní vazbou Queue Storage.

Mapa aplikace se závislostí

Závislosti se zapisují na Information úrovni. Pokud filtrujete podle Warning nebo výše, neuvidíte data závislostí. Automatické shromažďování závislostí se také děje v oboru bez uživatele. Pokud chcete zachytit 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 také použít některou ze sad Application Insights SDK specifických pro konkrétní jazyk k zápisu vlastních informací o závislostech do protokolů. 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 nepodporuje při spouštění v Linuxu.

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 psaní 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. Application Insights na webu Azure Portal poskytuje rozsáhlou sadu vizualizací vašich telemetrických dat. Můžete přejít k podrobnostem protokolů chyb a dotazování událostí a metrik. Další informace, včetně základních příkladů zobrazení a dotazování shromážděných dat, najdete v tématu Analýza telemetrie Azure Functions v Application Insights.

Protokoly streamování

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

Existují dva způsoby zobrazení datového proudu dat protokolu generovaných spuštěními funkce.

  • Integrované streamování protokolů: Platforma App Service umožňuje zobrazit datový proud souborů protokolu vaší aplikace. Tento datový proud je ekvivalentem výstupu 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 streamu. Tato metoda streamování podporuje pouze jednu instanci a nejde ji použít s aplikací spuštěnou v Linuxu v plánu Consumption.

  • Stream živé metriky: 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 na webu Azure Portal pomocí živého streamu metrik. Tuto metodu použijte při monitorování funkcí spuštěných v několika instancích nebo v Linuxu v plánu Consumption. Tato metoda používá vzorkovaná data.

Streamy protokolů se dají 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ů spouštění streamování ve službě Azure Functions.

Diagnostické protokoly

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

Vzhledem k tomu, že se služba Functions také integruje se službou Azure Monitor, můžete 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í služby Azure Functions pomocí protokolů služby Azure Monitor.

Protokoly kontroleru škálování

Kontroler škálování Azure Functions monitoruje instance hostitele Azure Functions, na kterém běží vaše aplikace. Tento kontroler rozhoduje o tom, kdy přidat nebo odebrat instance na základě aktuálního výkonu. Řadič škálování může generovat protokoly do Application Insights, abyste lépe pochopili rozhodnutí, 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 účely analýzy 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 shromážděný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í služby Azure Monitor.

Nahlášení potíží

Pokud chcete nahlásit problém s integrací Application Insights ve službě 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: