Aracılığıyla paylaş


EventCounters'a giriş

EventCounter , sayaçları veya istatistikleri yayımlamak ve kullanmak için .NET/.NET Core mekanizmasıdır. EventCounters, Windows, Linux ve macOS gibi tüm işletim sistemi platformlarında desteklenir. Yalnızca Windows sistemlerinde desteklenen PerformanceCounters için platformlar arası eşdeğeri olarak düşünülebilir.

Kullanıcılar gereksinimlerini karşılamak için herhangi bir özel EventCounters öğeyi yayımlasa da, .NET varsayılan olarak bu sayaçların bir kümesini yayımlar. Bu belge, Azure Uygulaması Analizler toplama ve görüntüleme EventCounters (sistem tanımlı veya kullanıcı tanımlı) için gereken adımlarda yol gösterir.

Not

Aşağıdaki belgeler, Uygulama Analizler klasik API'sine dayanır. Uygulama Analizler için uzun vadeli plan, OpenTelemetry kullanarak veri toplamaktır. Daha fazla bilgi için bkz . .NET, Node.js, Python ve Java uygulamaları için Azure İzleyici OpenTelemetry'yi etkinleştirme.

EventCounters toplamak için Uygulama Analizler kullanma

Uygulama Analizler, yeni yayımlanan Microsoft.Application Analizler NuGet paketinin bir parçası olan ile EventCounterCollectionModuletoplamayı EventCounters destekler. EventCounterCollector. EventCounterCollectionModuleAspNetCore veya WorkerService kullanılırken otomatik olarak etkinleştirilir. EventCounterCollectionModule 60 saniyelik yapılandırılamayan koleksiyon sıklığına sahip sayaçları toplar. EventCounters'ı toplamak için özel izin gerekmez. ASP.NET Core uygulamaları için Microsoft.Application Analizler da eklemek istiyorsunuz. AspNetCore paketi.

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

Toplanan varsayılan sayaçlar

AspNetCore SDK veya WorkerService SDK'sının 2.15.0 sürümünden itibaren varsayılan olarak hiçbir sayaç toplanmaz. Modülün kendisi etkinleştirildiğinden, kullanıcılar bunları toplamak için istenen sayaçları ekleyebilir.

.NET Çalışma Zamanı tarafından yayımlanan iyi bilinen sayaçların listesini almak için Bkz . Kullanılabilir Sayaçlar belgesi.

Toplanacak sayaçları özelleştirme

Aşağıdaki örnekte sayaçların nasıl ekleneceği/kaldırılacağı gösterilmektedir. Bu özelleştirme, Uygulama Analizler telemetri koleksiyonu veya AddApplicationInsightsWorkerService()kullanılarak AddApplicationInsightsTelemetry() etkinleştirildikten sonra uygulama hizmeti yapılandırmanızın bir parçası olarak yapılır. Aşağıda, ASP.NET Core uygulamasından örnek bir kod verilmiştir. Diğer uygulama türleri için bu belgeye bakın.

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"));
        }
    );

EventCounter koleksiyon modülünü devre dışı bırakma

EventCounterCollectionModule kullanılarak ApplicationInsightsServiceOptionsdevre dışı bırakılabilir.

Aşağıdaki örnekte ASP.NET Core SDK'sı kullanılmaktadır.

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

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

WorkerService SDK'sı için de benzer bir yaklaşım kullanılabilir, ancak ad alanı aşağıdaki örnekte gösterildiği gibi değiştirilmelidir.

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

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

Ölçüm Gezgini'ndeki olay sayaçları

Ölçüm Gezgini'nde EventCounter ölçümlerini görüntülemek için Uygulama Analizler kaynağı'na tıklayın ve ölçüm ad alanı olarak Günlük tabanlı ölçümler'i seçin. Ardından EventCounter ölçümleri Özel kategorisi altında görüntülenir.

Event counters reported in Application Insights Metric Explorer

Analytics'teki olay sayaçları

Ayrıca, customMetrics tablosundaki Analytics'te olay sayacı raporlarını arayabilir ve görüntüleyebilirsiniz.

Örneğin, hangi sayaçların toplandığını ve sorgu için kullanılabilir olduğunu görmek için aşağıdaki sorguyu çalıştırın:

customMetrics | summarize avg(value) by name

Event counters reported in Application Insights Analytics

Son dönemde belirli bir sayacın (örneğin: ThreadPool Completed Work Item Count) grafiğini almak için aşağıdaki sorguyu çalıştırın.

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

Diğer telemetrilerde olduğu gibi customMetrics'de de uygulamanızın üzerinde çalıştığı konak sunucu örneğinin kimliğini gösteren bir sütun cloud_RoleInstance bulunur. Yukarıdaki sorgu örnek başına sayaç değerini gösterir ve farklı sunucu örneklerinin performansını karşılaştırmak için kullanılabilir.

Uyarılar

Diğer ölçümlerde olduğu gibi, bir olay sayacı belirttiğiniz sınırın dışına çıktığında sizi uyaracak bir uyarı ayarlayabilirsiniz. Uyarılar bölmesini açın ve Uyarı Ekle'yi seçin.

Sık sorulan sorular

Canlı Ölçümlerde EventCounters'ı görebilir miyim?

Canlı Ölçümler bugünden itibaren EventCounters'i göstermez. Telemetri verilerini görmek için Ölçüm Gezgini'ni veya Analiz'i kullanın.

Azure Web App Portalı'ndan Uygulama Analizler etkinleştirdim. EventCounters'ı neden göremiyorum?

ASP.NET Core için uygulama Analizler uzantısı henüz bu özelliği desteklemez.

Sonraki adımlar