Özel olaylar ve ölçümler için Application Insights API
Kullanıcıların uygulamayla ne yaptığını öğrenmek veya sorunları tanılamaya yardımcı olmak için uygulamanıza birkaç kod satırı ekleyin. Cihaz ve masaüstü uygulamalarından, web istemcilerinden ve web sunucularından telemetri gönderebilirsiniz. Özel olayları ve ölçümleri ve kendi standart telemetri sürümlerinizi göndermek için Application Insights çekirdek telemetri API'sini kullanın. Bu API, standart Application Insights veri toplayıcılarının kullandığı API ile aynıdır.
Not
31 Mart 2025’te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirme veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizesi geçiş.
API özeti
Çekirdek API, (yalnızca.NET) gibi GetMetric
birkaç varyasyon dışında tüm platformlarda tekdüzendir.
Metot | Kullanıldığı yerler |
---|---|
TrackPageView |
Sayfalar, ekranlar, bölmeler veya formlar. |
TrackEvent |
Kullanıcı eylemleri ve diğer olaylar. Kullanıcı davranışını izlemek veya performansı izlemek için kullanılır. |
GetMetric |
Sıfır ve çok boyutlu ölçümler, merkezi olarak yapılandırılmış toplama, yalnızca C# . |
TrackMetric |
Belirli olaylarla ilgili olmayan kuyruk uzunlukları gibi performans ölçümleri. |
TrackException |
Tanılama için özel durumları günlüğe kaydetme. Diğer olaylarla ilgili olarak nerede oluştuklarını izleme ve yığın izlemelerini inceleme. |
TrackRequest |
Performans analizi için sunucu isteklerinin sıklığını ve süresini günlüğe kaydetme. |
TrackTrace |
Kaynak Tanılama günlük iletileri. Ayrıca üçüncü taraf günlüklerini de yakalayabilirsiniz. |
TrackDependency |
Uygulamanızın bağımlı olduğu dış bileşenlere yapılan çağrıların süresini ve sıklığını günlüğe kaydetme. |
Bu telemetri çağrılarının çoğuna özellikler ve ölçümler ekleyebilirsiniz.
Başlamadan önce
Application Insights SDK'sı üzerinde henüz bir başvurunuz yoksa:
Application Insights SDK'sını projenize ekleyin:
Cihaz veya web sunucusu kodunuzda şunları ekleyin:
C#:
using Microsoft.ApplicationInsights;
Visual Basic:
Imports Microsoft.ApplicationInsights
Java:
import com.microsoft.applicationinsights.TelemetryClient;
Node.js:
var applicationInsights = require("applicationinsights");
TelemetryClient örneği alma
Örneğini TelemetryClient
alın (web sayfalarında JavaScript hariç):
ASP.NET Core uygulamaları ve .NET/.NET Core uygulamaları için HTTP/Çalışan Olmayan uygulamalar için, ilgili belgelerinde açıklandığı gibi bağımlılık ekleme kapsayıcısından örneğini TelemetryClient
alın.
Azure İşlevleri v2+ veya Azure WebJobs v3+ kullanıyorsanız bkz. İzleme Azure İşlevleri.
C#
private TelemetryClient telemetry = new TelemetryClient();
Bu yöntemin kullanımdan kaldırıldığını belirten bir ileti görürseniz daha fazla bilgi için bkz . microsoft/ApplicationInsights-dotnet#1152 .
Visual Basic
Private Dim telemetry As New TelemetryClient
Java
private TelemetryClient telemetry = new TelemetryClient();
Node.js
var telemetry = applicationInsights.defaultClient;
TelemetryClient
iş parçacığı güvenlidir.
ASP.NET ve Java projeleri için gelen HTTP istekleri otomatik olarak yakalanır. Uygulamanızın diğer modülleri için daha fazla örneği TelemetryClient
oluşturmak isteyebilirsiniz. Örneğin, ara yazılım sınıfınızda iş mantığı olaylarını raporlamak için bir TelemetryClient
örneğiniz olabilir. Makineyi tanımlamak için ve DeviceId
gibi UserId
özellikleri ayarlayabilirsiniz. Bu bilgiler, örneğin gönderdiği tüm olaylara eklenir.
C#
TelemetryClient.Context.User.Id = "...";
TelemetryClient.Context.Device.Id = "...";
Java
telemetry.getContext().getUser().setId("...");
telemetry.getContext().getDevice().setId("...");
Node.js projelerinde, yeni bir örnek oluşturmak için kullanabilirsiniz new applicationInsights.TelemetryClient(instrumentationKey?)
. Bu yaklaşımı yalnızca tekliden defaultClient
yalıtılmış yapılandırma gerektiren senaryolar için öneririz.
TrackEvent
Application Insights'ta özel olay, Ölçüm Gezgini'nde toplu sayı olarak ve Tanılama Arama'da tek tek oluşum olarak görüntüleyebileceğiniz bir veri noktasıdır. (MVC veya diğer "olaylar" çerçevesiyle ilgili değildir.)
Çeşitli olayları saymak için kodunuza çağrılar ekleyin TrackEvent
. Örneğin, kullanıcıların belirli bir özelliği ne sıklıkta seçtiğini izlemek isteyebilirsiniz. Ya da belirli hedeflere ne sıklıkta ulaştıklarını veya belirli hata türlerini yaptıklarını bilmek isteyebilirsiniz.
Örneğin, bir oyun uygulamasında, bir kullanıcı oyunu her kazandığında bir etkinlik gönderin:
JavaScript
appInsights.trackEvent({name:"WinGame"});
C#
telemetry.TrackEvent("WinGame");
Visual Basic
telemetry.TrackEvent("WinGame")
Java
telemetry.trackEvent("WinGame");
Node.js
telemetry.trackEvent({name: "WinGame"});
Log Analytics'te özel olaylar
Telemetriyi Application Insights Günlükleri sekmesindeki customEvents
tabloda veya kullanım deneyiminde bulabilirsiniz. Olaylar Veya Click Analytics Otomatik toplama eklentisinden trackEvent(..)
gelebilir.
Örnekleme işlemi devam ederse özelliği değerinden itemCount
1
büyük bir değer gösterir. Örneğin, itemCount==10
örnekleme işleminin 10 çağrısından trackEvent()
yalnızca birini iletmiş olduğu anlamına gelir. Özel olayların doğru sayısını almak için gibi customEvents | summarize sum(itemCount)
bir kod kullanın.
Not
itemCount değerinin en az bir değeri vardır; kaydın kendisi bir girdiyi temsil eder.
GetMetric
.NET ve .NET Core uygulamaları için yerel olarak önceden toplanmış ölçümleri yakalamak üzere çağrıyı GetMetric()
etkili bir şekilde kullanmayı öğrenmek için bkz . .NET ve .NET Core'da özel ölçüm koleksiyonu.
TrackMetric
Not
Microsoft.ApplicationInsights.TelemetryClient.TrackMetric
ölçümleri göndermek için tercih edilen yöntem değildir. Ölçümler gönderilmeden önce her zaman bir zaman aralığında önceden toplanmalıdır. SDK ön toplama özelliklerine GetMetric(..)
erişmek için bir ölçüm nesnesi almak için aşırı yüklemelerden birini kullanın.
Kendi ön toplama mantığınızı uyguluyorsanız, elde edilen toplamları göndermek için yöntemini kullanabilirsiniz TrackMetric()
. Uygulamanız zaman içinde toplama olmadan her durumda ayrı bir telemetri öğesi göndermeyi gerektiriyorsa, büyük olasılıkla olay telemetrisi için bir kullanım örneğine sahipsinizdir. Bkz. TelemetryClient.TrackEvent (Microsoft.ApplicationInsights.DataContracts.EventTelemetry)
.
Application Insights, belirli olaylara eklenmemiş ölçümlerin grafiğini oluşturabilir. Örneğin, bir kuyruk uzunluğunu düzenli aralıklarla izleyebilirsiniz. Ölçümlerle, tek tek ölçümler varyasyonlardan ve eğilimlerden daha az ilgi çekicidir ve bu nedenle istatistiksel grafikler kullanışlıdır.
Application Insights'a ölçüm göndermek için API'yi TrackMetric(..)
kullanabilirsiniz. Ölçüm göndermenin iki yolu vardır:
Tek değer. Uygulamanızda her ölçüm gerçekleştirdiğinizde ilgili değeri Application Insights'a gönderirsiniz.
Örneğin, kapsayıcıdaki öğe sayısını açıklayan bir ölçüme sahip olduğunuzu varsayalım. Belirli bir süre boyunca, kapsayıcıya önce üç öğe koyarsınız ve sonra iki öğeyi kaldırırsınız. Buna göre, iki kez ararsın
TrackMetric
. İlk olarak değerini geçirir3
ve sonra değerini-2
geçirirsiniz. Application Insights her iki değeri de sizin için depolar.Toplama. Ölçümlerle çalışırken, her ölçüm nadiren ilgi çekicidir. Bunun yerine, belirli bir zaman aralığında gerçekleşenlerin özeti önemlidir. Böyle bir özet toplama olarak adlandırılır.
Yukarıdaki örnekte, bu dönemin toplam ölçüm toplamı ve
1
ölçüm değerlerinin sayısı şeklindedir2
. Toplama yaklaşımını kullandığınızda, zaman aralığı başına yalnızca bir kez çağırırTrackMetric
ve toplama değerlerini gönderirsiniz. Tüm ilgili bilgileri toplamaya devam ederken Application Insights'a daha az veri noktası göndererek maliyet ve performans ek yükünü önemli ölçüde azaltabileceğinden bu yaklaşımı öneririz.
Tek değer örnekleri
Tek bir ölçüm değeri göndermek için:
JavaScript
appInsights.trackMetric({name: "queueLength", average: 42});
C#
var sample = new MetricTelemetry();
sample.Name = "queueLength";
sample.Sum = 42.3;
telemetryClient.TrackMetric(sample);
Java
telemetry.trackMetric("queueLength", 42.0);
Node.js
telemetry.trackMetric({name: "queueLength", value: 42.0});
Log Analytics'te özel ölçümler
Telemetriyi Application Insights Analytics'teki customMetrics
tabloda bulabilirsiniz. Her satır, uygulamanızdaki bir çağrıyı trackMetric(..)
temsil eder.
valueSum
: Ölçümlerin toplamı. Ortalama değeri almak için değerine bölünvalueCount
.valueCount
: ButrackMetric(..)
çağrıda toplanan ölçülerin sayısı.
Not
valueCount değerinin en az bir değeri vardır; kaydın kendisi bir girdiyi temsil eder.
Sayfa görünümleri
Bir cihaz veya web sayfası uygulamasında, her ekran veya sayfa yüklendiğinde sayfa görünümü telemetrisi varsayılan olarak gönderilir. Ancak, sayfa görünümlerini daha fazla veya farklı zamanlarda izlemek için varsayılanı değiştirebilirsiniz. Örneğin, sekmeleri veya bölmeleri görüntüleyen bir uygulamada, kullanıcı yeni bir bölme açtığında sayfayı izlemek isteyebilirsiniz.
Kullanıcı ve oturum verileri, sayfa görünümleri ile birlikte özellik olarak gönderilir, böylece sayfa görünümü telemetrisi olduğunda kullanıcı ve oturum grafikleri canlanır.
Özel sayfa görünümleri
JavaScript
appInsights.trackPageView("tab1");
C#
telemetry.TrackPageView("GameReviewPage");
Visual Basic
telemetry.TrackPageView("GameReviewPage")
Java
telemetry.trackPageView("GameReviewPage");
Farklı HTML sayfalarında birkaç sekmeniz varsa URL'yi de belirtebilirsiniz:
appInsights.trackPageView("tab1", "http://fabrikam.com/page1.htm");
Zamanlama sayfası görünümleri
Varsayılan olarak, Sayfa görünümü yükleme süresi olarak bildirilen süreler tarayıcının isteği gönderdiği zamandan tarayıcının sayfa yükleme olayı çağrılana kadar ölçülür.
Bunun yerine şunları yapabilirsiniz:
- trackPageView çağrısında açık bir süre ayarlayın:
appInsights.trackPageView("tab1", null, null, null, durationInMilliseconds);
. - Sayfa görünümü zamanlama çağrılarını
startTrackPage
vestopTrackPage
kullanın.
JavaScript
// To start timing a page:
appInsights.startTrackPage("Page1");
...
// To stop timing and log the page:
appInsights.stopTrackPage("Page1", url, properties, measurements);
İlk parametre olarak kullandığınız ad, başlatma ve durdurma çağrılarını ilişkilendirir. Varsayılan olarak geçerli sayfa adını kullanır.
Ölçüm Gezgini'nde görüntülenen sonuçta elde edilen sayfa yükleme süreleri, başlatma ve durdurma çağrıları arasındaki aralıktan türetilir. Aslında hangi zaman aralığına zaman ayırdığınız size bağlı.
Log Analytics'te sayfa telemetrisi
Log Analytics'te iki tablo tarayıcı işlemlerinden verileri gösterir:
pageViews
: URL ve sayfa başlığı hakkındaki verileri içerir.browserTimings
: Gelen verileri işlemek için geçen süre gibi istemci performansıyla ilgili verileri içerir.
Tarayıcının farklı sayfaları işlemesinin ne kadar sürdüğünü bulmak için:
browserTimings
| summarize avg(networkDuration), avg(processingDuration), avg(totalDuration) by name
Farklı tarayıcıların popülerliğini keşfetmek için:
pageViews
| summarize count() by client_Browser
Sayfa görünümlerini AJAX çağrılarıyla ilişkilendirmek için bağımlılıklarla birleştirin:
pageViews
| join (dependencies) on operation_Id
TrackRequest
Sunucu SDK'sı HTTP isteklerini günlüğe kaydetmek için kullanır TrackRequest
.
Web hizmeti modülünün çalışmadığı bir bağlamda isteklerin benzetimini yapmak istiyorsanız kendiniz de çağırabilirsiniz.
İstek telemetrisi göndermenin önerilen yolu, isteğin bir işlem bağlamı görevi gördüğü yerdir.
İşlem bağlamı
Telemetri öğelerini işlem bağlamıyla ilişkilendirerek birbiriyle ilişkilendirebilirsiniz. Standart istek izleme modülü, bir HTTP isteği işlenirken gönderilen özel durumlar ve diğer olaylar için bunu yapar. Arama ve Analiz bölümünde, işlem kimliğini kullanarak istekle ilişkili tüm olayları kolayca bulabilirsiniz.
Bağıntı hakkında daha fazla bilgi için bkz . Application Insights'ta telemetri bağıntısı.
Telemetriyi el ile izlediğinizde, telemetri bağıntısını sağlamanın en kolay yolu şu deseni kullanmaktır:
C#
// Establish an operation context and associated telemetry item:
using (var operation = telemetryClient.StartOperation<RequestTelemetry>("operationName"))
{
// Telemetry sent in here will use the same operation ID.
...
telemetryClient.TrackTrace(...); // or other Track* calls
...
// Set properties of containing telemetry item--for example:
operation.Telemetry.ResponseCode = "200";
// Optional: explicitly send telemetry item:
telemetryClient.StopOperation(operation);
} // When operation is disposed, telemetry item is sent.
İşlem bağlamı ayarlamanın yanı sıra, StartOperation
belirttiğiniz türde bir telemetri öğesi oluşturur. İşlemi attığınızda veya açıkça çağırırsanız StopOperation
telemetri öğesini gönderir. Telemetri türü olarak kullanırsanız RequestTelemetry
, süresi başlangıç ve durdurma arasındaki zamanlanmış aralamaya ayarlanır.
bir işlem kapsamında bildirilen telemetri öğeleri, böyle bir işlemin alt öğeleri haline gelir. İşlem bağlamları iç içe yerleştirilmiş olabilir.
Arama'da, işlem bağlamı İlgili Öğeler listesini oluşturmak için kullanılır.
Özel işlemleri izleme hakkında daha fazla bilgi için bkz . Application Insights .NET SDK ile özel işlemleri izleme.
Log Analytics'teki istekler
Application Insights Analytics'te requests
istekler tabloda gösterilir.
Örnekleme işlemi devam ederse özelliği değerinden itemCount
1
büyük bir değer gösterir. Örneğin, itemCount==10
örnekleme işleminin 10 çağrısından trackRequest()
yalnızca birini iletmiş olduğu anlamına gelir. İsteklerin doğru sayısını ve istek adlarına göre segmentlere ayrılmış ortalama süreyi almak için aşağıdaki gibi bir kod kullanın:
requests
| summarize count = sum(itemCount), avgduration = avg(duration) by name
TrackException
Application Insights'a özel durumlar gönderme:
- Bir sorunun sıklığının göstergesi olarak bunları saymak için.
- Tek tek oluşumları incelemek için.
Raporlar yığın izlemelerini içerir.
C#
try
{
...
}
catch (Exception ex)
{
telemetry.TrackException(ex);
}
Java
try {
...
} catch (Exception ex) {
telemetry.trackException(ex);
}
JavaScript
try
{
...
}
catch (ex)
{
appInsights.trackException({exception: ex});
}
Node.js
try
{
...
}
catch (ex)
{
telemetry.trackException({exception: ex});
}
SDK'lar birçok özel durumu otomatik olarak yakalar, bu nedenle her zaman açıkça çağırmanız TrackException
gerekmez:
- ASP.NET: Özel durumları yakalamak için kod yazın.
- Java EE: Özel durumlar otomatik olarak yakalanıyor.
- JavaScript: Özel durumlar otomatik olarak yakalanıyor. Otomatik koleksiyonu devre dışı bırakmak istiyorsanız, web sayfalarınıza eklediğiniz JavaScript (Web) SDK Yükleyici Betiğine bir satır ekleyin:
({
instrumentationKey: "your key",
disableExceptionTracking: true
})
Log Analytics'teki özel durumlar
Application Insights Analytics'teexceptions
, tabloda özel durumlar gösterilir.
Örnekleme işlemi devam ederse özelliği değerinden itemCount
1
büyük bir değer gösterir. Örneğin, itemCount==10
örnekleme işleminin 10 çağrısından trackException()
yalnızca birini iletmiş olduğu anlamına gelir. Özel durum türüne göre segmentlere ayrılmış özel durumların doğru sayısını almak için aşağıdaki gibi bir kod kullanın:
exceptions
| summarize sum(itemCount) by type
Önemli yığın bilgilerinin çoğu zaten ayrı değişkenlere ayıklanır, ancak daha fazlasını elde etmek için yapıyı details
ayırabilirsiniz. Bu yapı dinamik olduğundan, sonucu beklediğiniz türe atamanız gerekir. Örneğin:
exceptions
| extend method2 = tostring(details[0].parsedStack[1].method)
Özel durumları ilgili istekleriyle ilişkilendirmek için birleştirme kullanın:
exceptions
| join (requests) on operation_Id
TrackTrace
Application Insights'a "içerik haritası izi" göndererek sorunları tanılamaya yardımcı olmak için kullanın TrackTrace
. Tanılama verilerinin öbeklerini gönderebilir ve Tanılama Arama'da inceleyebilirsiniz.
.NET Günlük bağdaştırıcılarında, portala üçüncü taraf günlükleri göndermek için bu API'yi kullanın.
Java'da Application Insights Java aracısı günlükleri otomatik olarak alır ve portala gönderir.
C#
telemetry.TrackTrace(message, SeverityLevel.Warning, properties);
Java
telemetry.trackTrace(message, SeverityLevel.Warning, properties);
Node.js
telemetry.trackTrace({
message: message,
severity: applicationInsights.Contracts.SeverityLevel.Warning,
properties: properties
});
İstemci/Tarayıcı Tarafı JavaScript
trackTrace({
message: string,
properties?: {[string]:string},
severityLevel?: SeverityLevel
})
Yöntem girme veya bırakma gibi bir tanılama olayını günlüğe kaydetme.
Parametre | Açıklama |
---|---|
message |
Tanılama verileri. Bir isimden çok daha uzun olabilir. |
properties |
Dize ile dizenin eşle. Portaldaki özel durumları filtrelemek için daha fazla veri kullanılır. Varsayılan olarak boş olur. |
severityLevel |
Desteklenen değerler: SeverityLevel.ts. |
İleti içeriğinde arama yapabilirsiniz, ancak özellik değerlerinin aksine, bu içeriğe filtre ekleyemezsiniz.
üzerindeki message
boyut sınırı, özelliklerdeki sınırdan çok daha yüksektir. Bunun bir avantajı TrackTrace
, iletiye görece uzun veriler koyabilmenizdir. Örneğin, POST verilerini orada kodlayabilirsiniz.
İletinize bir önem düzeyi de ekleyebilirsiniz. Ayrıca, diğer telemetrilerde olduğu gibi, farklı izleme kümelerini filtrelemenize veya aramanıza yardımcı olmak için özellik değerleri ekleyebilirsiniz. Örneğin:
C#
var telemetry = new Microsoft.ApplicationInsights.TelemetryClient();
telemetry.TrackTrace("Slow database response",
SeverityLevel.Warning,
new Dictionary<string,string> { {"database", db.ID} });
Java
Map<String, Integer> properties = new HashMap<>();
properties.put("Database", db.ID);
telemetry.trackTrace("Slow Database response", SeverityLevel.Warning, properties);
Arama'da, belirli bir veritabanıyla ilgili belirli bir önem düzeyine ait tüm iletileri kolayca filtreleyebilirsiniz.
Log Analytics'teki izlemeler
Application Insights Analytics'tetraces
, tabloda gösterilecek çağrılarTrackTrace
.
Örnekleme işlemi devam ederse özelliği değerinden itemCount
1
büyük bir değer gösterir. Örneğin, itemCount==10
örnekleme işleminin 10 çağrısından trackTrace()
yalnızca birini iletmiş olduğu anlamına gelir. İzleme çağrılarının doğru sayısını almak için gibi traces | summarize sum(itemCount)
bir kod kullanın.
TrackDependency
Dış kod parçasına TrackDependency
yapılan çağrıların yanıt sürelerini ve başarı oranlarını izlemek için çağrıyı kullanın. Sonuçlar portaldaki bağımlılık grafiklerinde görünür. Bağımlılık çağrısının yapıldığı her yere aşağıdaki kod parçacığı eklenmelidir.
Not
.NET ve .NET Core için alternatif olarak, bağıntı TelemetryClient.StartOperation
için gereken özellikleri ve başlangıç zamanı ve süre gibi diğer bazı özellikleri dolduran DependencyTelemetry
(uzantı) yöntemini kullanabilirsiniz, bu nedenle aşağıdaki örneklerde olduğu gibi özel bir zamanlayıcı oluşturmanız gerekmez. Daha fazla bilgi için Application Insights .NET SDK ile özel işlemleri izleme bölümündeki giden bağımlılık izleme bölümüne bakın.
C#
var success = false;
var startTime = DateTime.UtcNow;
var timer = System.Diagnostics.Stopwatch.StartNew();
try
{
success = dependency.Call();
}
catch(Exception ex)
{
success = false;
telemetry.TrackException(ex);
throw new Exception("Operation went wrong", ex);
}
finally
{
timer.Stop();
telemetry.TrackDependency("DependencyType", "myDependency", "myCall", startTime, timer.Elapsed, success);
}
Java
boolean success = false;
Instant startTime = Instant.now();
try {
success = dependency.call();
}
finally {
Instant endTime = Instant.now();
Duration delta = Duration.between(startTime, endTime);
RemoteDependencyTelemetry dependencyTelemetry = new RemoteDependencyTelemetry("My Dependency", "myCall", delta, success);
dependencyTelemetry.setTimeStamp(startTime);
telemetry.trackDependency(dependencyTelemetry);
}
Node.js
var success = false;
var startTime = new Date().getTime();
try
{
success = dependency.Call();
}
finally
{
var elapsed = new Date() - startTime;
telemetry.trackDependency({
dependencyTypeName: "myDependency",
name: "myCall",
duration: elapsed,
success: success
});
}
Sunucu SDK'larının, veritabanları ve REST API'leri gibi belirli bağımlılık çağrılarını otomatik olarak bulup izleyen bir bağımlılık modülü içerdiğini unutmayın. Modülün çalışması için sunucunuza bir aracı yüklemeniz gerekir.
Java'da, Application Insights Java aracısı kullanılarak birçok bağımlılık çağrısı otomatik olarak izlenebilir.
Otomatik izlemenin yakalamadığı çağrıları izlemek istiyorsanız bu çağrıyı kullanırsınız.
C# dilinde standart bağımlılık izleme modülünü kapatmak için ApplicationInsights.config dosyasını düzenleyin ve başvurusunu DependencyCollector.DependencyTrackingTelemetryModule
silin. Java için bkz . Belirli otomatik toplanan telemetri verilerini gizleme.
Log Analytics'teki bağımlılıklar
Application Insights Analytics'te dependencies
çağrılartrackDependency
tabloda gösterilir.
Örnekleme işlemi devam ederse özelliği itemCount
1'den büyük bir değer gösterir. Örneğin, itemCount==10
örnekleme işleminin 10 çağrısından trackDependency()
yalnızca birini iletmiş olduğu anlamına gelir. Hedef bileşene göre segmentlere ayrılmış doğru bağımlılık sayısını almak için aşağıdaki gibi bir kod kullanın:
dependencies
| summarize sum(itemCount) by target
Bağımlılıkları ilgili istekleriyle ilişkilendirmek için birleştirme kullanın:
dependencies
| join (requests) on operation_Id
Verileri temizleme
Normalde SDK, verileri sabit aralıklarla ( genellikle 30 saniye) veya arabellek dolu olduğunda (genellikle 500 öğedir) gönderir. Bazı durumlarda, arabelleği boşaltmak isteyebilirsiniz. Sdk'nın kapanan bir uygulamada kullanılması buna örnek olarak verilmiştir.
.NET
kullanırken Flush()
şu deseni öneririz:
telemetry.Flush();
// Allow some time for flushing before shutdown.
System.Threading.Thread.Sleep(5000);
kullanırken FlushAsync()
şu deseni öneririz:
await telemetryClient.FlushAsync()
// No need to sleep
Telemetrinin kaybolmaması için uygulama kapatma işleminin bir parçası olarak her zaman temizlemenizi öneririz.
Java
telemetry.flush();
//Allow some time for flushing before shutting down
Thread.sleep(5000);
Node.js
telemetry.flush();
İşlev, sunucu telemetri kanalı için zaman uyumsuzdur.
Not
- Java ve JavaScript SDK'ları, uygulama kapatılırken otomatik olarak boşaltılır.
- Autoflush yapılandırmasını gözden geçirin: Dosyanızda
web.config
autoflush'un etkinleştirilmesi, Application Insights ile izlenen .NET uygulamalarında performans düşüşüyle sonuçlanabilir. Otomatik sıkıştırma etkinleştirildiğinde, yöntemlerin her çağrılması, ayrı telemetri öğelerininSystem.Diagnostics.Trace.Trace*
alım hizmetine ayrı ayrı web istekleri olarak gönderilmesine neden olur. Bu, web sunucularınızda ağ ve depolamanın tükenmesine neden olabilir. Gelişmiş performans için, otomatik gönderimi devre dışı bırakmalı ve ayrıca daha etkili bir telemetri veri aktarımı için tasarlanmış ServerTelemetryChannel'i kullanmanız önerilir.
Kimliği doğrulanmış kullanıcılar
Bir web uygulamasında kullanıcılar varsayılan olarak tanımlama bilgileriyle tanımlanır. Uygulamanıza farklı bir makineden veya tarayıcıdan erişen veya tanımlama bilgilerini silen bir kullanıcı birden çok kez sayılabilir.
Kullanıcılar uygulamanızda oturum açarsa, tarayıcı kodunda kimliği doğrulanmış kullanıcı kimliğini ayarlayarak daha doğru bir sayı elde edebilirsiniz:
JavaScript
// Called when my app has identified the user.
function Authenticated(signInId) {
var validatedId = signInId.replace(/[,;=| ]+/g, "_");
appInsights.setAuthenticatedUserContext(validatedId);
...
}
ASP.NET bir web MVC uygulamasında, örneğin:
Razor
@if (Request.IsAuthenticated)
{
<script>
appInsights.setAuthenticatedUserContext("@User.Identity.Name
.Replace("\\", "\\\\")"
.replace(/[,;=| ]+/g, "_"));
</script>
}
Kullanıcının gerçek oturum açma adını kullanmak gerekli değildir. Yalnızca bu kullanıcıya özgü bir kimlik olmalıdır. Boşluk veya karakterlerden ,;=|
herhangi birini içermemelidir.
Kullanıcı kimliği de oturum tanımlama bilgisinde ayarlanır ve sunucuya gönderilir. Sunucu SDK'sı yüklüyse, kimliği doğrulanmış kullanıcı kimliği hem istemci hem de sunucu telemetrisinin bağlam özelliklerinin bir parçası olarak gönderilir. Daha sonra filtreleyebilir ve üzerinde arama yapabilirsiniz.
Uygulamanız kullanıcıları hesaplar halinde gruplandırırsa, hesap için bir tanımlayıcı da geçirebilirsiniz. Aynı karakter kısıtlamaları uygulanır.
appInsights.setAuthenticatedUserContext(validatedId, accountId);
Ölçüm Gezgini'nde Kullanıcılar, Kimliği Doğrulanmış ve Kullanıcı hesaplarını sayan bir grafik oluşturabilirsiniz.
Ayrıca, belirli kullanıcı adları ve hesapları olan istemci veri noktalarını da arayabilirsiniz .
Not
.NET Core SDK'sında ApplicationInsightsServiceOptions sınıfındaki EnableAuthenticationTrackingJavaScript özelliği, Application Insights JavaScript SDK'sı tarafından gönderilen her izleme için kullanıcı adını Kimlik Doğrulama Kimliği olarak eklemek için gereken JavaScript yapılandırmasını basitleştirir.
Bu özellik olarak true
ayarlandığında, ASP.NET Core'daki kullanıcının kullanıcı adı, istemci tarafı telemetrisiyle birlikte yazdırılır. Bu nedenle, ASP.NET Core için SDK tarafından zaten eklendiğinden el ile eklemeye appInsights.setAuthenticatedUserContext
gerek kalmaz. Kimlik Doğrulama Kimliği, JavaScript API başvurusunda açıklandığı gibi .NET Core'daki SDK'nın bunu belirleyeceği ve sunucu tarafı telemetri için kullanacağı sunucuya da gönderilir.
SPA web uygulamaları gibi ASP.NET Core MVC ile aynı şekilde çalışmayan JavaScript uygulamaları için el ile eklemeniz appInsights.setAuthenticatedUserContext
gerekir.
Özellikleri kullanarak verilerinizi filtreleme, arama ve segmentlere ayırma
Olaylarınıza, ölçümlerinize, sayfa görünümlerinize, özel durumlarınıza ve diğer telemetri verilerinize özellikler ve ölçümler ekleyebilirsiniz.
Özellikler , kullanım raporlarında telemetrinizi filtrelemek için kullanabileceğiniz dize değerleridir. Örneğin, uygulamanız birkaç oyun sağlıyorsa, hangi oyunların daha popüler olduğunu görebilmek için oyunun adını her etkinliğe ekleyebilirsiniz.
Dize uzunluğu 8.192 sınırı vardır. Büyük veri öbekleri göndermek istiyorsanız, ileti parametresini TrackTrace
kullanın.
Ölçümler , grafik olarak sunulabilen sayısal değerlerdir. Örneğin, oyuncularınızın elde ettiği puanlarda kademeli bir artış olup olmadığını görmek isteyebilirsiniz. Grafikler, farklı oyunlar için ayrı veya yığılmış grafikler elde edebilmeniz için olayla birlikte gönderilen özelliklere göre segmentlere ayrılabilir.
Ölçüm değerlerinin doğru görüntülenmesi için 0'dan büyük veya buna eşit olması gerekir.
Kullanabileceğiniz özelliklerin, özellik değerlerinin ve ölçümlerin sayısıyla ilgili bazı sınırlar vardır.
JavaScript
appInsights.trackEvent({
name: 'some event',
properties: { // accepts any type
prop1: 'string',
prop2: 123.45,
prop3: { nested: 'objects are okay too' }
}
});
appInsights.trackPageView({
name: 'some page',
properties: { // accepts any type
prop1: 'string',
prop2: 123.45,
prop3: { nested: 'objects are okay too' }
}
});
C#
// Set up some properties and metrics:
var properties = new Dictionary <string, string>
{{"game", currentGame.Name}, {"difficulty", currentGame.Difficulty}};
var metrics = new Dictionary <string, double>
{{"Score", currentGame.Score}, {"Opponents", currentGame.OpponentCount}};
// Send the event:
telemetry.TrackEvent("WinGame", properties, metrics);
Node.js
// Set up some properties and metrics:
var properties = {"game": currentGame.Name, "difficulty": currentGame.Difficulty};
var metrics = {"Score": currentGame.Score, "Opponents": currentGame.OpponentCount};
// Send the event:
telemetry.trackEvent({name: "WinGame", properties: properties, measurements: metrics});
Visual Basic
' Set up some properties:
Dim properties = New Dictionary (Of String, String)
properties.Add("game", currentGame.Name)
properties.Add("difficulty", currentGame.Difficulty)
Dim metrics = New Dictionary (Of String, Double)
metrics.Add("Score", currentGame.Score)
metrics.Add("Opponents", currentGame.OpponentCount)
' Send the event:
telemetry.TrackEvent("WinGame", properties, metrics)
Java
Map<String, String> properties = new HashMap<String, String>();
properties.put("game", currentGame.getName());
properties.put("difficulty", currentGame.getDifficulty());
Map<String, Double> metrics = new HashMap<String, Double>();
metrics.put("Score", currentGame.getScore());
metrics.put("Opponents", currentGame.getOpponentCount());
telemetry.trackEvent("WinGame", properties, metrics);
Not
Özelliklerde kişisel bilgileri günlüğe kaydetmediğinizden emin olun.
Özellikleri ve ölçümleri ayarlamanın alternatif yolu
Daha uygunsa, bir olayın parametrelerini ayrı bir nesnede toplayabilirsiniz:
var event = new EventTelemetry();
event.Name = "WinGame";
event.Metrics["processingTime"] = stopwatch.Elapsed.TotalMilliseconds;
event.Properties["game"] = currentGame.Name;
event.Properties["difficulty"] = currentGame.Difficulty;
event.Metrics["Score"] = currentGame.Score;
event.Metrics["Opponents"] = currentGame.Opponents.Length;
telemetry.TrackEvent(event);
Uyarı
Aynı telemetri öğesi örneğini (event
bu örnekte) birden çok kez çağırmak Track*()
için yeniden kullanma. Bu uygulama, telemetrinin yanlış yapılandırmayla gönderilmesine neden olabilir.
Log Analytics'te özel ölçümler ve özellikler
Log Analytics'te özel ölçümler ve özellikler, her telemetri kaydının customMeasurements
ve customDimensions
özniteliklerinde gösterilir.
Örneğin, istek telemetrinize "game" adlı bir özellik eklerseniz, bu sorgu farklı "oyun" değerlerinin oluşumlarını sayar ve "score" özel ölçümünün ortalamasını gösterir:
requests
| summarize sum(itemCount), avg(todouble(customMeasurements.score)) by tostring(customDimensions.game)
Şunlara dikkat edin:
- veya JSON dosyasından
customDimensions
bir değer ayıkladığınızda dinamik türe sahiptir, bu nedenle veyatodouble
değerini atamanıztostring
gerekir.customMeasurements
- Örnekleme olasılığını dikkate almak için kullanmayın
sum(itemCount)
count()
.
Zamanlama olayları
Bazen eylem gerçekleştirmenin ne kadar sürdüğünü grafiğini çizersiniz. Örneğin, kullanıcıların bir oyundaki seçimleri ne kadar süreyle dikkate alacağını bilmek isteyebilirsiniz. Bu bilgileri almak için ölçüm parametresini kullanın.
C#
var stopwatch = System.Diagnostics.Stopwatch.StartNew();
// ... perform the timed action ...
stopwatch.Stop();
var metrics = new Dictionary <string, double>
{{"processingTime", stopwatch.Elapsed.TotalMilliseconds}};
// Set up some properties:
var properties = new Dictionary <string, string>
{{"signalSource", currentSignalSource.Name}};
// Send the event:
telemetry.TrackEvent("SignalProcessed", properties, metrics);
Java
long startTime = System.currentTimeMillis();
// Perform timed action
long endTime = System.currentTimeMillis();
Map<String, Double> metrics = new HashMap<>();
metrics.put("ProcessingTime", (double)endTime-startTime);
// Setup some properties
Map<String, String> properties = new HashMap<>();
properties.put("signalSource", currentSignalSource.getName());
// Send the event
telemetry.trackEvent("SignalProcessed", properties, metrics);
Özel telemetri için varsayılan özellikler
Yazdığınız bazı özel olaylar için varsayılan özellik değerlerini ayarlamak istiyorsanız, bunları bir TelemetryClient
örnekte ayarlayın. Bunlar, bu istemciden gönderilen her telemetri öğesine eklenir.
C#
using Microsoft.ApplicationInsights.DataContracts;
var gameTelemetry = new TelemetryClient();
gameTelemetry.Context.GlobalProperties["Game"] = currentGame.Name;
// Now all telemetry will automatically be sent with the context property:
gameTelemetry.TrackEvent("WinGame");
Visual Basic
Dim gameTelemetry = New TelemetryClient()
gameTelemetry.Context.GlobalProperties("Game") = currentGame.Name
' Now all telemetry will automatically be sent with the context property:
gameTelemetry.TrackEvent("WinGame")
Java
import com.microsoft.applicationinsights.TelemetryClient;
import com.microsoft.applicationinsights.TelemetryContext;
...
TelemetryClient gameTelemetry = new TelemetryClient();
TelemetryContext context = gameTelemetry.getContext();
context.getProperties().put("Game", currentGame.Name);
gameTelemetry.TrackEvent("WinGame");
Node.js
var gameTelemetry = new applicationInsights.TelemetryClient();
gameTelemetry.commonProperties["Game"] = currentGame.Name;
gameTelemetry.TrackEvent({name: "WinGame"});
Tek tek telemetri çağrıları, kendi özellik sözlüklerindeki varsayılan değerleri geçersiz kılabilir.
JavaScript web istemcileri için JavaScript telemetri başlatıcılarını kullanın.
Standart koleksiyon modüllerindeki veriler de dahil olmak üzere tüm telemetriye özellikler eklemek için uygulayınITelemetryInitializer
.
Örnek, filtre ve işlem telemetrisi
Bkz . Application Insights SDK'sında telemetriyi filtreleme ve ön işleme.
Telemetriyi devre dışı bırakma
Telemetrinin toplanmasını ve iletimini dinamik olarak durdurmak ve başlatmak için:
C#
using Microsoft.ApplicationInsights.Extensibility;
TelemetryConfiguration.Active.DisableTelemetry = true;
Java
telemetry.getConfiguration().setTrackingDisabled(true);
Performans sayaçları, HTTP istekleri veya bağımlılıklar gibi seçili standart toplayıcıları devre dışı bırakmak için ApplicationInsights.config içindeki ilgili satırları silin veya açıklama satırı yapın. Örnek olarak kendi TrackRequest
verilerinizi göndermek isteyebilirsiniz.
Node.js
telemetry.config.disableAppInsights = true;
Performans sayaçları, HTTP istekleri veya bağımlılıklar gibi seçili standart toplayıcıları başlatma sırasında devre dışı bırakmak için yapılandırma yöntemlerini SDK başlatma kodunuzla zincirleyin.
applicationInsights.setup()
.setAutoCollectRequests(false)
.setAutoCollectPerformance(false)
.setAutoCollectExceptions(false)
.setAutoCollectDependencies(false)
.setAutoCollectConsole(false)
.start();
Başlatmadan sonra bu toplayıcıları devre dışı bırakmak için Configuration nesnesini kullanın: applicationInsights.Configuration.setAutoCollectRequests(false)
.
Geliştirici modu
Hata ayıklama sırasında, sonuçları hemen görebilmeniz için telemetrinizin işlem hattı üzerinden hızlandırılması yararlı olur. Ayrıca telemetriyle ilgili sorunları izlemenize yardımcı olan başka iletiler de alırsınız. Uygulamanızı yavaşlatabileceğinden üretim ortamında kapatın.
C#
TelemetryConfiguration.Active.TelemetryChannel.DeveloperMode = true;
Visual Basic
TelemetryConfiguration.Active.TelemetryChannel.DeveloperMode = True
Node.js
Node.js için, aracılığıyla iç günlüğü setInternalLogging
etkinleştirerek ve olarak ayarlayarak maxBatchSize
0
geliştirici modunu etkinleştirebilirsiniz. Bu, telemetrinizin toplandığı anda gönderilmesine neden olur.
applicationInsights.setup("ikey")
.setInternalLogging(true, true)
.start()
applicationInsights.defaultClient.config.maxBatchSize = 0;
Seçili özel telemetri için izleme anahtarını ayarlama
C#
var telemetry = new TelemetryClient();
telemetry.InstrumentationKey = "---my key---";
// ...
Dinamik izleme anahtarı
Geliştirme, test ve üretim ortamlarından gelen telemetri verilerinin karıştırılmasını önlemek için, ortama bağlı olarak ayrı Application Insights kaynakları oluşturabilir ve anahtarlarını değiştirebilirsiniz.
İzleme anahtarını yapılandırma dosyasından almak yerine kodunuzda ayarlayabilirsiniz. Anahtarı ASP.NET hizmeti gibi global.aspx.cs
bir başlatma yönteminde ayarlayın:
C#
protected void Application_Start()
{
Microsoft.ApplicationInsights.Extensibility.
TelemetryConfiguration.Active.InstrumentationKey =
// - for example -
WebConfigurationManager.Settings["ikey"];
...
}
JavaScript
appInsights.config.instrumentationKey = myKey;
Web sayfalarında, bunu tam anlamıyla betikte kodlamak yerine web sunucusunun durumundan ayarlamak isteyebilirsiniz. Örneğin, ASP.NET uygulamasında oluşturulan bir web sayfasında:
Razor'da JavaScript
<script type="text/javascript">
// Standard Application Insights webpage script:
var appInsights = window.appInsights || function(config){ ...
// Modify this part:
}({instrumentationKey:
// Generate from server property:
@Microsoft.ApplicationInsights.Extensibility.
TelemetryConfiguration.Active.InstrumentationKey;
}) // ...
String instrumentationKey = "00000000-0000-0000-0000-000000000000";
if (instrumentationKey != null)
{
TelemetryConfiguration.getActive().setInstrumentationKey(instrumentationKey);
}
TelemetryContext
TelemetryClient
, tüm telemetri verileriyle birlikte gönderilen değerleri içeren bir Context özelliğine sahiptir. Bunlar normalde standart telemetri modülleri tarafından ayarlanır, ancak bunları kendiniz de ayarlayabilirsiniz. Örneğin:
telemetry.Context.Operation.Name = "MyOperationName";
Bu değerlerden herhangi birini kendiniz ayarlarsanız, değerlerinizle standart değerlerinizin karıştırılmaması için ApplicationInsights.config dosyasından ilgili satırı kaldırmayı göz önünde bulundurun.
- Bileşen: Uygulama ve sürümü.
- Cihaz: Uygulamanın çalıştığı cihazla ilgili veriler. Web uygulamalarında, telemetrinin gönderildiği sunucu veya istemci cihazıdır.
- InstrumentationKey: Azure'da telemetrinin görüntülendiği Application Insights kaynağı. Genellikle uygulamasından
ApplicationInsights.config
alınır. - Konum: Cihazın coğrafi konumu.
- İşlem: Web uygulamalarında geçerli HTTP isteği. Diğer uygulama türlerinde bu değeri olayları birlikte gruplandıracak şekilde ayarlayabilirsiniz.
- Kimlik: Tanılama Arama'da herhangi bir olayı incelediğinizde ilgili öğeleri bulabilmeniz için farklı olayları ilişkilendiren oluşturulan bir değer.
- Ad: Tanımlayıcı, genellikle HTTP isteğinin URL'si.
- SyntheticSource: Null veya boş değilse, isteğin kaynağının robot veya web testi olarak tanımlandığını belirten bir dize. Varsayılan olarak, Ölçüm Gezgini'ndeki hesaplamaların dışında tutulur.
- Oturum: Kullanıcının oturumu. Kimlik, kullanıcı bir süredir etkin olmadığında değiştirilen, oluşturulan bir değere ayarlanır.
- Kullanıcı: Kullanıcı bilgileri.
Sınırlar
Uygulama başına ölçüm ve olay sayısı ,yani izleme anahtarı başına bazı sınırlar vardır. Limitler seçtiğiniz fiyatlandırma planına bağlıdır.
Kaynak | Varsayılan limit | Maksimum sınır | Notlar |
---|---|---|---|
Günlük toplam veri | 100 GB | Desteğe ulaşın. | Verileri azaltmak için bir üst sınır ayarlayabilirsiniz. Daha fazla veriye ihtiyacınız varsa portaldaki sınırı 1.000 GB'a kadar artırabilirsiniz. 1.000 GB'tan büyük kapasiteler için adresine AIDataCap@microsoft.come-posta gönderin. |
Azaltma | 32.000 olay/saniye | Desteğe ulaşın. | Sınır bir dakika içinde ölçülür. |
Veri saklama günlükleri | 30 ile 730 gün | 730 gün | Bu kaynak Günlükler içindir. |
Veri saklama ölçümleri | 90 gün | 90 gün | Bu kaynak Ölçüm Gezgini içindir. |
Kullanılabilirlik çok adımlı test ayrıntılı sonuç saklama | 90 gün | 90 gün | Bu kaynak her adımın ayrıntılı sonuçlarını verir. |
En büyük telemetri öğesi boyutu | 64 KB | 64 KB | |
Toplu iş başına en fazla telemetri öğesi sayısı | 64,000 | 64,000 | |
Özellik ve ölçüm adı uzunluğu | 150 | 150 | Bkz. tür şemaları. |
Özellik değeri dize uzunluğu | Kategori 8,192 | Kategori 8,192 | Bkz. tür şemaları. |
İzleme ve özel durum iletisi uzunluğu | 32,768 | 32,768 | Bkz. tür şemaları. |
Application Insights kaynağı başına kullanılabilirlik testleri sayısı | 100 | 100 | |
Kaynak grubu başına kullanılabilirlik testleri sayısı | 800 | 800 | Bkz. Azure Resource Manager |
Kullanılabilirlik testleri, test başına en fazla yeniden yönlendirme sayısı | 10 | 10 | |
Kullanılabilirlik testleri en düşük test sıklığı | 300 saniye | Özel test sıklıkları veya 5 dakikadan kısa frekanslar için özel TrackAvailability uygulamaları gerekir. | |
Profil Oluşturucu ve Anlık Görüntü veri saklama | İki hafta | Desteğe başvurun. Maksimum saklama sınırı altı aydır. | |
Günlük gönderilen profil oluşturucu verileri | Sınırsız | Sınır yok. | |
Günlük gönderilen anlık görüntü verileri | İzlenen uygulama başına günde 30 anlık görüntü | Sınır yok. | Uygulama başına toplanan anlık görüntü sayısı yapılandırma aracılığıyla değiştirilebilir. |
Fiyatlandırma ve kotalar hakkında daha fazla bilgi için bkz . Application Insights faturalaması.
Veri hızı sınırına çarpmamak için örneklemeyi kullanın.
Verilerin ne kadar süreyle tutulduğunu belirlemek için bkz . Veri saklama ve gizlilik.
Başvuru belgeleri
SDK kodu
Sık sorulan sorular
Bu bölüm, sık sorulan soruların yanıtlarını sağlar.
Telemetri verileri neden eksik?
Bir uygulama kapanmadan önce boşaltılmadıysa her iki TelemetriChannels de arabelleğe alınan telemetriyi kaybeder.
Veri kaybını önlemek için, bir uygulama kapatılırken TelemetryClient'ı boşaltın.
Daha fazla bilgi için bkz . Verileri temizleme.
Çağrılar hangi özel durumlara neden olabilir Track_()
?
Yok. Bunları try-catch yan tümcelerinde sarmalamanız gerekmez. SDK sorunlarla karşılaşırsa, iletileri hata ayıklama konsolu çıkışında ve iletiler geçerse Tanılama Arama'da günlüğe kaydeder.
Portaldan veri almak için bir REST API var mı?
Evet, veri erişim API'si. Verileri ayıklamanın diğer yolları arasında çalışma alanı tabanlı bir kaynağa geçiş yaptıysanız Power BI veya hala klasik bir kaynaktaysanız sürekli dışarı aktarma sayılabilir.
Özel olaylara ve ölçüm API'lerine yönelik çağrılarım neden yoksayılıyor?
Application Insights SDK'sı otomatik yetkisiz erişimle uyumlu değildir. Otomatik yetkisiz erişim etkinleştirilirse, ve diğer özel olaylar ve ölçüm API'leri çağrıları Track()
yoksayılır.
App Service sayfasının Application Insights sekmesindeki Azure portalında otomatik girişi kapatın veya olarak disabled
ayarlayınApplicationInsightsAgent_EXTENSION_VERSION
.
Arama ve Ölçüm grafiklerindeki sayılar neden eşit değil?
Örnekleme , uygulamanızdan portala gönderilen telemetri öğelerinin (istekler ve özel olaylar gibi) sayısını azaltır. Arama'da, alınan öğe sayısını görürsünüz. Olay sayısını görüntüleyen ölçüm grafiklerinde, gerçekleşen özgün olayların sayısını görürsünüz.
İletilen her öğe, öğenin temsil ettiği özgün olay sayısını gösteren bir itemCount
özellik taşır. Örnekleme işlemini gözlemlemek için bu sorguyu Log Analytics'te çalıştırabilirsiniz:
requests | summarize original_events = sum(itemCount), transmitted_events = count()
Bir olayda nasıl uyarı ayarlayabilirim?
Azure uyarıları yalnızca ölçümler içindir. Olayınız her gerçekleştiğinde değer eşiğini aşan özel bir ölçüm oluşturun. Ardından ölçümde bir uyarı ayarlayın. Ölçüm iki yönde de eşiği her geçtiğinde bir bildirim alırsınız. İlk değer yüksek veya düşük olsa da ilk geçişe kadar bildirim almazsınız. Her zaman birkaç dakikalık bir gecikme süresi vardır.