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


Az Azure Functions telemetriájának elemzése az Application Insightsban

Az Azure Functions integrálható az Application Insightsszal a függvényalkalmazások hatékonyabb monitorozása érdekében. Az Application Insights a függvényalkalmazás által létrehozott telemetriai adatokat gyűjti, 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 a függvényalkalmazás nem rendelkezik a rendszerállapotkulcs-készlettel, először engedélyeznie kell az Application Insights integrációját.

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. Ez a cikk alapvető példákat tartalmaz az összegyűjtött adatok megtekintésére és lekérdezésére. Ha többet szeretne megtudni a függvényalkalmazás adatainak az Application Insightsban való feltárásáról, olvassa el az Application Insights mi az az Application Insights?

Ahhoz, hogy egy függvényalkalmazásból meg lehessen tekinteni az Application Insights-adatokat, legalább közreműködői szerepkörrel kell rendelkeznie a függvényalkalmazásban. Az Application Insights-példány figyelési olvasói engedélyével is rendelkeznie kell. Ezeket az engedélyeket alapértelmezés szerint minden létrehozott függvényalkalmazáshoz és Application Insights-példányhoz használhatja.

Az adatmegőrzésről és a lehetséges tárolási költségekről további információt az Application Insights adatgyűjtése, megőrzése és tárolása című témakörben talál.

Telemetria megtekintése a Monitor lapon

Ha engedélyezve van az Application Insights integrációja, a telemetriaadatokat a Monitor lapon tekintheti meg.

  1. A függvényalkalmazás lapján válasszon ki egy olyan függvényt, amely legalább egyszer fut az Application Insights konfigurálása után. Ezután válassza a Figyelés lehetőséget a bal oldali panelen. Válassza a Rendszeres Frissítés lehetőséget, amíg meg nem jelenik a függvényhívások listája.

    Meghívások listája

    Feljegyzés

    Akár öt percig is eltarthat, amíg a lista megjelenik, amíg a telemetriai ügyfél kötegeli az adatokat a kiszolgálóra való átvitelhez. A késés nem vonatkozik az Élő metrikák streamre. Ez a szolgáltatás az oldal betöltésekor csatlakozik a Functions-gazdagéphez, így a naplók közvetlenül a lapra kerülnek.

  2. Egy adott függvényhívás naplóinak megtekintéséhez válassza a dátum (UTC) oszlophivatkozást az adott meghíváshoz. A meghívás naplózási kimenete egy új lapon jelenik meg.

    Meghívás részletei

  3. Válassza a Futtatás az Application Insightsban lehetőséget annak a lekérdezésnek a forrásának megtekintéséhez, amely az Azure Monitor naplóadatait kéri le az Azure Logban. Ha most használja először az Azure Log Analyticst az előfizetésében, a rendszer felkéri, hogy engedélyezze azt.

  4. A Log Analytics engedélyezése után a következő lekérdezés jelenik meg. Láthatja, hogy a lekérdezés eredményei az elmúlt 30 napra (where timestamp > ago(30d)) korlátozódnak, és az eredmények legfeljebb 20 sort (take 20) mutatnak. Ezzel szemben a függvény meghívási részleteinek listája az elmúlt 30 napra vonatkozik, korlátozás nélkül.

    Az Application Insights Analytics meghívási listája

További információ: A telemetriaadatok lekérdezése a cikk későbbi részében.

Telemetriai adatok megtekintése az Application Insightsban

Az Application Insights megnyitása függvényalkalmazásból az Azure Portalon:

  1. Keresse meg a függvényalkalmazást a portálon.

  2. A bal oldalon válassza az Application Insights lehetőséget a Beállítások területen.

  3. Ha először használja az Application Insightst az előfizetésével, a rendszer kérni fogja annak engedélyezését. Ehhez válassza az Application Insights bekapcsolása, majd az Alkalmaz gombot a következő lapon.

Az Application Insights megnyitása a függvényalkalmazás áttekintési oldaláról

Az Application Insights használatával kapcsolatos információkért tekintse meg az Application Insights dokumentációját. Ez a szakasz néhány példát mutat be arra, hogyan tekintheti meg az adatokat az Application Insightsban. Ha már ismeri az Application Insightst, közvetlenül a telemetriai adatok konfigurálásáról és testreszabásáról szóló szakaszokra léphet.

Application Insights – Áttekintés lap

Az Application Insights alábbi területei hasznosak lehetnek a függvények viselkedésének, teljesítményének és hibáinak kiértékelésekor:

Vizsgálat Leírás
Kudarcok Diagramok és riasztások létrehozása függvényhibák és kiszolgálókivételek alapján. A művelet neve a függvény neve. A függőségek hibái csak akkor jelennek meg, ha egyéni telemetriát implementál a függőségekhez.
Teljesítmény A teljesítményproblémák elemzése az erőforrás-kihasználtság és a felhőbeli szerepkörpéldányok átviteli sebességének megtekintésével. Ezek a teljesítményadatok olyan hibakeresési forgatókönyvek esetén hasznosak lehetnek, amelyekben a függvények lebomlik a mögöttes erőforrásokat.
Metrikák Metrikákon alapuló diagramokat és riasztásokat hozhat létre. A metrikák tartalmazzák a függvényhívások számát, a végrehajtási időt és a sikerességi arányokat.
Élő metrikák Közel valós időben létrehozott metrikák adatainak megtekintése.

Telemetriaadatok lekérdezése

Az Application Insights Analytics adatbázistáblák formájában hozzáférést biztosít az összes telemetriai adathoz. Az Analytics lekérdezési nyelvet biztosít az adatok kinyeréséhez, kezeléséhez és vizualizációjához.

Válassza a Naplók lehetőséget a naplózott események felderítéséhez vagy lekérdezéséhez.

Példa elemzésre

Íme egy lekérdezési példa, amely a kérések feldolgozónkénti eloszlását mutatja be az elmúlt 30 percben.

requests
| where timestamp > ago(30m) 
| summarize count() by cloud_RoleInstance, bin(timestamp, 1m)
| render timechart

Az elérhető táblák a bal oldali Séma lapon jelennek meg. A függvényhívások által létrehozott adatokat az alábbi táblázatokban találja:

Tábla Leírás
Nyomok A futtatókörnyezet, a skálázási vezérlő és a függvénykódból származó nyomkövetések által létrehozott naplók. A Flex Consumption-csomag üzemeltetéséhez traces a kódtelepítés során létrehozott naplókat is tartalmazza.
Kérelmek Egy kérés minden függvényhíváshoz.
Kivételek A futtatókörnyezet által kidobott kivételek.
customMetrics A sikeres és sikertelen meghívások száma, a sikerességi arány és az időtartam.
customEvents A futtatókörnyezet által nyomon követett események, például: függvényt aktiváló HTTP-kérések.
performanceCounters Információk a függvények által futtatott kiszolgálók teljesítményéről.

A többi tábla a rendelkezésre állási tesztekhez, valamint az ügyfél- és böngészőtelemetria. Egyéni telemetriát is implementálhat, hogy adatokat adjon hozzájuk.

Az egyes táblákban a Függvényspecifikus adatok egy része egy customDimensions mezőben található. Az alábbi lekérdezés például lekéri az összes naplószinttel Errorrendelkező nyomkövetést.

traces 
| where customDimensions.LogLevel == "Error"

A futtatókörnyezet biztosítja a mezőket és customDimensions.Category a customDimensions.LogLevel mezőket. A függvénykódba írt naplókban további mezőket is megadhat. A C#-ban például lásd a strukturált naplózást a .NET-osztálytár fejlesztői útmutatójában.

Lekérdezésfüggvény-meghívások

Minden függvényhíváshoz egyedi azonosító tartozik. InvocationId szerepel az egyéni dimenzióban, és az adott függvényvégrehajtás összes naplójának korrelálásához használható.

traces
| project customDimensions["InvocationId"], message

Telemetriai korreláció

A különböző függvényekből származó naplók korrelálhatók a következő használatával operation_Id: . Az alábbi lekérdezéssel visszaadhatja egy adott logikai művelet összes naplóit.

traces
| where operation_Id == '45fa5c4f8097239efe14a2388f8b4e29'
| project timestamp, customDimensions["InvocationId"], message
| order by timestamp

Mintavételezési százalék

Mintavételezési konfigurációval csökkenthető a telemetriai adatok mennyisége. Az alábbi lekérdezés segítségével megállapíthatja, hogy a mintavételezés működik-e vagy sem. Ha úgy látja, hogy a RetainedPercentage bármely típus esetében kisebb, mint 100, akkor az adott típusú telemetria mintavételezése folyamatban van.

union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > ago(1d)
| summarize RetainedPercentage = 100/avg(itemCount) by bin(timestamp, 1h), itemType

Lekérdezési skálázási vezérlő naplói

Ez a funkció előzetes verzióban érhető el.

A skálázási vezérlő naplózásának és az Application Insights integrációjának engedélyezése után az Application Insights naplókeresésével lekérdezheti a kibocsátott skálázási vezérlő naplóit. A skálázásvezérlő naplói a traces ScaleControllerLogs kategória gyűjteményében vannak mentve.

Az alábbi lekérdezéssel megkeresheti az aktuális függvényalkalmazás összes skálázási vezérlőnaplóját a megadott időtartamon belül:

traces 
| extend CustomDimensions = todynamic(tostring(customDimensions))
| where CustomDimensions.Category == "ScaleControllerLogs"

Az alábbi lekérdezés kibővül az előző lekérdezéssel, hogy bemutassa, hogyan kérhet le csak a skálázás változását jelző naplókat:

traces 
| extend CustomDimensions = todynamic(tostring(customDimensions))
| where CustomDimensions.Category == "ScaleControllerLogs"
| where message == "Instance count changed"
| extend Reason = CustomDimensions.Reason
| extend PreviousInstanceCount = CustomDimensions.PreviousInstanceCount
| extend NewInstanceCount = CustomDimensions.CurrentInstanceCount

Rugalmas kihasználtságú kód üzembehelyezési naplóinak lekérdezése

Az alábbi lekérdezéssel megkeresheti az aktuális függvényalkalmazás összes kódterjesztési naplóját a megadott időtartamon belül:

traces
| extend deploymentId = customDimensions.deploymentId
| where deploymentId != ''
| project timestamp, deploymentId, message, severityLevel, customDimensions, appName

Használati tervre vonatkozó metrikák

Használatalapú tervben való futtatáskor az egyetlen függvény végrehajtásának végrehajtási költségét GB-másodpercben méri a rendszer. A végrehajtási költség kiszámítása a memóriahasználat és a végrehajtási idő egyesítésével történik. További információ: A használati terv költségeinek becslése.

Az alábbi telemetriai lekérdezések olyan metrikákra vonatkoznak, amelyek befolyásolják a használati tervben lévő függvények futtatásának költségeit.

Memóriahasználat meghatározása

A Figyelés területen válassza a Naplók (Elemzés) lehetőséget, másolja ki a következő telemetriai lekérdezést, és illessze be a lekérdezési ablakba, és válassza a Futtatás lehetőséget. Ez a lekérdezés minden mintavételezett időpontban visszaadja a teljes memóriahasználatot.

performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value

Az eredmények a következő példához hasonlóan néznek ki:

időbélyeg [UTC] név Érték
2019.09.12. 1:05:14.947 Privát bájtok 209,932,288
2019.09.12., 1:06:14.994 Privát bájtok 212,189,184
2019.09.12. 1:06:30.010 Privát bájtok 231,714,816
2019.09.12., 1:07:15.040 Privát bájtok 210,591,744
2019.09.12., 1:12:16.285 Privát bájtok 216,285,184
2019.09.12., 1:12:31.376 Privát bájtok 235,806,720

Időtartam meghatározása

Az Azure Monitor az erőforrás szintjén követi nyomon a metrikákat, amelyek a Functions esetében a függvényalkalmazások. Az Application Insights-integráció függvényenként bocsát ki metrikákat. Íme egy példaelemzési lekérdezés egy függvény átlagos időtartamának lekéréséhez:

customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
név averageDurationMilliseconds
QueueTrigger AvgDurationMs 16.087
QueueTrigger MaxDurationMs 90.249
QueueTrigger MinDurationMs 8.522

Következő lépések

További információ az Azure Functions monitorozásáról: