Az Azure Functions telemetriájának elemzése az Alkalmazás Elemzések

Az Azure Functions integrálható az Application Insightsszal a függvényalkalmazások hatékonyabb monitorozása érdekében. Az alkalmazás Elemzések gyűjti a függvényalkalmazás által létrehozott telemetriai adatokat, beleértve az alkalmazás naplókba írt adatait is. Az alkalmazás-Elemzések integráció általában engedélyezve van a függvényalkalmazás létrehozásakor. Ha a függvényalkalmazás nem rendelkezik a rendszerállapot-kulcskészlettel, először engedélyeznie kell az alkalmazás Elemzések integrációját.

A függvényalkalmazásból gyűjtött adatokat alapértelmezés szerint az Alkalmazás Elemzések tárolja. Az Azure Portalon az Application Elemzések számos vizualizációt 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 Elemzések-ban való feltárásáról, olvassa el a Mi az alkalmazás Elemzések? című témakört.

Ahhoz, hogy az alkalmazás Elemzések adatokat láthasson egy függvényalkalmazásból, legalább közreműködői szerepkörrel kell rendelkeznie a függvényalkalmazásban. Emellett rendelkeznie kell a Figyelési olvasó engedéllyel az alkalmazás Elemzések-példányon. Ezeket az engedélyeket alapértelmezés szerint minden létrehozott függvényalkalmazáshoz és alkalmazáshoz Elemzések 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 Alkalmazás Elemzések adatgyűjtés, adatmegőrzés és tárolás című témakörben talál.

Telemetria megtekintése a Monitor lapon

Ha engedélyezve van az alkalmazás Elemzések integrációja, a Figyelő lapon tekintheti meg a telemetriai adatokat.

  1. A függvényalkalmazás lapján válasszon ki egy olyan függvényt, amely legalább egyszer futott az Alkalmazás Elemzések 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.

    Invocations list

    Megjegyzé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.

    Invocation details

  3. Válassza a Futtatás az alkalmazás Elemzések 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.

    Application Insights Analytics invocation list

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

Telemetria megtekintése az Alkalmazás Elemzések

Az Alkalmazás Elemzések megnyitása függvényalkalmazásból az Azure Portalon:

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

  2. Válassza az Alkalmazás Elemzéseklehetőséget a bal oldali Gépház alatt.

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

Open Application Insights from the function app Overview page

Az Alkalmazás Elemzések használatáról az Alkalmazás Elemzések dokumentációjában talál további információt. Ez a szakasz néhány példát mutat be arra, hogyan tekintheti meg az adatokat az Alkalmazás Elemzések. Ha már ismeri az Alkalmazás Elemzések, közvetlenül a telemetriai adatok konfigurálásáról és testreszabásáról szóló szakaszokra léphet.

Application Insights Overview tab

Az alkalmazás Elemzések 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 Elemzések Analytics az összes telemetriai adathoz hozzáférést biztosít táblák formájában egy adatbázisban. 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.

Analytics example

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

Sampling configuration can be used to reduce the volume of telemetry. 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 alkalmazás Elemzések integrációjának engedélyezése után az Alkalmazás Elemzések naplókereséssel 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

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 alkalmazás Elemzések integrációja 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: