EventCounters bemutatása

EventCounter a .NET/.NET Core mechanizmusa számlálók vagy statisztikák közzétételére és felhasználására szolgál. A EventCounters minden operációsrendszer-platformon támogatott – Windows, Linux és macOS. Azt is megteheti, hogy a PerformanceCounters platformfüggetlen, csak Windows rendszerekben támogatott.

Míg a felhasználók bármilyen egyéni személyt közzétehetnek az EventCounters igényeik kielégítése érdekében, a .net Core 3,0 és a magasabb szintű futtatókörnyezet alapértelmezés szerint közzéteszi a számlálók készletét. Ez a dokumentum végigvezeti az Azure Application Insightsban való összegyűjtéséhez és megtekintéséhez szükséges lépéseken EventCounters (rendszer által definiált vagy felhasználó által definiált).

A Application Insights használata a EventCounters gyűjtéséhez

Application Insights támogatja a begyűjtést a EventCounters alkalmazással EventCounterCollectionModule , amely a Microsoft. ApplicationInsights. EventCounterCollectorújonnan kiadott NuGet-csomag részét képezi. EventCounterCollectionModule automatikusan engedélyezve van a AspNetCore vagy a WorkerServicehasználatakor. EventCounterCollectionModule a nem konfigurálható adatgyűjtési gyakorisággal (60 másodperc) gyűjti a számlálókat. A EventCounters gyűjtéséhez nincs szükség különleges engedélyekre.

Összegyűjtött alapértelmezett számlálók

A ASPNETCORE SDK vagy a WorkerService SDK2.15.0 verziójától kezdve a rendszer alapértelmezés szerint nem gyűjt számlálókat. A modul maga is engedélyezve van, így a felhasználók egyszerűen hozzáadhatják a kívánt számlálókat a gyűjtéshez.

A .NET-futtatókörnyezet által közzétett ismert számlálók listájának lekéréséhez tekintse meg a rendelkezésre álló számlálók dokumentumát.

A gyűjteni kívánt számlálók testreszabása

Az alábbi példa bemutatja, hogyan adhat hozzá vagy távolíthat el számlálókat. Ezt a testreszabást az ConfigureServices alkalmazás metódusa fogja elvégezni, miután Application Insights telemetria-gyűjtemény engedélyezve lett a AddApplicationInsightsTelemetry() vagy a használatával AddApplicationInsightsWorkerService() . A következő példa egy ASP.NET Core alkalmazásból származó kódot mutat be. Más típusú alkalmazások esetében tekintse meg ezt a dokumentumot.

    using Microsoft.ApplicationInsights.Extensibility.EventCounterCollector;
    using Microsoft.Extensions.DependencyInjection;

    public void ConfigureServices(IServiceCollection services)
    {
        //... other code...

        // The following code shows how to configure the module to collect
        // additional counters.
        services.ConfigureTelemetryModule<EventCounterCollectionModule>(
            (module, o) =>
            {
                // This removes all default counters, if any.
                module.Counters.Clear();

                // This adds a user defined counter "MyCounter" from EventSource named "MyEventSource"
                module.Counters.Add(new EventCounterCollectionRequest("MyEventSource", "MyCounter"));

                // This adds the system counter "gen-0-size" from "System.Runtime"
                module.Counters.Add(new EventCounterCollectionRequest("System.Runtime", "gen-0-size"));
            }
        );
    }

A EventCounter-gyűjtési modul letiltása

EventCounterCollectionModule a használatával letiltható ApplicationInsightsServiceOptions . Alább látható egy példa ASP.NET Core SDK használatára.

    using Microsoft.ApplicationInsights.AspNetCore.Extensions;
    using Microsoft.Extensions.DependencyInjection;

    public void ConfigureServices(IServiceCollection services)
    {
        //... other code...

        var applicationInsightsServiceOptions = new ApplicationInsightsServiceOptions();
        applicationInsightsServiceOptions.EnableEventCounterCollectionModule = false;
        services.AddApplicationInsightsTelemetry(applicationInsightsServiceOptions);
    }

A WorkerService SDK-hoz hasonló módszer is használható, de a névteret az alábbi példában látható módon kell módosítani.

    using Microsoft.ApplicationInsights.WorkerService;
    using Microsoft.Extensions.DependencyInjection;

    var applicationInsightsServiceOptions = new ApplicationInsightsServiceOptions();
    applicationInsightsServiceOptions.EnableEventCounterCollectionModule = false;
    services.AddApplicationInsightsTelemetryWorkerService(applicationInsightsServiceOptions);

Az események számlálói a metrika Explorerben

Az EventCounter mérőszámok megjelenítéséhez a metrika-kezelőbenválassza ki Application Insights erőforrást, majd a log-alapú metrikákat metrikai névtérként. Ezután az EventCounter mérőszámok az egyéni kategória alatt jelennek meg.

Application Insights metrika-kezelőben jelentett események számlálói

Az elemzési események számlálói

Az customMetrics táblában is kereshet és megjeleníthet Event Counter-jelentéseket az Analyticsben.

Például a következő lekérdezés futtatásával tekintheti meg, hogy a rendszer milyen számlálókat gyűjt, és hogyan érhető el a lekérdezéshez:

customMetrics | summarize avg(value) by name

Application Insights Analyticsben jelentett események számlálói

Egy adott számláló diagramjának lekéréséhez (például: ThreadPool Completed Work Item Count ) a legutóbbi időszak alatt futtassa a következő lekérdezést.

customMetrics 
| where name contains "System.Runtime|ThreadPool Completed Work Item Count"
| where timestamp >= ago(1h)
| summarize  avg(value) by cloud_RoleInstance, bin(timestamp, 1m)
| render timechart

Csevegés egyetlen számlálóról Application Insights

A többi telemetria hasonlóan a customMetrics is tartalmaz egy oszlopot, cloud_RoleInstance amely jelzi annak a gazdagép-példánynak az identitását, amelyen az alkalmazás fut. A fenti lekérdezés a számláló értékét jeleníti meg, és felhasználható a különböző kiszolgálói példányok teljesítményének összehasonlítására.

Riasztások

Más mérőszámokhoz hasonlóan riasztást is beállíthat , amely figyelmezteti, ha egy esemény számlálója a megadott korláton kívül esik. Nyissa meg a riasztások ablaktáblát, és kattintson a riasztás hozzáadása lehetőségre.

Gyakori kérdések

Láthatom a EventCounters az élő Mérőszámokban?

Az élő metrikák nem jelenítik meg a EventCounters a mai naptól. A telemetria megtekintéséhez használja a metrika Explorert vagy az elemzést.

Engedélyeztem Application Insights az Azure Web App Portalon. De nem látom a EventCounters.?

ASP.NET Core Application Insights bővítmény még nem támogatja ezt a funkciót. Ez a dokumentum akkor frissül, ha ez a funkció támogatott.

Következő lépések