Megosztás a következőn keresztül:


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 Insights egy bővíthető Application Performance Management (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 is. Az Application Insights integrációja általában engedélyezve van a függvényalkalmazás létrehozásakor. Ha az alkalmazás nem rendelkezik a rendszerállapot-kulcskészlettel, először engedélyeznie kell az Application Insights integrációját.

Az Application Insights egyéni konfiguráció nélkül is használható. Az alapértelmezett konfiguráció azonban nagy mennyiségű adatot eredményezhet. Ha Visual Studio Azure-előfizetést használ, előfordulhat, hogy eléri az Application Insights adatkorlátját. Az Application Insights költségeiről további információt az Application Insights számlázásában talál. További információ: Megoldások nagy mennyiségű telemetriával.

Ebben a cikkben megtudhatja, hogyan konfigurálhatja és szabhatja testre a függvények által az Application Insightsba küldött adatokat. A host.json fájlban beállíthatja a gyakori naplózási konfigurációkat. Alapértelmezés szerint ezek a beállítások a kód által kibocsátott egyéni naplókat is szabályozzák. Bizonyos esetekben azonban 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ó: Egyéni alkalmazásnaplók.

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. Ezzel hatékonyan módosíthatja host.json beállításait anélkül, hogy újra közzé kellene tennie a host.json fájlt a projektben. További információért olvassa el a Host.json értékek felülbírálása témakört.

Egyéni alkalmazásnaplók

Alapértelmezés szerint az ön által írt egyéni alkalmazásnaplók a Functions-gazdagépre kerülnek, majd elküldi őket az Application Insightsnak a Feldolgozó kategóriában. Egyes nyelvi veremekkel ehelyett közvetlenül az Application Insightsba küldheti a naplókat, így teljes mértékben szabályozhatja az írott naplók kibocsátásának módját. Ebben az esetben a naplózási folyamat a következőre worker -> Functions host -> Application Insights worker -> Application Insightsváltozik: .

Az alábbi táblázat az egyes veremekhez elérhető konfigurációs beállításokat foglalja össze:

Nyelvi verem Egyéni naplók konfigurálása
.NET (folyamatban lévő modell) host.json
.NET (izolált modell) Alapértelmezett (egyéni naplók küldése a Functions-gazdagépre): host.json
Ha közvetlenül az Application Insightsnak szeretne naplókat küldeni, tekintse meg a következőt: Application Insights konfigurálása a HostBuilderben
Node.JS host.json
Python host.json
Java Alapértelmezett (egyéni naplók küldése a Functions-gazdagépre): host.json
Ha közvetlenül az Application Insightsnak szeretne naplókat küldeni, tekintse meg az Application Insights Java-ügynök konfigurálását
PowerShell host.json

Amikor egyéni alkalmazásnaplókat konfigurál közvetlenül elküldésre, a gazdagép többé nem bocsátja ki őket, és host.json többé nem szabályozza azok viselkedését. 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. Ebben az esetben az összes napló viselkedésének szabályozásához előfordulhat, hogy mindkét konfigurációban 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 rendeli Function.<FUNCTION_NAME>.Userhozzá: .

Az alábbi táblázat 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 mind a Information szinten vannak megírva. Ha ennél magasabbra vagy magasabbra Warning szűr, 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 mind a Information szinten vannak megírva. Ha ennél magasabbra vagy magasabbra Warning szűr, 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 a Information szinten 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 Application Insights melyik táblára írja 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üld az Application Insightsnak.

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 és Host.Results alacsonyabb szintekre vannak beállítva. A naplózási szintek túl magas (különösen magasabb) Informationbeállítása metrikák és teljesítményadatok elvesztését eredményezheti.
  • A függvényfuttatások naplózása a következőre Informationvan állítva: . Szükség esetén felülbírálhatja ezt a beállítást a helyi fejlesztésben Debug Trace.
{
  "logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "default": "Warning",
      "Host.Aggregator": "Trace",
      "Host.Results": "Information",
      "Function": "Information"
    }
  }
}

Ha host.json ugyanazon sztringgel kezdődő több naplót is tartalmaz, 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.Aggregatora 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.

Figyelemfelhívás

Az Azure Functions az Application Insights szolgáltatással integrálva tárolja a telemetriai eseményeket az Application Insights-táblákban. Ha a kategórianapló-szintet bármilyen más Informationértékre állítja be, az megakadályozza, hogy a telemetria az adott táblákba áramoljon, és az Application Insights és a Függvényfigyelő lapon nem fogja látni a kapcsolódó adatokat.

Például az előző minták esetében:

  • Ha a Host.Results kategóriát a naplószintre állítja, az Error Azure csak a gazdavégrehajtási telemetriai eseményeket gyűjti össze a requests táblában a sikertelen függvényvégrehajtások esetében, megakadályozva a sikeres végrehajtások gazdagép-végrehajtási adatainak megjelenítését az Application Insights és a Függvényfigyelő lapon.
  • Ha a Function kategóriát a naplószintre állítja, az nem gyűjti össze a Error függvény telemetriai adatait dependenciesaz customMetrics, és customEvents az összes függvény esetében, így nem tekintheti meg ezeket az adatokat az Application Insightsban. Az Azure csak traces a Error szinten naplózott adatokat gyűjti.

Az Azure mindkét esetben továbbra is gyűjti a hibákat és a kivételek adatait az Application Insights é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 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. 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 host.json 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 a rendszer naplózza az összes függvényvégrehajtást (kérést) és kivételt, míg más típusú telemetriai adatok mintavételezés tárgyát képezik.

Ha a projekt az Application Insights SDK-tól függ a manuális telemetriai nyomkövetéshez, szokatlan 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 Application Insightsban.

SQL-lekérdezésgyűjtemény engedélyezése

Az Application Insights automatikusan adatokat gyűjt a HTTP-kérések, adatbázis-hívások és több kötés függőségérő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 használja a következő beállításokat (legalább) 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 Application Insightsban vagy a Blob Storage-ban, hogy jobban megértse a skálázásvezérlő által a függvényalkalmazáshoz hozott döntéseket.

A funkció engedélyezéséhez adjon hozzá 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. További információkért lásd a következő táblázatot:

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 Application Insights engedélyezve van a függvényalkalmazásban.
A célhely Blobbeá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 Insightsra:

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 Nonebeá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 Application Insightsnak, csak az alábbi alkalmazásbeállítások egyikével kell csatlakoznia az Application Insights-erőforráshoz:

A beállítás neve Leírás
APPLICATIONINSIGHTS_CONNECTION_STRING Ez a beállítás ajánlott, és akkor szükséges, ha az Application Insights-példány szuverén felhőben fut. A kapcsolati sztring más új képességeket is támogat.
APPLICATIONINSIGHTS_AUTHENTICATION_STRING Microsoft Entra-hitelesítéssel csatlakozik az Application Insightshoz. Az érték egy rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitás ügyfélazonosítóját tartalmazza, amely jogosult telemetriai adatok közzétételére az Application Insights-munkaterületen. A sztring formátuma ClientId=<YOUR_CLIENT_ID>;Authorization=AAD: . További információ: Microsoft Entra authentication for Application Insights.
APPINSIGHTS_INSTRUMENTATIONKEY Örökölt beállítás, amelyet az Application Insights elavult a kapcsolati sztring beállítás javára.

Ha a függvényalkalmazást az Azure Portalon hozza létre a parancssorból az Azure Functions Core Tools vagy a Visual Studio Code használatával, az Application Insights integrációja alapértelmezés szerint engedélyezve lesz. Az Application Insights-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.

Feljegyzés

APPLICATIONINSIGHTS_AUTHENTICATION_STRING Ha Microsoft Entra-hitelesítéssel szeretne csatlakozni az Application Insightshoz, tiltsa le az Application Insights helyi hitelesítését is. Ehhez a konfigurációhoz Microsoft Entra-hitelesítés szükséges ahhoz, hogy a telemetriát betöltse a munkaterületre.

Új függvényalkalmazás a portálon

A létrehozott Application Insights-erőforrás áttekintéséhez jelölje ki az Application Insights 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.

Képernyőkép az Application Insights funkcióalkalmazás létrehozásakor történő engedélyezéséről.

Amikor a Létrehozás lehetőséget választja, egy Application Insights-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 Application Insights-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.

  1. Az Azure Portalon keresse meg és válassza ki a függvényalkalmazást, majd válassza ki a függvényalkalmazást.

  2. 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élyezte az Application Insights szolgáltatást.

    Képernyőkép az Application Insights portálról való engedélyezéséről.

  3. Bontsa ki az Erőforrás módosítása és az Application Insights-erőforrás létrehozása az alábbi táblázatban megadott beállítások használatával:

    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ó.

    Az Application Insights-erőforrások létrehozását bemutató képernyőkép.

  4. 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 Application Insights ablakot.

  5. A függvényalkalmazásban bontsa ki a Beállítások elemet, majd válassza a Környezeti változók lehetőséget. Az Alkalmazásbeállítások lapon, ha megjelenik egy alkalmazásbeállítás neveAPPLICATIONINSIGHTS_CONNECTION_STRING, az Application Insights integrációja engedélyezve van az Azure-ban futó függvényalkalmazáshoz. Ha ez a beállítás nem létezik, adja hozzá az Application Insights kapcsolati sztring értékként.

Feljegyzés

A régebbi függvényalkalmazások használhatják APPINSIGHTS_INSTRUMENTATIONKEY ahelyett, APPLICATIONINSIGHTS_CONNECTION_STRINGhogy . Ha lehetséges, frissítse az alkalmazást úgy, hogy a kapcsolati sztring használja a rendszerállapot-kulcs helyett.

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 Application Insights 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 Insightst javasoljuk. Ha a beépített naplózást éles környezetben használja, 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 generált telemetria felhasználásá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. Vegye figyelembe a következő lehetőségeket:

  • Mintavételezés használata: Ahogy korábban említettük, a mintavételezés segít jelentősen csökkenteni a beszúrt telemetriai események mennyiségét a statisztikailag helyes elemzés fenntartása mellett. 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. Később eldöntheti, hogy mely kategóriákat szeretné beállítani a Information szinten, 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 vagy Warningbeállításával az egyes függvények nem gyűjtenek részletes információkat (függőségek, egyéni metrikák, egyéni események és nyomkövetések). Az éles monitorozás szempontjából kulcsfontosságú függvények esetében adjon meg egy explicit bejegyzést a Function.<YOUR_FUNCTION_NAME> kategóriához, és állítsa be Informationúgy, hogy részletes információkat gyűjtsön. Ha el szeretné kerülni a felhasználó által létrehozott naplók gyűjtését a Information szinten, állítsa a Function.<YOUR_FUNCTION_NAME>.User kategóriát a vagy Warning a Error naplószintre.

  • 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 Insights 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 a flushTimeout beállítás által meghatározott késés is előfordulhat az összegyűjtött telemetriában. Ha ezt a kategóriát más Informationértékre állítja be, akkor nem gyűjti össze az adatokat a customMetrics 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:

    Képernyőkép a Host.Aggregator telemetriai adatairól az Áttekintés funkció lapon.

    Az alábbi képernyőképen a telemetriai adatok láthatók Host.Aggregator az Application Insights customMetrics táblában:

    Képernyőkép a Host.Aggregator telemetriáról a customMetrics Application Insights 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 Application Insights requests táblában találhatók, és a Monitor függvény lapján és a különböző Application Insights-irányítópultokon (Teljesítmény, Hibák stb.) jelennek meg. Ha ezt a kategóriát más értékre állítja be, mint Informationaz, akkor csak a megadott (vagy magasabb) naplószinten létrehozott telemetriát gyűjti össze. Ha például úgy állítja be, hogy error 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:

    Képernyőkép a Host.Results telemetriai adatairól a Függvényfigyelő lapon.

    Az alábbi képernyőképen az Host.Results Application Insights teljesítmény irányítópultján megjelenő telemetriai adatok láthatók:

    Képernyőkép a Host.Results telemetriáról az Application Insights teljesítmény irányítópultján.

  • 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:

  • 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, hogy Erroralapértelmezés szerint minden függvény esetében csak kivételek és hibanaplók legyenek összegyűjtve. A rendszer kihagyja a függőségeket, a felhasználó által létrehozott metrikákat és a felhasználó által létrehozott eseményeket.

  • Host.Aggregator A kategória esetében, mivel a naplószintre van állítva, a Error függvényhívásokból származó összesített információk nem lesznek összegyűjtve az customMetrics Application Insights 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 az requests Application Insights 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 Application Insights-irányítópultokon.

  • A hívott Function1függvény esetében a naplószintet a következőre Informationállítjuk 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 a kategóriát (a Function1.User felhasználó által létrehozott nyomkövetéseket) Errorállítjuk be, így csak az egyéni hibanaplózás lesz összegyűjtve.

    Feljegyzés

    A függvényenkénti konfiguráció nem támogatott a Functions-futtatókörnyezet 1.x verziójá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ó egyes kiszolgáló-gazdagépek esetében tö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 elkerülni az újbóli üzembe helyezést csak host.json módosítások esetében), 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 () helyett dupla aláhúzásjel (__.) lép. Az alábbi alkalmazásbeállítások használatával például konfigurálhatja az egyes függvénynapló-szinteket a következőben host.json:

Host.json elérési út 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ások felülbírálhatók közvetlenül az Azure Portal függvényalkalmazás konfigurációs paneljén, vagy egy Azure CLI- vagy PowerShell-szkript használatával.

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 Állapotellenőrzés funkcióval figyelheti a függvényalkalmazásokat a Prémium (Elastic Premium) és a Dedikált (App Service) csomagokban. Az állapot-ellenőrzés nem lehetőség a Használat csomagra. 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 az állapot-ellenőrzés paraméterén konfigurált végponton Path 200-as HTTP-állapotkóddal válaszol. 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.

A monitorozással kapcsolatos további információkért lásd: