Az Azure Functions monitorozásának konfigurálása
Az Azure Functions integrálható az Application Insightsszal a függvényalkalmazások hatékonyabb monitorozása érdekében. Az Azure Monitor egyik funkciója, az Application Elemzések egy bővíthető alkalmazásteljesítmény-kezelési (APM) szolgáltatás, amely összegyűjti a függvényalkalmazás által létrehozott adatokat, beleértve az alkalmazás naplókba írt adatait. Az alkalmazás-Elemzések integráció általában engedélyezve van a függvényalkalmazás létrehozásakor. Ha az alkalmazás nem rendelkezik a rendszerállapotkulcs-készlettel, először engedélyeznie kell az alkalmazás Elemzések integrációját.
Az Application Insights egyéni konfiguráció nélkül is használható. Az alapértelmezett konfiguráció nagy mennyiségű adatot eredményezhet. Ha Visual Studio Azure-előfizetést használ, előfordulhat, hogy eléri az Alkalmazás Elemzések adatkorlátját. Az alkalmazás Elemzések költségeiről további információt az Alkalmazás Elemzések számlázás című témakörben talál. További információ: Megoldások nagy mennyiségű telemetriával.
A cikk későbbi részében megtudhatja, hogyan konfigurálhatja és szabhatja testre a függvények által az Alkalmazás Elemzések küldött adatokat. A gyakori naplózási konfiguráció a host.json fájlban állítható be. Alapértelmezés szerint ezek a beállítások a kód által kibocsátott egyéni naplókat is szabályozzák, de bizonyos esetekben ez a viselkedés letiltható olyan beállítások mellett, amelyek nagyobb ellenőrzést biztosítanak a naplózás felett. További információt az egyéni alkalmazásnaplókban talál.
Feljegyzés
A speciálisan konfigurált alkalmazásbeállítások segítségével egy adott környezet host.json fájljának adott beállításait jelölheti. Ez lehetővé teszi a host.json beállítások hatékony módosítását anélkül, hogy újra közzé kellene tennie a host.json fájlt a projektben. További információ: Host.json értékek felülbírálása.
Egyéni alkalmazásnaplók
Alapértelmezés szerint az ön által írt egyéni alkalmazásnaplók a Functions-gazdagépre kerülnek, amely a "Feldolgozó" kategórián keresztül küldi el őket az Alkalmazás Elemzések. Egyes nyelvi veremekkel ehelyett közvetlenül az Alkalmazás Elemzések küldheti el a naplókat, így teljes mértékben szabályozhatja az ön által írt naplók kibocsátásának módját. A naplózási folyamat a következőre worker -> Functions host -> Application Insights
worker -> Application Insights
változik: .
Az alábbi táblázat az egyes veremekhez elérhető lehetőségeket foglalja össze:
Nyelvi verem | Egyéni naplók konfigurálása |
---|---|
.NET (folyamatban lévő modell) | host.json |
.NET (izolált modell) | Alapértelmezés szerint: host.json Lehetőség a naplók közvetlen küldésére: Alkalmazás Elemzések konfigurálása a HostBuilderben |
Node.JS | host.json |
Python | host.json |
Java | Alapértelmezés szerint: host.json Lehetőség a naplók közvetlen küldésére: Az alkalmazás Elemzések Java-ügynök konfigurálása |
PowerShell | host.json |
Ha az egyéni alkalmazásnaplókat közvetlenül küldi el, a gazdagép többé nem bocsátja ki őket, és host.json
többé nem szabályozza a viselkedésüket. Hasonlóképpen, az egyes veremek által közzétett beállítások csak az egyéni naplókra vonatkoznak, és nem módosítják a cikkben ismertetett többi futtatókörnyezeti napló viselkedését. Az összes napló viselkedésének szabályozásához előfordulhat, hogy mindkét konfiguráción módosítania kell.
Kategóriák konfigurálása
Az Azure Functions-naplózó minden naplóhoz tartalmaz egy kategóriát. A kategória azt jelzi, hogy a futtatókörnyezeti kód vagy a függvénykód melyik része írta a naplót. A kategóriák az 1.x és újabb verziók között különböznek.
A kategórianevek másként vannak hozzárendelve a Functionsben a többi .NET-keretrendszerhez képest. Ha például ASP.NET használ ILogger<T>
, a kategória az általános típus neve. A C#-függvények is használják ILogger<T>
, de az általános típusnév kategóriaként való beállítása helyett a futtatókörnyezet a forrás alapján rendel kategóriákat. Példa:
- A függvény futtatásához kapcsolódó bejegyzésekhez a rendszer a következő kategóriát rendeli
Function.<FUNCTION_NAME>
hozzá: . - A függvényen belüli felhasználói kód által létrehozott bejegyzések ( például híváskor
logger.LogInformation()
) a rendszer a következő kategóriát rendeliFunction.<FUNCTION_NAME>.User
hozzá: .
Az alábbi diagram a futtatókörnyezet által létrehozott naplók fő kategóriáit ismerteti:
Kategória | Tábla | Leírás |
---|---|---|
Function |
Nyomok | Tartalmazza az összes függvényfuttatáshoz elindított és befejezett naplókat. A sikeres futtatásokhoz ezek a naplók a Information szinten vannak. A kivételek naplózása a Error szinten van. A futtatókörnyezet szintnaplókat is létrehoz Warning , például amikor a rendszer üzenetsor-üzeneteket küld a méregsorba. |
Function.<YOUR_FUNCTION_NAME> |
Függőségek | Egyes szolgáltatások esetében a rendszer automatikusan gyűjti a függőségi adatokat. A sikeres futtatásokhoz ezek a naplók a Information szinten vannak. További információért lásd: Függőségek. A kivételek naplózása a Error szinten van. A futtatókörnyezet szintnaplókat is létrehoz Warning , például amikor a rendszer üzenetsor-üzeneteket küld a méregsorba. |
Function.<YOUR_FUNCTION_NAME> |
customMetrics Customevents |
A C# és JavaScript SDK-k segítségével egyéni metrikákat gyűjthet és egyéni eseményeket naplózhat. További információ: Egyéni telemetriai adatok. |
Function.<YOUR_FUNCTION_NAME> |
Nyomok | Tartalmazza az adott függvényfuttatások elindított és befejezett naplóit. A sikeres futtatásokhoz ezek a naplók a Information szinten vannak. A kivételek naplózása a Error szinten van. A futtatókörnyezet szintnaplókat is létrehoz Warning , például amikor a rendszer üzenetsor-üzeneteket küld a méregsorba. |
Function.<YOUR_FUNCTION_NAME>.User |
Nyomok | Felhasználó által létrehozott naplók, amelyek bármilyen naplószintet tartalmazhatnak. A függvényekből naplókba való írással kapcsolatos további információkért lásd : Írás naplókba. |
Host.Aggregator |
customMetrics | Ezek a futásidejű naplók a függvényhívások számát és átlagát adják meg egy konfigurálható időszakban. Az alapértelmezett időszak 30 másodperc vagy 1000 találat, attól függően, hogy melyik az első. Ilyen például a futtatások száma, a sikerességi arány és az időtartam. Ezek a naplók minden szinten Information vannak megírva. Ha a fenti vagy újabb szűrést Warning használja, ezek közül az adatok közül egyik sem jelenik meg. |
Host.Results |
Kérelmek | Ezek a futásidejű naplók egy függvény sikerességét vagy sikertelenségét jelzik. Ezek a naplók minden szinten Information vannak megírva. Ha a fenti vagy újabb szűrést Warning használja, ezek közül az adatok közül egyik sem jelenik meg. |
Microsoft |
Nyomok | Teljes körűen minősített naplókategória, amely a gazdagép által meghívott .NET-futtatókörnyezet-összetevőt tükrözi. |
Worker |
Nyomok | A nyelvi feldolgozó folyamat által non-.NET nyelvekhez létrehozott naplók. Előfordulhat, hogy a nyelvi feldolgozó naplói egy kategóriában is naplózhatók Microsoft.* , például Microsoft.Azure.WebJobs.Script.Workers.Rpc.RpcFunctionInvocationDispatcher . Ezek a naplók szinten Information vannak megírva. |
Feljegyzés
A .NET-osztálytárfüggvények esetében ezek a kategóriák feltételezik, hogy ön használja a függvényt ILogger
, és nem ILogger<T>
. További információkért tekintse meg a Functions ILogger dokumentációját.
A Tábla oszlop azt jelzi, hogy az Alkalmazás melyik táblája Elemzések a naplót.
Naplószintek konfigurálása
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üldjön az Alkalmazás Elemzések.
Minden kategóriához meg kell adnia a küldendő minimális naplószintet. A host.json beállításai a Functions futtatókörnyezet verziójától függően változnak.
Az alábbi példák a naplózást a következő szabályok alapján határozzák meg:
- Az alapértelmezett naplózási szint úgy van beállítva, hogy
Warning
megakadályozza a váratlan kategóriák túlzott naplózását . Host.Aggregator
ésHost.Results
alacsonyabb szintekre vannak beállítva. Ha ezeket túl magas szintre (különösen magasabbraInformation
) állítja, akkor a metrikák és a teljesítményadatok elveszhetnek.- A függvényfuttatások naplózása a következőre
Information
van állítva: . Ezt felül lehet bírálni a helyi fejlesztésbenDebug
, vagyTrace
szükség esetén.
{
"logging": {
"fileLoggingMode": "debugOnly",
"logLevel": {
"default": "Warning",
"Host.Aggregator": "Trace",
"Host.Results": "Information",
"Function": "Information"
}
}
}
Ha a host.json több naplót is tartalmaz, amelyek ugyanazzal a sztringgel kezdődnek, a rendszer először a definiált naplókat egyezteti. Vegye figyelembe az alábbi példát, amely mindent naplóz a futtatókörnyezetben, kivéve Host.Aggregator
a Error
szinten:
{
"logging": {
"fileLoggingMode": "debugOnly",
"logLevel": {
"default": "Information",
"Host": "Error",
"Function": "Error",
"Host.Aggregator": "Information"
}
}
}
Naplószint-beállítással megakadályozhatja None
, hogy a naplók kategóriaként legyenek megírva.
Figyelem
Az Azure Functions az Alkalmazás Elemzések integrálva tárolja a telemetriai eseményeket az Alkalmazás Elemzések-táblákban. Ha egy kategórianapló-szintet bármilyen más Information
értékre állít be, az megakadályozza, hogy a telemetria az adott táblákba áramoljon. Ennek eredményeként nem fogja látni a kapcsolódó adatokat az Alkalmazás Elemzések vagy a Függvényfigyelő lapon.
A fenti mintákból:
- Ha a
Host.Results
kategória naplózási szintre van állítvaError
, akkor csak a sikertelen függvényvégrehajtások gazdagépvégrehajtási telemetriai eseményeit gyűjti össze arequests
táblában, megakadályozva a sikeres végrehajtások gazdagépvégrehajtási adatait az Alkalmazás Elemzések és a Függvényfigyelő lapon. - Ha a
Function
kategória naplózási szintre van állítvaError
, a függvény telemetriai adatainakdependencies
customMetrics
gyűjtését leállítja, éscustomEvents
az összes függvény esetében megakadályozza, hogy ezek az adatok megjelenjenek az Application Elemzések-ban. Csak szinttelError
naplózott adatokat gyűjttraces
össze.
Mindkét esetben továbbra is gyűjti a hibákat és kivételadatokat az Alkalmazás Elemzések és a Függvényfigyelő lapon. További információ: Megoldások nagy mennyiségű telemetriával.
Az összesítő konfigurálása
Ahogy az előző szakaszban is említettük, a futtatókörnyezet egy adott időszakban összesíti a függvényvégrehajtások adatait. Az alapértelmezett időszak 30 másodperc vagy 1000 futtatás, attól függően, hogy melyik az első. Ezt a beállítást a host.json fájlban konfigurálhatja. Példa:
{
"aggregator": {
"batchSize": 1000,
"flushTimeout": "00:00:30"
}
}
Mintavételezés konfigurálása
Az alkalmazás Elemzések 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. Ha a bejövő végrehajtások száma meghaladja a megadott küszöbértéket, az Application Insights véletlenszerűen figyelmen kívül hagyja a bejövő végrehajtások egy részét. A másodpercenkénti végrehajtások maximális száma alapértelmezés szerint 20 (az 1.x-es verzióban öt). A mintavételezést a host.jsonban konfigurálhatja. Példa:
{
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"maxTelemetryItemsPerSecond" : 20,
"excludedTypes": "Request;Exception"
}
}
}
}
Bizonyos típusú telemetriai adatokat kizárhat a mintavételezésből. Ebben a példában a típusadatok Request
Exception
szerepelnek a mintavételezésben. Biztosítja, hogy minden függvényvégrehajtást (kérést) és kivételt naplózzanak, míg más típusú telemetriai adatok mintavételezés alá kerülnek.
Ha a projekt az Alkalmazás Elemzések SDK-tól függ a manuális telemetriai nyomkövetéshez, furcsa viselkedést tapasztalhat, ha a mintavételezési konfiguráció eltér a függvényalkalmazás mintavételezési konfigurációjától. Ilyen esetekben ugyanazt a mintavételezési konfigurációt használja, mint a függvényalkalmazás. További információ: Mintavételezés az alkalmazás Elemzések.
SQL-lekérdezésgyűjtemény engedélyezése
Az alkalmazás Elemzések automatikusan adatokat gyűjt a HTTP-kérések, adatbázis-hívások és több kötés függőségeiről. További információért lásd: Függőségek. SQL-hívások esetén a rendszer mindig összegyűjti és tárolja a kiszolgáló és az adatbázis nevét, az SQL-lekérdezés szövegét azonban alapértelmezés szerint nem gyűjti a rendszer. dependencyTrackingOptions.enableSqlCommandTextInstrumentation
Az SQL-lekérdezés szövegnaplózásának engedélyezéséhez állítsa (legalább) a következőket a host.json fájlban:
"logging": {
"applicationInsights": {
"enableDependencyTracking": true,
"dependencyTrackingOptions": {
"enableSqlCommandTextInstrumentation": true
}
}
}
További információ: Speciális SQL-nyomkövetés a teljes SQL-lekérdezés lekéréséhez.
Skálázásvezérlő naplóinak konfigurálása
Ez a funkció előzetes verzióban érhető el.
Az Azure Functions skálázási vezérlője naplókat bocsáthat ki az Alkalmazás Elemzések vagy a Blob Storage számára, hogy jobban megértse a skálázási vezérlő által a függvényalkalmazáshoz hozott döntéseket.
A funkció engedélyezéséhez hozzáadhat egy alkalmazásbeállítást SCALE_CONTROLLER_LOGGING_ENABLED
a függvényalkalmazás beállításaihoz. A beállítás alábbi értékének formátumában <DESTINATION>:<VERBOSITY>
kell lennie:
Tulajdonság | Leírás |
---|---|
<DESTINATION> |
Az a cél, ahová a naplókat elküldik. Az érvényes értékek a következők: AppInsights és Blob .Ha használja AppInsights , győződjön meg arról, hogy az alkalmazás Elemzések engedélyezve van a függvényalkalmazásban.A célhely Blob beállításakor a rendszer naplókat hoz létre egy blobtárolóban azure-functions-scale-controller , amely az alkalmazásbeállításban beállított alapértelmezett tárfiókban AzureWebJobsStorage van. |
<VERBOSITY> |
Megadja a naplózás szintjét. A támogatott értékek a következők None : , Warning és Verbose .Ha be van Verbose állítva, a skálázási vezérlő naplózza a feldolgozók számának minden változásának okát, valamint a tényezők eseményindítóira vonatkozó információkat ezekre a döntésekre. Részletes naplók közé tartoznak az eseményindítók figyelmeztetései és az eseményindítók által a skálázásvezérlő futtatása előtt és után használt kivonatok. |
Tipp.
Ne feledje, hogy bár a skálázási vezérlő naplózását engedélyezve hagyja, az hatással van a függvényalkalmazás monitorozásának lehetséges költségeire. Fontolja meg a naplózás engedélyezését, amíg elegendő adatot nem gyűjt ahhoz, hogy megértse, hogyan működik a skálázási vezérlő, majd tiltsa le.
Az alábbi Azure CLI-parancs például bekapcsolja a részletes naplózást a méretezési vezérlőről az Application Elemzések:
az functionapp config appsettings set --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--settings SCALE_CONTROLLER_LOGGING_ENABLED=AppInsights:Verbose
Ebben a példában cserélje le <FUNCTION_APP_NAME>
a <RESOURCE_GROUP_NAME>
függvényalkalmazás nevét és az erőforráscsoport nevét.
Az alábbi Azure CLI-parancs letiltja a naplózást a részletesség None
beállításával:
az functionapp config appsettings set --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--settings SCALE_CONTROLLER_LOGGING_ENABLED=AppInsights:None
A naplózás letiltásához távolítsa el a beállítást az SCALE_CONTROLLER_LOGGING_ENABLED
alábbi Azure CLI-paranccsal:
az functionapp config appsettings delete --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--setting-names SCALE_CONTROLLER_LOGGING_ENABLED
Ha engedélyezve van a skálázásvezérlő naplózása, most már lekérdezheti a skálázásvezérlő naplóit.
Application Insights-integráció engedélyezése
Ahhoz, hogy egy függvényalkalmazás adatokat küldjön az Alkalmazás Elemzések, csak az alábbi alkalmazásbeállítások egyikével kell csatlakoznia az Alkalmazás Elemzések erőforráshoz:
A beállítás neve | Leírás |
---|---|
APPLICATIONINSIGHTS_CONNECTION_STRING | Ez az ajánlott beállítás, amelyre akkor van szükség, ha az alkalmazás Elemzések-példány szuverén felhőben fut. A kapcsolati sztring más új képességeket is támogat. |
APPINSIGHTS_INSTRUMENTATIONKEY | Örökölt beállítás, amelyet az Alkalmazás Elemzések elavult a kapcsolati sztring beállítás javára. |
Ha a függvényalkalmazást a parancssorból hozza létre az Azure Portalon az Azure Functions Core Tools vagy a Visual Studio Code használatával, alapértelmezés szerint engedélyezve lesz az alkalmazás Elemzések integrációja. Az alkalmazás Elemzések erőforrás neve megegyezik a függvényalkalmazás nevével, és ugyanabban a régióban vagy a legközelebbi régióban jön létre.
Új függvényalkalmazás a portálon
Az alkalmazás Elemzések létrehozott erőforrás áttekintéséhez jelölje ki az alkalmazás Elemzések ablakának kibontásához. Módosíthatja az új erőforrásnevet , vagy választhat egy másik helyet egy Azure-beli földrajzi helyen , ahol tárolni szeretné az adatokat.
Amikor a Létrehozás lehetőséget választja, egy alkalmazás Elemzések erőforrás jön létre a függvényalkalmazással, amely az APPLICATIONINSIGHTS_CONNECTION_STRING
alkalmazásbeállítások között van megadva. Minden készen áll.
Hozzáadás meglévő függvényalkalmazáshoz
Ha egy alkalmazás Elemzések erőforrás nem lett létrehozva a függvényalkalmazással, az alábbi lépésekkel hozhatja létre az erőforrást. Ezután hozzáadhatja az erőforrásból származó kapcsolati sztring alkalmazásbeállításként a függvényalkalmazásban.
Az Azure Portalon keresse meg és válassza ki a függvényalkalmazást, majd válassza ki a függvényalkalmazást.
Válassza ki az ablak tetején található Az Application Insights nincs konfigurálva szalagot. Ha nem látja ezt a szalagcímet, akkor előfordulhat, hogy az alkalmazás már engedélyezve van az alkalmazás Elemzések.
Bontsa ki az Erőforrás módosítása lehetőséget, és hozzon létre egy alkalmazás Elemzések erőforrást az alábbi táblázatban megadott beállításokkal:
Beállítás Ajánlott érték Leírás Új erőforrásnév Egyedi alkalmazásnév A legegyszerűbb, ha a függvényalkalmazás nevét használja, amelynek egyedinek kell lennie az előfizetésben. Helyen Nyugat-Európa Ha lehetséges, használja ugyanazt a régiót , mint a függvényalkalmazás vagy az ahhoz közeli régió. Válassza az Alkalmazás lehetőséget.
Az Application Insights-erőforrás ugyanabban az erőforráscsoportban és előfizetésben jön létre, ahol a függvényalkalmazás található. Az erőforrás létrehozása után zárja be az Alkalmazás Elemzések ablakot.
A függvényalkalmazásban válassza a Konfiguráció lehetőséget a Gépház területen, majd válassza az Alkalmazásbeállítások lehetőséget. Ha az
APPLICATIONINSIGHTS_CONNECTION_STRING
nevű beállítás megjelenik, akkor engedélyezve van az Application Insights-integráció az Azure-ban futó függvényalkalmazáshoz. Ha valamilyen okból ez a beállítás nem létezik, adja hozzá az alkalmazás Elemzések kapcsolati sztring értékként.
Feljegyzés
Előfordulhat, hogy a régebbi függvényalkalmazások nem APPINSIGHTS_INSTRUMENTATIONKEY
APPLICATIONINSIGHTS_CONNECTION_STRING
a . Ha lehetséges, frissítse az alkalmazást úgy, hogy a rendszerállapot-kulcs helyett a kapcsolati sztring használja.
A beépített naplózás letiltása
A Functions korai verziói beépített monitorozást használtak, ami már nem ajánlott. Az Alkalmazás Elemzések engedélyezésekor tiltsa le az Azure Storage-t használó beépített naplózást. A beépített naplózás hasznos a könnyű számítási feladatok teszteléséhez, de nem nagy terhelésű éles használatra készült. Az éles monitorozáshoz az Application Elemzések ajánlott. Ha a beépített naplózást éles környezetben használják, a naplózási rekord hiányos lehet az Azure Storage szabályozása miatt.
A beépített naplózás letiltásához törölje az alkalmazásbeállítást AzureWebJobsDashboard
. Az alkalmazásbeállítások azure portalon való törléséről a Függvényalkalmazások kezelése című témakör Alkalmazásbeállítások szakaszában olvashat bővebben. Az alkalmazásbeállítás törlése előtt győződjön meg arról, hogy ugyanabban a függvényalkalmazásban egyetlen meglévő függvény sem használja az Azure Storage-eseményindítók vagy kötések beállítását.
Megoldások nagy mennyiségű telemetriával
A függvényalkalmazások olyan megoldások alapvető részei, amelyek nagy mennyiségű telemetriát okozhatnak, például IoT-megoldásokat, gyors eseményvezérelt megoldásokat, nagy terhelésű pénzügyi rendszereket és integrációs rendszereket. Ebben az esetben érdemes megfontolni a további konfigurációt a költségek csökkentése érdekében a megfigyelhetőség fenntartása mellett.
A létrehozott telemetriai adatok felhasználhatók valós idejű irányítópultokon, riasztásokban, részletes diagnosztika és így tovább. A létrehozott telemetriai adatok felhasználásának módjától függően meg kell határoznia egy stratégiát a létrehozott adatok mennyiségének csökkentésére. Ez a stratégia lehetővé teszi, hogy megfelelően monitorozza, működtesse és diagnosztizálja a függvényalkalmazásokat éles környezetben. A következő lehetőségeket érdemes figyelembe vennie:
Mintavételezés használata: Ahogy korábban említettük, a statisztikailag helyes elemzés fenntartása mellett jelentősen csökkenti a betöltéskor beszúrt telemetriai események mennyiségét. Előfordulhat, hogy még a mintavételezéssel is nagy mennyiségű telemetriát kap. Vizsgálja meg az adaptív mintavételezési lehetőségeket. Állítsa be például egy
maxTelemetryItemsPerSecond
olyan értékre, amely egyensúlyba hozza a létrehozott kötetet a monitorozási igényeivel. Ne feledje, hogy a telemetriai mintavételezést a függvényalkalmazást végrehajtó gazdagépenként alkalmazza a rendszer.Alapértelmezett naplószint: Az
Warning
Error
összes telemetriai kategória alapértelmezett értéke. Most eldöntheti, hogy mely kategóriákat szeretné a szinten beállítaniInformation
, hogy megfelelően monitorozza és diagnosztizálhassa a függvényeket.A függvények telemetriájának finomhangolása: Az alapértelmezett naplószint beállításával
Error
vagyWarning
beállításával az egyes függvények részletes információi (függőségek, egyéni metrikák, egyéni események és nyomkövetések) nem lesznek összegyűjtve. Az éles monitorozás szempontjából kulcsfontosságú függvények esetében definiáljon egy explicit bejegyzést a kategóriáhozFunction.<YOUR_FUNCTION_NAME>
, és állítsa be úgyInformation
, hogy részletes információkat gyűjtsön. Ezen a ponton a felhasználó által létrehozott naplók szinten történő gyűjtésének elkerülése érdekében állítsa a kategóriát vagyWarning
aFunction.<YOUR_FUNCTION_NAME>.User
naplószintetError
.Information
Host.Aggregator kategória: A konfigurálási kategóriákban leírtaknak megfelelően ez a kategória összesített információkat biztosít a függvényhívásokról. A kategória információi az Application Elemzések
customMetrics
táblában találhatók, és az Azure Portal Áttekintés funkció lapján jelennek meg. Az aggregátor konfigurálásának módjától függően vegye figyelembe, hogy az összegyűjtött telemetria általflushTimeout
meghatározott késés lesz. Ha ezt a kategóriát más értékre állítja, mintInformation
a többi, akkor nem gyűjti össze az adatokat acustomMetrics
táblában, és nem jeleníti meg a metrikákat a függvény Áttekintés lapján.Az alábbi képernyőképen
Host.Aggregator
a függvény Áttekintés lapján megjelenő telemetriai adatok láthatók:Az alábbi képernyőképen a telemetriai adatok láthatók
Host.Aggregator
az Application ElemzésekcustomMetrics
táblában:Host.Results kategória: A konfigurálási kategóriákban leírtak szerint ez a kategória biztosítja a futtatókörnyezet által generált naplókat, amelyek egy függvényhívás sikerességét vagy sikertelenségét jelzik. Az ebből a kategóriából származó információk az Alkalmazás Elemzések
requests
táblában találhatók, és megjelennek a Figyelő funkció lapján és a különböző alkalmazás-Elemzések irányítópultokon (Teljesítmény, Hibák stb.). Ha ezt a kategóriát más értékre állítja be, mintInformation
a többi, akkor csak a megadott (vagy magasabb) naplószinten létrehozott telemetriát gyűjti össze. Ha például úgy állítja be, hogyerror
csak sikertelen végrehajtások esetén kövesse nyomon a kérelmek adatait.Az alábbi képernyőképen a
Host.Results
Függvényfigyelő lapon megjelenő telemetriai adatok láthatók:Az alábbi képernyőképen az
Host.Results
Alkalmazás Elemzések Teljesítmény irányítópultján megjelenő telemetriai adatok láthatók:Host.Aggregator vs Host.Results: Mindkét kategória jó betekintést nyújt a függvények végrehajtásába. Szükség esetén eltávolíthatja a részletes információkat az egyik kategóriából, így a másikat figyeléshez és riasztáshoz használhatja. Íme egy példa:
{
"version": "2.0",
"logging": {
"logLevel": {
"default": "Warning",
"Function": "Error",
"Host.Aggregator": "Error",
"Host.Results": "Information",
"Function.Function1": "Information",
"Function.Function1.User": "Error"
},
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"maxTelemetryItemsPerSecond": 1,
"excludedTypes": "Exception"
}
}
}
}
Ezzel a konfigurációval a következőkkel rendelkezik:
Az összes függvény- és telemetriakategória
Warning
alapértelmezett értéke (beleértve a Microsoft és a Feldolgozó kategóriát is). Így alapértelmezés szerint a futtatókörnyezet és az egyéni naplózás által generált összes hiba és figyelmeztetés összegyűjtve lesz.A
Function
kategórianapló szintje úgy van beállítva, hogyError
alapértelmezés szerint minden függvény esetében csak kivételek és hibanaplók legyenek összegyűjtve (a függőségek, a felhasználó által létrehozott metrikák és a felhasználó által létrehozott események kimaradnak).Host.Aggregator
A kategória naplószintreError
van állítva, a függvényhívásokból származó összesített információk nem lesznek összegyűjtve azcustomMetrics
Alkalmazás Elemzések táblában, és a végrehajtások számával (összesen, sikeres és sikertelen) kapcsolatos információk nem jelennek meg a függvény áttekintési irányítópultján.A
Host.Results
kategória esetében az összes gazdagép végrehajtási információja azrequests
Alkalmazás Elemzések táblában lesz összegyűjtve. Az összes meghívási eredmény megjelenik a Monitor függvény irányítópultján és az Alkalmazás Elemzések irányítópultokon.A hívott
Function1
függvény esetében a naplószintet a következőreInformation
állítottuk be: . Ezért ebben a konkrét függvényben a rendszer összegyűjti az összes telemetriát (függőségek, egyéni metrikák és egyéni események). Ugyanahhoz a függvényhez aFunction1.User
kategória (felhasználó által generált nyomkövetések) értéke van beállítvaError
, így csak az egyéni hibanaplózás lesz összegyűjtve.Feljegyzés
A függvényenkénti konfiguráció nem támogatott az 1.x verzióban.
A mintavételezés úgy van konfigurálva, hogy típusonként másodpercenként egy telemetriai elemet küldjön, kivéve a kivételeket. Ez a mintavételezés a függvényalkalmazást futtató összes kiszolgálói gazdagép esetében megtörténik. Ha tehát négy példányunk van, akkor ez a konfiguráció másodpercenként négy telemetriai elemet bocsát ki típusonként, valamint az esetleges kivételeket.
Feljegyzés
A metrikák száma, például a kérések sebessége és a kivételi arány a mintavételezési sebesség kompenzálása érdekében módosul, így a Metrikaböngészőben hozzávetőlegesen helyes értékeket mutatnak.
Tipp.
Kísérletezzen különböző konfigurációkkal, hogy megfeleljen a naplózásra, figyelésre és riasztásra vonatkozó követelményeknek. Emellett győződjön meg arról, hogy részletes diagnosztikával rendelkezik váratlan hibák vagy hibás működés esetén.
A monitorozási konfiguráció felülírása futtatókörnyezetben
Végül előfordulhatnak olyan helyzetek, amikor gyorsan módosítania kell egy adott kategória naplózási viselkedését az éles környezetben, és nem szeretne egy teljes üzembe helyezést csak a host.json fájl módosítása érdekében elvégezni. Ilyen esetekben felülbírálhatja a host.json értékeket.
Ha ezeket az értékeket alkalmazásbeállítások szintjén szeretné konfigurálni (és el szeretné kerülni a host.json-módosítások újbóli üzembe helyezését), felül kell bírálnia bizonyos host.json
értékeket úgy, hogy alkalmazásbeállításként azonos értéket hoz létre. Amikor a futtatókörnyezet egy alkalmazásbeállítást talál a formátumbanAzureFunctionsJobHost__path__to__setting
, felülírja a JSON-ban található path.to.setting
ezzel egyenértékű host.json
beállítást. Alkalmazásbeállításként kifejezve a JSON-hierarchia jelzésére használt pont (.
) helyébe dupla aláhúzásjel (__
) lép. Az alábbi alkalmazásbeállítások segítségével például konfigurálhatja az egyes függvénynapló-szinteket a fent leírtak szerint host.json
.
Host.json elérési útja | Alkalmazásbeállítás |
---|---|
logging.logLevel.default | AzureFunctionsJobHost__logging__logLevel__default |
logging.logLevel.Host.Aggregator | AzureFunctionsJobHost__logging__logLevel__Host__Aggregator |
logging.logLevel.Function | AzureFunctionsJobHost__logging__logLevel__Function |
logging.logLevel.Function.Function1 | AzureFunctionsJobHost__logging__logLevel__Function__Function1 |
logging.logLevel.Function.Function1.User | AzureFunctionsJobHost__logging__logLevel__Function__Function1__User |
A beállításokat felülbírálhatja közvetlenül az Azure Portal függvényalkalmazás konfigurációs paneljén, vagy egy Azure CLI- vagy PowerShell-szkripttel.
az functionapp config appsettings set --name MyFunctionApp --resource-group MyResourceGroup --settings "AzureFunctionsJobHost__logging__logLevel__Host__Aggregator=Information"
Feljegyzés
Ha felülírja az host.json
alkalmazásbeállítások módosítását, újraindul a függvényalkalmazás.
Az időszakokat tartalmazó alkalmazásbeállítások nem támogatottak, ha Linuxon futnak rugalmas prémium csomagban vagy dedikált (App Service-) csomagban. Ezekben az üzemeltetési környezetekben továbbra is a host.json fájlt kell használnia.
Függvényalkalmazások monitorozása állapotellenőrzéssel
Az Állapot-ellenőrzés funkcióval monitorozhat függvényalkalmazásokat a Prémium (Elastic Premium) és dedikált (App Service) csomagokban. Az állapot-ellenőrzés nem választható a Használati tervhez. A konfigurálás módjáról az App Service-példányok állapotellenőrzéssel való monitorozása című témakörben olvashat. A függvényalkalmazásnak rendelkeznie kell egy HTTP-eseményindító függvénnyel, amely egy 200-as HTTP-állapotkóddal válaszol ugyanazon a végponton, mint amelyet az állapot-ellenőrzés "Path" paraméterén konfiguráltak. Azt is megteheti, hogy ez a függvény további ellenőrzéseket végez annak érdekében, hogy a függő szolgáltatások elérhetők és működjenek.
Következő lépések
A monitorozással kapcsolatos további információkért lásd: