A végrehajtások monitorozása az Azure Functionsban
Az Azure Functions beépített integrációt kínál a Azure-alkalmazás Insights szolgáltatással a függvényvégrehajtások monitorozásához. Ez a cikk áttekintést nyújt az Azure által az Azure Functions monitorozásához biztosított monitorozási képességekről.
Az Application Insights napló-, teljesítmény- és hibaadatokat gyűjt. A teljesítmény anomáliáinak automatikus észlelésével és hatékony elemzési eszközökkel egyszerűbben diagnosztizálhatja a problémákat, és jobban megértheti a függvények használatát. Ezeket az eszközöket úgy tervezték, hogy folyamatosan javítsák a teljesítményt és a funkciók használhatóságát. Az Application Insightst a helyi függvényalkalmazás-projektfejlesztés során is használhatja. További információ: Mi az Application Insights?
Mivel az Application Insights-rendszerállapot az Azure Functionsbe van beépítve, é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állapot-kulcs hozzáadódik az alkalmazásbeállításokhoz, amikor létrehozza a függvényalkalmazás-erőforrást az Azure-ban. 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 Monitor használatával is figyelheti. További információ: Az Azure Functions monitorozása az Azure Monitorral.
Az Application Insights díjszabása és korlátai
Ingyenesen kipróbálhatja az Application Insights és az Azure Functions integrációját, amely napi korlátot tartalmaz arra vonatkozóan, hogy mennyi adatot dolgoznak fel ingyenesen.
Ha a fejlesztés során engedélyezi az Applications Insights szolgáltatást, a tesztelés során ez a korlát is átlépheti ezt a korlátot. Az Azure portál- és e-mail-értesítéseket biztosít, amikor eléri 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ás.
Fontos
Az Application Insights olyan mintavételezési funkcióval rendelkezik, amely megvédheti Önt attól, hogy túl sok telemetriai adatot állítsunk elő 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áshoz elérhető Application Insights-funkciók teljes listáját az Application Insights for Azure Functions által támogatott funkciók ismertetik.
Az Application Insights integrációja
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 alkalmazásbeállításként.APPINSIGHTS_INSTRUMENTATIONKEY
Ha valamilyen okból a függvényalkalmazás nem rendelkezik a rendszerállapot-kulcskészlettel, engedélyeznie kell az Application Insights-integrációt.
Fontos
Az olyan szuverén felhők, mint például az Azure Government, a rendszerállapotkulcs helyett az Application Insights kapcsolati sztring (APPLICATIONINSIGHTS_CONNECTION_STRING
) használatát igénylik. További információ: APPLICATIONINSIGHTS_CONNECTION_STRING hivatkozás.
Az alábbi táblázat az Application Insights támogatott funkcióit ismerteti, amelyek a függvényalkalmazások monitorozásához érhetők el:
Az Azure Functions futtatókörnyezetének 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 | Igen |
— Biztonságos vezérlési csatorna | Igen | |
•Mintavétel | Igen | Igen |
•Szívdobbanás | Igen | |
Korreláció | ||
• Service Bus | Igen | |
• Event Hubs | Igen | |
Konfigurálható | ||
•Teljes mértékben konfigurálható | Igen |
* Ha engedélyezni szeretné az SQL-lekérdezési sztring szöveggyűjteményét, olvassa el az SQL-lekérdezésgyűjtemény engedélyezése című témakört.
Telemetriai adatok gyűjtése
Ha engedélyezve van az Application Insights integrációja, a rendszer telemetriai adatokat küld a csatlakoztatott Application Insights-példánynak. Ezek 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.
Feljegyzés
A függvények és a Functions-gazdagép adatai mellett adatokat is gyűjthet a Functions-méretezési vezérlőből.
Naplószintek és kategóriák
Amikor nyomkövetéseket ír az alkalmazáskódbó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 naplószint van hozzárendelve. Az érték egy egész szám, amely relatív fontosságot jelez:
Naplózási szint | Kód | Leírás |
---|---|---|
Trace | 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 soha nem engedélyezettek éles környezetben. |
Hibakeresés | 0 | 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 az alkalmazásfolyamat rendellenes vagy váratlan eseményét emelik ki, de máskülönben nem okozzák az alkalmazás végrehajtásának leállását. |
Hiba | 4 | Naplók, amelyek akkor jelennek meg, ha a végrehajtás aktuális folyamata leáll egy hiba miatt. Ezeknek a hibáknak nem az alkalmazásszintű, hanem az aktuális tevékenység hibáját kell jelezniük. |
Kritikus | 5 | Helyreállíthatatlan alkalmazást vagy rendszerösszeomlást vagy azonnali figyelmet igénylő katasztrofális hibát leíró naplók. |
Egyik sem | 6 | Letiltja a megadott kategória naplózását. |
A host.json fájlkonfiguráció határozza meg, hogy egy függvényalkalmazás mennyi naplózást küld az Application Insightsnak.
A naplószintekről további információt a naplószintek konfigurálása című témakörben talál.
Ha naplózott elemeket rendel hozzá egy kategóriához, nagyobb mértékben szabályozhatja a függvényalkalmazás adott forrásaiból generált telemetriát. A kategóriák megkönnyítik az elemzések futtatását az összegyűjtött adatokon. A függvénykódból írt nyomkövetések a függvény neve alapján vannak hozzárendelve az egyes kategóriákhoz. 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 használatával egyéni telemetriai adatokat írhat.
Függőségek
A Functions 2.x verziójától kezdve az Application Insights automatikusan gyűjt adatokat az egyes ügyféloldali SDK-kat használó kötések függőségeivel kapcsolatban. Az Application Insights elosztott nyomkövetése és függőségkövetése jelenleg nem támogatott az izolált 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-eseményközpontok
- Azure Service Bus
- Azure Storage-szolgáltatások (Blob, Queue és Table)
A HTTP-kérések és az adatbázis-hívások is SqlClient
rögzítve vannak. Az Application Insights által támogatott függőségek teljes listájáért tekintse meg az automatikusan nyomon követett függőségeket.
Az Application Insights létrehoz egy alkalmazástérképet az összegyűjtött függőségi adatokról. Az alábbi példa egy HTTP-triggerfüggvény alkalmazástérképére egy Queue Storage kimeneti kötéssel.
A függőségek a szinten vannak megírva Information
. Ha a fenti vagy újabb szűrést Warning
használja, 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ülre van állítva.
Az automatikus függőségi adatgyűjtés mellett a nyelvspecifikus Application Insights SDK-k egyikével egyéni függőségi adatokat is írhat a naplókba. Egyéni függőségek írására az alábbi nyelvspecifikus példák egyikében talál példát:
- Egyéni telemetria naplózása C#-függvényekben
- Egyéni telemetria naplózása JavaScript-függvényekben
- Egyéni telemetriai adatok naplózása Python-függvényekben
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.
A naplók függvényekből való írásáról a nyelv fejlesztői útmutatójában olvashat bővebben.
Adatok elemzése
Alapértelmezés szerint a függvényalkalmazásból gyűjtött adatok az Application Insightsban lesznek tárolva. Az Azure Portalon az Application Insights széles körű vizualizációkat biztosít a telemetriai adatokról. Részletezheti a hibanaplókat, valamint lekérdezheti az eseményeket és 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 Azure Functions telemetriájának 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 mit írnak 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: az App Service platform lehetővé teszi az alkalmazás naplófájljainak streamjének megtekintését. Ez a stream megegyezik azzal a kimenettel, amelyet a függvények helyi fejlesztéskor és a portál Teszt lapján történő hibakereséskor 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 Azure Portalon az Élő metrikák stream használatával. Ezt a módszert akkor használja, ha több példányon vagy Linuxon futó függvényeket figyel egy 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 további információt az Azure Functions streamelési végrehajtási naplóinak engedélyezése című témakörben talál.
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ő helyekre, például az Azure Monitor-naplókba. További információ: Az Azure Functions monitorozása az Azure Monitor-naplókkal.
Skálázási vezérlő naplói
Az Azure Functions skálázási vezérlője figyeli annak az Azure Functions-gazdagépnek a példányait, amelyen az alkalmazás fut. Ez a vezérlő az aktuális teljesítmény alapján dönt arról, hogy mikor kell 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ásvezérlő által a függvényalkalmazáshoz hozott döntéseket. A létrehozott naplókat a Blob Storage-ban is tárolhatja elemzés céljából egy másik szolgáltatás számára.
A funkció engedélyezéséhez egy alkalmazásbeállítást SCALE_CONTROLLER_LOGGING_ENABLED
kell hozzáadnia a függvényalkalmazás beállításaihoz. A skálázási vezérlő naplóinak konfigurálásáról további információt a skálázási vezérlő naplóinak konfigurálásáról 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 hibát a GitHubon.
Következő lépések
További információt a következő források tartalmaznak: