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


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 Insightsban a (rendszer által definiált vagy felhasználó által definiált) adatgyűjtéshez és megtekintéshez EventCounters szükséges lépéseket.

Feljegyzés

Az alábbi dokumentáció a klasszikus Application Insights API-ra támaszkodik. Az Application Insights hosszú távú terve, hogy adatokat gyűjtsön az OpenTelemetry használatával. További információ: Az Azure Monitor OpenTelemetria engedélyezése .NET-, Node.js-, Python- és Java-alkalmazásokhoz , valamint az OpenTelemetria ütemterve. A migrálási útmutató a .NET, a Node.js és a Python esetében érhető el.

Az Application Insights használata az EventCounters gyűjtéséhez

Az Application Insights támogatja a gyűjtést EventCounters az EventCounterCollectionModuleújonnan kiadott Microsoft.ApplicationInsights.EventCounterCollector NuGet-csomag részeként. 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. Az ASP.NET Core-alkalmazásokhoz a Microsoft.ApplicationInsights.AspNetCore csomagot is hozzá kell adnia.

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. Ezt a testreszabást az alkalmazásszolgáltatás konfigurációjának részeként kell elvégezni, miután az Application Insights telemetriai gyűjtemény engedélyezve lett az AddApplicationInsightsTelemetry() egyik 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 Application Insights-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.

Az Application Insights Metric Explorerben jelentett eseményszámlálók

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

Az Application Insights Analyticsben jelentett eseményszámlálók

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

Egyetlen számláló csevegése az Application Insightsban

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 Application Insights szolgáltatást az Azure Web App Portalon. Miért nem látom az EventCounterst?

A ASP.NET Core Application Insights-bővítménye még nem támogatja ezt a funkciót.

Következő lépések