EventCounters – bevezetés

EventCounter .NET/.NET Core-mechanizmus számlálók vagy statisztikák közzétételére és felhasználására. Az EventCounters minden operációsrendszer-platformon támogatott – Windows, Linux és macOS. Platformfüggetlen egyenértékűnek tekinthető a PerformanceCounters esetében, amelyet csak Windows-rendszerek támogatnak.

Bár a felhasználók bármilyen egyénit EventCounters közzétehetnek az igényeiknek megfelelően, a .NET alapértelmezés szerint közzéteszi ezeknek a számlálóknak a készletét. Ez a dokumentum végigvezeti a Azure-alkalmazás Elemzések gyűjtéséhez és megtekintéséhez EventCounters szükséges lépéseket (rendszer által definiált vagy felhasználó által definiált).

Feljegyzés

Az alábbi dokumentáció az Alkalmazás Elemzések klasszikus API-ra támaszkodik. Az Alkalmazás Elemzések hosszú távú terve az Adatok gyűjtése Az OpenTelemetria használatával. További információ: Az Azure Monitor OpenTelemetria engedélyezése .NET-, Node.js-, Python- és Java-alkalmazásokhoz.

Alkalmazás Elemzések használata az EventCounters gyűjtéséhez

Az alkalmazás Elemzések támogatja a gyűjtést EventCounters az EventCounterCollectionModuleújonnan kiadott Microsoft.Application NuGet-csomag részeként Elemzések. EventCounterCollector. EventCounterCollectionModuleA automatikusan engedélyezve van az AspNetCore vagy a WorkerService használatakor. EventCounterCollectionModule 60 másodperces nem konfigurálható gyűjtési gyakorisággal gyűjti a számlálókat. Az EventCounters gyűjtéséhez nincs szükség különleges engedélyekre. ASP.NET Core-alkalmazásokhoz a Microsoft.Application Elemzések is hozzá kell adnia. AspNetCore-csomag.

dotnet add package Microsoft.ApplicationInsights.EventCounterCollector
dotnet add package Microsoft.ApplicationInsights.AspNetCore

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

Az AspNetCore SDK vagy a WorkerService SDK 2.15.0-s verziójától kezdve alapértelmezés szerint nem gyűjt számlálókat. Maga a modul engedélyezve van, így a felhasználók hozzáadhatják a kívánt számlálókat az adatgyűjtéshez.

A .NET-futtatókörnyezet által közzétett jól ismert számlálók listájának lekéréséhez tekintse meg az Elérhető számlálók dokumentumot.

Gyűjtendő számlálók testreszabása

Az alábbi példa a számlálók hozzáadását/eltávolítását mutatja be. Ez a testreszabás az alkalmazásszolgáltatás konfigurációjának részeként történik, miután az Alkalmazás Elemzések telemetriai gyűjtemény engedélyezve lett az egyik AddApplicationInsightsTelemetry() vagy AddApplicationInsightsWorkerService()a . Az alábbi példakód egy ASP.NET Core-alkalmazásból származik. Más típusú alkalmazások esetén tekintse meg ezt a dokumentumot.

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

builder.Services.ConfigureTelemetryModule<EventCounterCollectionModule>(
        (module, o) =>
        {
            // Removes all default counters, if any.
            module.Counters.Clear();

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

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

Az EventCounter gyűjteménymodul letiltása

EventCounterCollectionModule funkcióval ApplicationInsightsServiceOptionsle lehet tiltani.

Az alábbi példa a ASP.NET Core SDK-t használja.

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

var applicationInsightsServiceOptions = new ApplicationInsightsServiceOptions();
applicationInsightsServiceOptions.EnableEventCounterCollectionModule = false;
builder.Services.AddApplicationInsightsTelemetry(applicationInsightsServiceOptions);

Hasonló megközelítés használható a WorkerService SDK-hoz is, de a névteret módosítani kell az alábbi példában látható módon.

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

var applicationInsightsServiceOptions = new ApplicationInsightsServiceOptions();
applicationInsightsServiceOptions.EnableEventCounterCollectionModule = false;
builder.Services.AddApplicationInsightsTelemetry(applicationInsightsServiceOptions);

Eseményszámlálók a Metric Explorerben

Az EventCounter-metrikák a Metric Explorerben való megtekintéséhez válassza az Alkalmazás Elemzések erőforrást, és válassza a naplóalapú metrikákat metrikanévtérként. Ezután az EventCounter-metrikák megjelennek az Egyéni kategóriában.

Event counters reported in Application Insights Metric Explorer

Eseményszámlálók az Analyticsben

A customMetrics táblában az Analyticsben is kereshet és jeleníthet meg eseményszámláló jelentéseket.

Futtassa például a következő lekérdezést, hogy lássa, milyen számlálók vannak összegyűjtve és elérhetők a lekérdezéshez:

customMetrics | summarize avg(value) by name

Event counters reported in Application Insights Analytics

Ha egy adott számláló diagramját (például: ThreadPool Completed Work Item Count) szeretné lekérni az elmúlt időszakban, futtassa az alábbi 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

Chat of a single counter in Application Insights

A többi telemetriához hasonlóan a customMetrics is rendelkezik egy oszloppalcloud_RoleInstance, amely annak a gazdagépkiszolgáló-példánynak az identitását jelzi, amelyen az alkalmazás fut. A fenti lekérdezés a példányonkénti számlálóértéket jeleníti meg, és a különböző kiszolgálópéldányok teljesítményének összehasonlítására használható.

Riasztások

Más metrikákhoz hasonlóan riasztást is beállíthat, amely figyelmezteti, ha egy eseményszámláló túllépi a megadott korlátot. Nyissa meg a Riasztások panelt, és válassza a Riasztás hozzáadása lehetőséget.

Gyakori kérdések

Láthatom az EventCounterst az élő metrikákban?

Az élő metrikák jelenleg nem jelenítik meg az EventCounterst. A telemetriai adatok megtekintéséhez használja a Metric Explorert vagy az Analyticset.

Engedélyeztem az Alkalmazás Elemzések az Azure Web App Portalról. Miért nem látom az EventCounterst?

A ASP.NET Core alkalmazás Elemzések bővítménye még nem támogatja ezt a funkciót.

Következő lépések