A végrehajtások monitorozása az Azure Functionsban

Azure Functions beépített integrációt biztosít a Azure-alkalmazás Insightsszal a függvények végrehajtásának monitorozásához. Ez a cikk áttekintést nyújt az Azure által a monitorozási Azure Functions nyújtott monitorozási képességekről.

Az Application Insights napló-, teljesítmény- és hibaadatokat gyűjt. A teljesítményanomáliák automatikus észlelésével és hatékony elemzési eszközökkel könnyebben diagnosztizálhatja a problémákat, és jobban megértheti a függvények használatát. Ezek az eszközök a funkciók teljesítményének és használhatóságának folyamatos javítására szolgálnak. Az Application Insightsot a helyi függvényalkalmazás-projekt fejlesztése során is használhatja. További információ: Mi az az Application Insights?.

Mivel az Application Insights rendszerállapota Azure Functions beépített, érvényes rendszerállapot-kulcsra van szüksége ahhoz, hogy a függvényalkalmazást egy Application Insights-erőforráshoz csatlakoztathassa. A rendszerállapotkulcsot a függvényalkalmazás-erőforrás Azure-ban történő létrehozásakor a rendszer hozzáadja az alkalmazásbeállításokhoz. Ha a függvényalkalmazás még nem rendelkezik ezzel a kulccsal, manuálisan is beállíthatja.

A függvényalkalmazást az Azure Monitorral is figyelheti. További információ: Monitorozási Azure Functions az Azure Monitorral.

Az Application Insights díjszabása és korlátai

Kipróbálhatja az Application Insights és a Azure Functions integrációját ingyenesen, napi korláttal, hogy mennyi adatot dolgoz fel ingyenesen.

Ha a fejlesztés során engedélyezi az Application Insights szolgáltatást, a tesztelés során túllépheti ezt a korlátot. Az Azure portál- és e-mail-értesítéseket biztosít, amikor megközelíti a napi korlátot. Ha elmulasztja ezeket a riasztásokat, és eléri a korlátot, az új naplók nem jelennek meg az Application Insights-lekérdezésekben. A szükségtelen hibaelhárítási idő elkerülése érdekében vegye figyelembe a korlátot. További információ: Application Insights számlázása.

Fontos

Az Application Insights egy mintavételezési funkcióval rendelkezik, amely megvédheti Önt attól, hogy túl sok telemetriai adatot hozzon létre a befejezett végrehajtások során a csúcsterhelés idején. A mintavételezés alapértelmezés szerint engedélyezve van. Ha úgy tűnik, hogy hiányoznak az adatok, előfordulhat, hogy módosítania kell a mintavételezési beállításokat az adott monitorozási forgatókönyvnek megfelelően. További információ: Mintavételezés konfigurálása.

A függvényalkalmazás számára elérhető Application Insights-funkciók teljes listáját az Application Insights Azure Functions támogatott funkciókkal kapcsolatos szakaszban találja.

Application Insights-integráció

A függvényalkalmazás létrehozásakor általában egy Application Insights-példányt hoz létre. Ebben az esetben az integrációhoz szükséges rendszerállapotkulcs már be van állítva egy nevű APPINSIGHTS_INSTRUMENTATIONKEYalkalmazásbeállításként. Ha valamilyen okból a függvényalkalmazás nem rendelkezik a rendszerállapotkulcs-készlettel, engedélyeznie kell az Application Insights-integrációt.

Fontos

A független felhők, például a Azure Government az Application Insights kapcsolati sztring (APPLICATIONINSIGHTS_CONNECTION_STRING) használatát igénylik a kialakítási kulcs helyett. További információért tekintse meg a APPLICATIONINSIGHTS_CONNECTION_STRING referenciát.

Az alábbi táblázat az Application Insights függvényalkalmazások monitorozásához elérhető támogatott funkcióit ismerteti:

Azure Functions futtatókörnyezet verziója 1.x 2.x+
Automatikus gyűjtemény
•Kérelmek
•Kivételek
• Teljesítményszámlálók
•Függőségek
   — HTTP
   — Service Bus
   — Event Hubs
   — SQL*
Támogatott funkciók
• QuickPulse/LiveMetrics Igen Yes
   — Biztonságos vezérlési csatorna Yes
•Mintavételi Igen Yes
•Szívdobbanás Yes
korreláció
• Service Bus Yes
• Event Hubs Yes
Konfigurálható
Teljes mértékben konfigurálható Yes

* Az SQL-lekérdezési sztring szöveggyűjteményének engedélyezéséhez lásd: SQL-lekérdezésgyűjtemény engedélyezése.

Telemetriai adatok gyűjtése

Ha az Application Insights-integráció engedélyezve van, a rendszer telemetriai adatokat küld a csatlakoztatott Application Insights-példánynak. Az adatok közé tartoznak a Functions-gazdagép által létrehozott naplók, a függvénykódból írt nyomkövetések és a teljesítményadatok.

Megjegyzés

A függvényekből és a Functions-gazdagépről származó adatok mellett a Functions skálázási vezérlőből is gyűjthet adatokat.

Naplószintek és kategóriák

Amikor nyomkövetéseket ír az alkalmazás kódjából, naplószintet kell hozzárendelnie a nyomkövetésekhez. A naplószintek lehetővé teszik a nyomkövetésekből gyűjtött adatok mennyiségének korlátozását.

Minden naplóhoz hozzá van rendelve egy naplószint. Az érték egy egész szám, amely relatív jelentőséget jelez:

Naplózási szint Code Description
Nyomkövetés 0 A legrészletesebb üzeneteket tartalmazó naplók. Ezek az üzenetek bizalmas alkalmazásadatokat tartalmazhatnak. Ezek az üzenetek alapértelmezés szerint le vannak tiltva, és éles környezetben soha nem engedélyezettek.
Hibakeresés 1 A fejlesztés során interaktív vizsgálathoz használt naplók. Ezeknek a naplóknak elsősorban a hibakereséshez hasznos információkat kell tartalmazniuk, és nincs hosszú távú értékük.
Tájékoztatás 2 Az alkalmazás általános folyamatát nyomon követő naplók. Ezeknek a naplóknak hosszú távú értékkel kell rendelkezniük.
Figyelmeztetés 3 Naplók, amelyek rendellenes vagy váratlan eseményt emelnek ki az alkalmazásfolyamatban, de máskülönben nem okoznak leállást az alkalmazás végrehajtásában.
Hiba 4 Naplók, amelyek kiemelik, ha a végrehajtás aktuális folyamata leáll egy hiba miatt. Ezeknek a hibáknak az aktuális tevékenység hibáját kell jelezniük, nem az egész alkalmazásra kiterjedő hibát.
Kritikus 5 Helyreállíthatatlan alkalmazást vagy rendszerösszeomlást vagy azonnali figyelmet igénylő katasztrofális hibát leíró naplók.
None 6 Letiltja a naplózást a megadott kategóriához.

A host.json fájl konfigurációja határozza meg, hogy egy függvényalkalmazás mennyi naplózást küld az Application Insightsnak.

További információ a naplószintekről: Naplószintek konfigurálása.

Ha naplózott elemeket rendel egy kategóriához, nagyobb mértékben szabályozhatja a függvényalkalmazás adott forrásaiból létrehozott telemetriát. A kategóriák megkönnyítik az elemzések gyűjtését az összegyűjtött adatokon. A függvénykódból írt nyomkövetések a függvény neve alapján külön kategóriákhoz vannak rendelve. A kategóriákról további információt a Kategóriák konfigurálása című témakörben talál.

Egyéni telemetriai adatok

A C#, a JavaScript és a Python alkalmazásban az Application Insights SDK-val egyéni telemetriai adatokat írhat.

Függőségek

A Functions 2.x verziójától kezdve az Application Insights automatikusan adatokat gyűjt az egyes ügyféloldali SDK-kat használó kötések függőségeiről. Az Application Insights elosztott nyomkövetése és függőségkövetése jelenleg nem támogatott az elkülönített feldolgozói folyamatban futó C#-alkalmazások esetében. Az Application Insights a következő függőségekről gyűjt adatokat:

  • Azure Cosmos DB
  • Azure Event Hubs
  • Azure Service Bus
  • Azure Storage-szolgáltatások (Blob, Queue és Table)

A http-kéréseket és az adatbázis-hívásokat is rögzíti a rendszer SqlClient . Az Application Insights által támogatott függőségek teljes listáját az automatikusan nyomon követett függőségek című témakörben találja.

Az Application Insights létrehoz egy alkalmazástérképet az összegyűjtött függőségi adatokról. Az alábbiakban egy példa egy HTTP-eseményindító függvény alkalmazástérképére egy Queue Storage kimeneti kötéssel.

Alkalmazástérkép függőséggel

A függőségek a szinten vannak megírva Information . Ha a vagy Warning a felett szűr, a függőségi adatok nem fognak megjelenni. Emellett a függőségek automatikus gyűjtése nem felhasználói hatókörben történik. A függőségi adatok rögzítéséhez győződjön meg arról, hogy a szint legalább Information a gazdagép felhasználói hatókörén (Function.<YOUR_FUNCTION_NAME>.User) kívül esik.

Az automatikus függőségi adatgyűjtés mellett a nyelvspecifikus Application Insights SDK-k egyikével is írhat egyéni függőségi adatokat a naplókba. Ha egyéni függőségeket szeretne írni, tekintse meg az alábbi nyelvspecifikus példák egyikét:

Teljesítményszámlálók

A Teljesítményszámlálók automatikus gyűjtése linuxos futtatáskor nem támogatott.

Írás naplókba

A naplókba és a használt API-kba való írás módja a függvényalkalmazás-projekt nyelvétől függ.
Ha többet szeretne megtudni a naplók függvényekből való írásáról, tekintse meg a nyelvet ismertető fejlesztői útmutatót.

Adatok elemzése

Alapértelmezés szerint a függvényalkalmazásból gyűjtött adatokat az Application Insights tárolja. A Azure Portal az Application Insights a telemetriai adatok széles körű vizualizációit biztosítja. Részletezheti a hibanaplókat, valamint lekérdezheti az eseményeket és a metrikákat. További információkért, beleértve az összegyűjtött adatok megtekintésére és lekérdezésére vonatkozó alapvető példákat, olvassa el az Elemzés Azure Functions telemetriai adatok elemzése az Application Insightsban című témakört.

Streamelési naplók

Egy alkalmazás fejlesztése során gyakran szeretné látni, hogy mi van megírva a naplókba közel valós időben, amikor az Azure-ban fut.

Kétféleképpen tekintheti meg a függvényvégrehajtások által generált naplóadatok adatfolyamát.

  • Beépített naplóstreamelés: a App Service platform lehetővé teszi az alkalmazás naplófájljainak streamjének megtekintését. Ez a stream egyenértékű azzal a kimenettel, amelyet a függvények hibakeresésekor a helyi fejlesztés során és a portál Teszt lapján láthat. Minden naplóalapú információ megjelenik. További információ: Streamnaplók. Ez a streamelési módszer csak egyetlen példányt támogat, és nem használható a Használat csomagban Linuxon futó alkalmazásokkal.

  • Élő metrikák streamje: ha a függvényalkalmazás csatlakozik az Application Insightshoz, közel valós időben tekintheti meg a naplóadatokat és más metrikákat az élő metrikák streamelt Azure Portal. Ezt a módszert akkor használja, ha több példányon vagy Linuxon futó függvényeket figyel használatalapú csomagban. Ez a módszer mintavételezett adatokat használ.

A naplóstreamek a portálon és a legtöbb helyi fejlesztési környezetben is megtekinthetők. A naplóstreamek engedélyezéséről a Streamelési végrehajtási naplók engedélyezése Azure Functions című témakörben olvashat.

Diagnosztikai naplók

Az Application Insights lehetővé teszi a telemetriai adatok hosszú távú tárolóba vagy más elemzési szolgáltatásokba való exportálását.

Mivel a Functions az Azure Monitorral is integrálható, diagnosztikai beállításokkal telemetriai adatokat küldhet különböző célhelyekre, beleértve az Azure Monitor-naplókat is. További információ: Monitorozási Azure Functions az Azure Monitor-naplókkal.

Skálázási vezérlő naplói

A Azure Functions skálázási vezérlő annak a Azure Functions gazdagépnek a példányait figyeli, amelyen az alkalmazás fut. Ez a vezérlő az aktuális teljesítmény alapján dönti el, hogy mikor szeretne példányokat hozzáadni vagy eltávolítani. A skálázási vezérlő naplókat bocsáthat ki az Application Insightsnak, hogy jobban megértse a skálázási vezérlő által a függvényalkalmazással kapcsolatban hozott döntéseket. A létrehozott naplókat a Blob Storage-ban is tárolhatja egy másik szolgáltatás általi elemzéshez.

A funkció engedélyezéséhez adjon hozzá egy nevű SCALE_CONTROLLER_LOGGING_ENABLED alkalmazásbeállítást a függvényalkalmazás beállításaihoz. Erről a skálázási vezérlő naplóinak konfigurálása című témakörben olvashat.

Azure Monitor-metrikák

Az Application Insights által gyűjtött naplóalapú telemetriai adatok mellett adatokat is lekérhet arról, hogy a függvényalkalmazás hogyan fut az Azure Monitor-metrikákból. További információ: Monitorozás az Azure Monitorral.

Problémák bejelentése

Ha jelentést szeretne készíteni a Functions Application Insights-integrációjával kapcsolatos problémáról, vagy javaslatot vagy kérést szeretne tenni, hozzon létre egy problémát a GitHubon.

Következő lépések

További információkat találhat az alábbi forrásokban: