Intelligens észlelés – Hibarendellenességek

Az alkalmazás Elemzések automatikusan közel valós időben riasztást küld, ha a webalkalmazás rendellenesen emelkedik a sikertelen kérelmek arányában. A sikertelenként jelentett HTTP-kérések vagy függőségi hívások gyakoriságának szokatlan növekedését észleli. A kérelmek esetében a sikertelen kérelmek válaszkódja általában 400 vagy annál magasabb. A probléma osztályozásának és diagnosztizálásának megkönnyítése érdekében a riasztás részleteiben a hibák jellemzőinek és a kapcsolódó alkalmazásadatoknak az elemzése is elérhető. A további diagnosztika érdekében az Alkalmazás Elemzések portálra mutató hivatkozások is találhatók. A szolgáltatásnak nincs szüksége beállításra és konfigurálásra, mivel gépi tanulási algoritmusokkal előrejelzi a normál hibaarányt.

Ez a funkció minden olyan webalkalmazáshoz használható, amely a felhőben vagy a saját kiszolgálóin fut, és amelyek alkalmazáskérelem- vagy függőségi adatokat hoznak létre. Ha például olyan feldolgozói szerepkörrel rendelkezik, amely TrackRequest() vagy TrackDependency()-t hív meg.

Miután beállította az alkalmazás Elemzések a projekthez, és ha az alkalmazás létrehoz egy bizonyos minimális mennyiségű adatot, a hibarendellenességek intelligens észlelése 24 órát vesz igénybe az alkalmazás normál viselkedésének megismeréséhez, mielőtt bekapcsolja, és riasztásokat küldhet.

Íme egy mintariasztás:

Minta intelligens észlelési riasztás, amely a fürtelemzést mutatja be a hibák körül.

A riasztás részletei a következőkről tájékoztatnak:

  • A hibaarány a normál alkalmazás viselkedéséhez képest.
  • Hány felhasználót érint a probléma , hogy tudja, mennyit kell aggódnia.
  • A hibákhoz társított jellemző minta. Ebben a példában egy adott válaszkód, kérelem neve (művelet) és alkalmazásverzió található. Ezzel azonnal megtudhatja, hogy hol kezdje el keresni a kódot. Más lehetőségek lehetnek egy adott böngésző vagy ügyfél operációs rendszer.
  • A kivétel, a naplókövetések és a függőségi hiba (adatbázisok vagy más külső összetevők), amelyek úgy tűnik, hogy az jellemző hibákhoz vannak társítva.
  • Közvetlenül az Alkalmazás Elemzések adataiban végzett releváns keresésekre mutató hivatkozások.

Az intelligens észlelés előnyei

A szokásos metrikariasztások azt jelzik , hogy probléma merülhet fel. Az intelligens észlelés azonban elindítja a diagnosztikai munkát, és elvégzi a saját maga által egyébként szükséges elemzést. Az eredményeket szépen csomagolja be, így gyorsan megtalálhatja a probléma gyökerét.

Működés

Az intelligens észlelés figyeli az alkalmazástól kapott adatokat, és különösen a meghibásodási arányokat. Ez a szabály megszámolja azoknak a kérelmeknek a számát, amelyeknél a Successful request tulajdonság hamis, és azon függőségi hívások számát, amelyek esetében a Successful call tulajdonság hamis. Kérések esetén alapértelmezés szerint (kivéve, Successful request == (resultCode < 400) ha egyéni kódot ír a saját TrackRequest-hívások szűréséhez vagy létrehozásához).

Az alkalmazás teljesítménye jellemző viselkedési mintával rendelkezik. Egyes kérések vagy függőségi hívások hajlamosabbak a hibákra, mint mások; és a terhelés növekedésével a teljes meghibásodási arány emelkedhet. Az intelligens észlelés gépi tanulással keresi meg ezeket az anomáliákat.

Mivel az adatok a webalkalmazásból érkeznek az Alkalmazás Elemzések, az intelligens észlelés összehasonlítja az aktuális viselkedést az elmúlt néhány napban látott mintákkal. Ha az érzékelő rendellenes hibaarány-emelkedést észlel a korábbi teljesítményhez képest, a detektor részletesebb elemzést indít el.

Amikor egy elemzés aktiválódik, a szolgáltatás fürtelemzést végez a meghiúsult kérésen, hogy azonosítsa a hibákat jellemző értékek mintáját.

A korábban bemutatott példában az elemzés megállapította, hogy a legtöbb hiba egy adott eredménykódról, a kérelem nevéről, a kiszolgáló URL-címének állomásáról és a szerepkörpéldányról szól.

Amikor ezekkel a hívásokkal rendszerezi a szolgáltatást, az elemző kivételt és függőségi hibát keres, amely az azonosított fürt kéréseihez van társítva. Emellett a kérelmekhez társított nyomkövetési naplókra is keres példát. A kapott riasztás tartalmazza ezt a további információt, amely kontextust biztosíthat az észleléshez, és utalhat az észlelt probléma kiváltó okára.

Riasztási logika részletei

A hiba anomáliák észlelése egy szabadalmaztatott gépi tanulási algoritmusra támaszkodik, így a riasztások kilövésének vagy kilövésének okai nem mindig determinisztikusak. Ezzel együtt az algoritmus által használt elsődleges tényezők a következők:

  • A kérelmek/függőségek meghibásodási százalékos arányának elemzése egy 20 perces gördülő időkeretben.
  • Az elmúlt 20 perc meghibásodási százalékának összehasonlítása az elmúlt 40 percben és az elmúlt hét napban érvényes aránysal. Az algoritmus olyan jelentős eltéréseket keres, amelyek meghaladják a szórás X-szeresét.
  • Az algoritmus adaptív korlátot használ a minimális hibaszázalékhoz, amely az alkalmazás kéréseinek/függőségeinek mennyiségétől függően változik.
  • Az algoritmus olyan logikát tartalmaz, amely automatikusan meg tudja oldani az aktivált riasztást, ha a probléma már nem észlelhető 8–24 órán keresztül. Megjegyzés: az aktuális tervben. Az intelligens észlelési riasztások feloldásakor a rendszer nem küld értesítést vagy műveletet. Ellenőrizheti, hogy az Intelligens észlelési riasztás feloldva lett-e az Azure Portalon.

Hiba anomáliák riasztási szabályainak kezelése

Riasztási szabály létrehozása

A hiba anomáliák riasztási szabálya automatikusan létrejön az alkalmazás Elemzések erőforrás létrehozásakor. A szabály automatikusan úgy van konfigurálva, hogy elemezze az adott erőforrás telemetriáját. A szabályt ismét létrehozhatja az Azure REST API-val vagy Resource Manager-sablonnal. A szabály létrehozása akkor lehet hasznos, ha a szabály automatikus létrehozása valamilyen okból meghiúsult, vagy ha törölte a szabályt.

Riasztási szabály konfigurálása

A hiba anomáliák riasztási szabályának a portálon való konfigurálásához nyissa meg a Riasztások lapot, és válassza a Riasztási szabályok lehetőséget. A hiba anomáliákra vonatkozó riasztási szabályok mellett a manuálisan beállított riasztásokat is tartalmazza.

Az Alkalmazás Elemzések erőforráslapon kattintson a Riasztások csempére, majd a Riasztási szabályok kezelése elemre.

Kattintson a riasztási szabályra a konfigurálásához.

Szabálykonfigurációs képernyő.

Letilthatja az intelligens észlelési riasztási szabályt a portálon vagy egy Azure Resource Manager-sablon használatával.

Ez a riasztási szabály egy "Alkalmazás Elemzések intelligens észlelés" nevű műveletcsoporttal jön létre. Ez a műveletcsoport alapértelmezés szerint e-mailben tartalmazza az Azure Resource Manager szerepkörműveleteit, és értesítést küld azoknak a felhasználóknak, akik figyelési közreműködői vagy figyelési olvasó-előfizetéssel rendelkeznek az előfizetésben. Eltávolíthatja, módosíthatja vagy hozzáadhatja a szabály által aktivált műveletcsoportokat, mint bármely más Azure-riasztási szabály esetében. A riasztási szabályból küldött értesítések a gyakori riasztási sémát követik.

Riasztások törlése

Törölheti a Hiba anomáliák riasztási szabályt.

Ezt manuálisan is megteheti a Riasztási szabályok lapon vagy a következő Azure CLI-paranccsal:

az resource delete --ids <Resource ID of Failure Anomalies alert rule>

Figyelje meg, hogy ha töröl egy alkalmazás Elemzések erőforrást, a társított hibarendellenességek riasztási szabálya nem törlődik automatikusan.

Példa hiba anomáliákra figyelmeztető riasztás webhook hasznos adataira

{
    "properties": {
        "essentials": {
            "severity": "Sev3",
            "signalType": "Log",
            "alertState": "New",
            "monitorCondition": "Resolved",
            "monitorService": "Smart Detector",
            "targetResource": "/subscriptions/4f9b81be-fa32-4f96-aeb3-fc5c3f678df9/resourcegroups/test-group/providers/microsoft.insights/components/test-rule",
            "targetResourceName": "test-rule",
            "targetResourceGroup": "test-group",
            "targetResourceType": "microsoft.insights/components",
            "sourceCreatedId": "1a0a5b6436a9b2a13377f5c89a3477855276f8208982e0f167697a2b45fcbb3e",
            "alertRule": "/subscriptions/4f9b81be-fa32-4f96-aeb3-fc5c3f678df9/resourcegroups/test-group/providers/microsoft.alertsmanagement/smartdetectoralertrules/failure anomalies - test-rule",
            "startDateTime": "2019-10-30T17:52:32.5802978Z",
            "lastModifiedDateTime": "2019-10-30T18:25:23.1072443Z",
            "monitorConditionResolvedDateTime": "2019-10-30T18:25:26.4440603Z",
            "lastModifiedUserName": "System",
            "actionStatus": {
                "isSuppressed": false
            },
            "description": "Failure Anomalies notifies you of an unusual rise in the rate of failed HTTP requests or dependency calls."
        },
        "context": {
            "DetectionSummary": "An abnormal rise in failed request rate",
            "FormattedOccurenceTime": "2019-10-30T17:50:00Z",
            "DetectedFailureRate": "50.0% (200/400 requests)",
            "NormalFailureRate": "0.0% (over the last 30 minutes)",
            "FailureRateChart": [
                [
                    "2019-10-30T05:20:00Z",
                    0
                ],
                [
                    "2019-10-30T05:40:00Z",
                    100
                ],
                [
                    "2019-10-30T06:00:00Z",
                    0
                ],
                [
                    "2019-10-30T06:20:00Z",
                    0
                ],
                [
                    "2019-10-30T06:40:00Z",
                    100
                ],
                [
                    "2019-10-30T07:00:00Z",
                    0
                ],
                [
                    "2019-10-30T07:20:00Z",
                    0
                ],
                [
                    "2019-10-30T07:40:00Z",
                    100
                ],
                [
                    "2019-10-30T08:00:00Z",
                    0
                ],
                [
                    "2019-10-30T08:20:00Z",
                    0
                ],
                [
                    "2019-10-30T08:40:00Z",
                    100
                ],
                [
                    "2019-10-30T17:00:00Z",
                    0
                ],
                [
                    "2019-10-30T17:20:00Z",
                    0
                ],
                [
                    "2019-10-30T09:00:00Z",
                    0
                ],
                [
                    "2019-10-30T09:20:00Z",
                    0
                ],
                [
                    "2019-10-30T09:40:00Z",
                    100
                ],
                [
                    "2019-10-30T10:00:00Z",
                    0
                ],
                [
                    "2019-10-30T10:20:00Z",
                    0
                ],
                [
                    "2019-10-30T10:40:00Z",
                    100
                ],
                [
                    "2019-10-30T11:00:00Z",
                    0
                ],
                [
                    "2019-10-30T11:20:00Z",
                    0
                ],
                [
                    "2019-10-30T11:40:00Z",
                    100
                ],
                [
                    "2019-10-30T12:00:00Z",
                    0
                ],
                [
                    "2019-10-30T12:20:00Z",
                    0
                ],
                [
                    "2019-10-30T12:40:00Z",
                    100
                ],
                [
                    "2019-10-30T13:00:00Z",
                    0
                ],
                [
                    "2019-10-30T13:20:00Z",
                    0
                ],
                [
                    "2019-10-30T13:40:00Z",
                    100
                ],
                [
                    "2019-10-30T14:00:00Z",
                    0
                ],
                [
                    "2019-10-30T14:20:00Z",
                    0
                ],
                [
                    "2019-10-30T14:40:00Z",
                    100
                ],
                [
                    "2019-10-30T15:00:00Z",
                    0
                ],
                [
                    "2019-10-30T15:20:00Z",
                    0
                ],
                [
                    "2019-10-30T15:40:00Z",
                    100
                ],
                [
                    "2019-10-30T16:00:00Z",
                    0
                ],
                [
                    "2019-10-30T16:20:00Z",
                    0
                ],
                [
                    "2019-10-30T16:40:00Z",
                    100
                ],
                [
                    "2019-10-30T17:30:00Z",
                    50
                ]
            ],
            "ArmSystemEventsRequest": "/subscriptions/4f9b81be-fa32-4f96-aeb3-fc5c3f678df9/resourceGroups/test-group/providers/microsoft.insights/components/test-rule/query?query=%0d%0a++++++++++++++++systemEvents%0d%0a++++++++++++++++%7c+where+timestamp+%3e%3d+datetime(%272019-10-30T17%3a20%3a00.0000000Z%27)+%0d%0a++++++++++++++++%7c+where+itemType+%3d%3d+%27systemEvent%27+and+name+%3d%3d+%27ProactiveDetectionInsight%27+%0d%0a++++++++++++++++%7c+where+dimensions.InsightType+in+(%275%27%2c+%277%27)+%0d%0a++++++++++++++++%7c+where+dimensions.InsightDocumentId+%3d%3d+%27718fb0c3-425b-4185-be33-4311dfb4deeb%27+%0d%0a++++++++++++++++%7c+project+dimensions.InsightOneClassTable%2c+%0d%0a++++++++++++++++++++++++++dimensions.InsightExceptionCorrelationTable%2c+%0d%0a++++++++++++++++++++++++++dimensions.InsightDependencyCorrelationTable%2c+%0d%0a++++++++++++++++++++++++++dimensions.InsightRequestCorrelationTable%2c+%0d%0a++++++++++++++++++++++++++dimensions.InsightTraceCorrelationTable%0d%0a++++++++++++&api-version=2018-04-20",
            "LinksTable": [
                {
                    "Link": "<a href=\"https://portal.azure.com/#blade/AppInsightsExtension/ProactiveDetectionFeedBlade/ComponentId/{\"SubscriptionId\":\"4f9b81be-fa32-4f96-aeb3-fc5c3f678df9\",\"ResourceGroup\":\"test-group\",\"Name\":\"test-rule\"}/SelectedItemGroup/718fb0c3-425b-4185-be33-4311dfb4deeb/SelectedItemTime/2019-10-30T17:50:00Z/InsightType/5\" target=\"_blank\">View full details in Application Insights</a>"
                }
            ],
            "SmartDetectorId": "FailureAnomaliesDetector",
            "SmartDetectorName": "Failure Anomalies",
            "AnalysisTimestamp": "2019-10-30T17:52:32.5802978Z"
        },
        "egressConfig": {
            "displayConfig": [
                {
                    "rootJsonNode": null,
                    "sectionName": null,
                    "displayControls": [
                        {
                            "property": "DetectionSummary",
                            "displayName": "What was detected?",
                            "type": "Text",
                            "isOptional": false,
                            "isPropertySerialized": false
                        },
                        {
                            "property": "FormattedOccurenceTime",
                            "displayName": "When did this occur?",
                            "type": "Text",
                            "isOptional": false,
                            "isPropertySerialized": false
                        },
                        {
                            "property": "DetectedFailureRate",
                            "displayName": "Detected failure rate",
                            "type": "Text",
                            "isOptional": false,
                            "isPropertySerialized": false
                        },
                        {
                            "property": "NormalFailureRate",
                            "displayName": "Normal failure rate",
                            "type": "Text",
                            "isOptional": false,
                            "isPropertySerialized": false
                        },
                        {
                            "chartType": "Line",
                            "xAxisType": "Date",
                            "yAxisType": "Percentage",
                            "xAxisName": "",
                            "yAxisName": "",
                            "property": "FailureRateChart",
                            "displayName": "Failure rate over last 12 hours",
                            "type": "Chart",
                            "isOptional": false,
                            "isPropertySerialized": false
                        },
                        {
                            "defaultLoad": true,
                            "displayConfig": [
                                {
                                    "rootJsonNode": null,
                                    "sectionName": null,
                                    "displayControls": [
                                        {
                                            "showHeader": false,
                                            "columns": [
                                                {
                                                    "property": "Name",
                                                    "displayName": "Name"
                                                },
                                                {
                                                    "property": "Value",
                                                    "displayName": "Value"
                                                }
                                            ],
                                            "property": "tables[0].rows[0][0]",
                                            "displayName": "All of the failed requests had these characteristics:",
                                            "type": "Table",
                                            "isOptional": false,
                                            "isPropertySerialized": true
                                        }
                                    ]
                                }
                            ],
                            "property": "ArmSystemEventsRequest",
                            "displayName": "",
                            "type": "ARMRequest",
                            "isOptional": false,
                            "isPropertySerialized": false
                        },
                        {
                            "showHeader": false,
                            "columns": [
                                {
                                    "property": "Link",
                                    "displayName": "Link"
                                }
                            ],
                            "property": "LinksTable",
                            "displayName": "Links",
                            "type": "Table",
                            "isOptional": false,
                            "isPropertySerialized": false
                        }
                    ]
                }
            ]
        }
    },
    "id": "/subscriptions/4f9b81be-fa32-4f96-aeb3-fc5c3f678df9/resourcegroups/test-group/providers/microsoft.insights/components/test-rule/providers/Microsoft.AlertsManagement/alerts/7daf8739-ca8a-4562-b69a-ff28db4ba0a5",
    "type": "Microsoft.AlertsManagement/alerts",
    "name": "Failure Anomalies - test-rule"
}

Riasztás osztályozása és diagnosztizálása

A riasztás azt jelzi, hogy a rendszer rendellenes emelkedést észlelt a sikertelen kérelmek arányában. Valószínű, hogy probléma van az alkalmazással vagy a környezetével.

A további vizsgálathoz kattintson a "Teljes részletek megtekintése az Alkalmazás Elemzések" elemre. Az ezen a lapon található hivatkozások közvetlenül a releváns kérésekre, kivételekre, függőségekre vagy nyomkövetésekre szűrt keresési lapra vezetnek. A további vizsgálathoz kattintson a "Teljes adatok megtekintése az Alkalmazás Elemzések" elemre. Az ezen a lapon található hivatkozások közvetlenül a releváns kérésekre, kivételekre, függőségekre vagy nyomkövetésekre szűrt keresőlapra viszik.

Megnyithatja az Azure Portalt is, megnyithatja az Alkalmazás Elemzések erőforrást az alkalmazáshoz, és megnyithatja a Hibák lapot.

A hibák diagnosztizálása gombra kattintva további részletekhez juthat, és megoldhatja a problémát.

Diagnosztikai keresés.

A kérelmek százalékos aránya és az érintett felhasználók száma alapján eldöntheti, hogy milyen sürgős a probléma. Az előző példában a 78,5%-os hibaarány a normál 2,2%-os rátával hasonlítható össze, ami azt jelzi, hogy valami rossz történik. Ezzel szemben csak 46 felhasználó érintett. Ezek az információk segíthetnek felmérni a probléma súlyosságát.

Sok esetben gyorsan diagnosztizálhatja a problémát a kérelem nevéből, kivételéből, függőségi hibájából és a megadott nyomkövetési adatokból.

Ebben a példában kivétel történt az SQL Database-ből a kérelemkorlát elérése miatt.

Sikertelen kérelem részletei.

Legutóbbi riasztások áttekintése

Kattintson az Alkalmazás Elemzések erőforráslap Riasztások gombjára a legutóbbi aktivált riasztások eléréséhez:

Riasztások összegzése.

Ha intelligens észlelési riasztást kap

Miért kaptam ezt a riasztást?

  • A sikertelen kérelmek arányának rendellenes növekedését észleltük az előző időszak normál alapkonfigurációhoz képest. A hibák és a kapcsolódó alkalmazásadatok elemzése után úgy gondoljuk, hogy van egy probléma, amelyet meg kell vizsgálnia.

Az értesítés azt jelenti, hogy egyértelműen problémám van?

  • Megpróbálunk riasztást adni az alkalmazások megszakadásával vagy romlásával kapcsolatban, de csak Ön tudja teljes mértékben megérteni az alkalmazásra vagy felhasználókra gyakorolt szemantikát és hatást.

Szóval az alkalmazásadataimat nézem?

  • Szám A szolgáltatás teljesen automatikus. Csak Ön kapja meg az értesítéseket. Az adatai privátak.

Elő kell fizetnem erre a riasztásra?

  • Szám Minden kérelemadatokat küldő alkalmazás rendelkezik intelligens észlelési riasztási szabmával.

Leiratkozhatok vagy lekérhetem a munkatársaimnak küldött értesítéseket?

  • Igen, a riasztási szabályokban kattintson az intelligens észlelési szabályra a konfigurálásához. Letilthatja a riasztást, vagy módosíthatja a riasztás címzettjeinek nevét.

Elvesztettem az e-mailt. Hol találom az értesítéseket a portálon?

  • A hiba anomáliákra vonatkozó riasztásokat az Azure Portalon, az Alkalmazás Elemzések riasztások oldalán találja.

Egyes riasztások ismert problémákról szólnak, és nem szeretném őket megkapni.

Következő lépések

Ezek a diagnosztikai eszközök segítenek az alkalmazás adatainak vizsgálatában:

Az intelligens észlelések automatikusak. De lehet, hogy szeretne még néhány riasztást beállítani?