Aracılığıyla paylaş


Microsoft Dataverse için telemetri olayları

Not

Yeni ve geliştirilmiş Power Platform yönetim merkezi artık genel önizlemede! Yeni yönetim merkezini, belirli sonuçlara daha hızlı ulaşmanıza yardımcı olan görev odaklı gezinti ile kullanımı daha kolay olacak şekilde tasarladık. Yeni Power Platform yönetim merkezi genel kullanılabilirliğe geçtiğinde yeni ve güncelleştirilmiş belgeler yayımlayacağız.

Veri akışı şu anda Dataverse API'si gelen çağrıları, Dataverse eklenti yürütme çağrıları ve Dataverse SDK çağrıları ile ilgili performans verileri sunmaktadır. Eklenti ve Dataverse SDK işlemlerindeki hatalar için de veri sağlar.

Dataverse API gelen çağrıları

Bunlar Dataverse API'ına yapılan çağrılardır. Bunlar Birleşik Arabirim (UCI), eski web istemcisi, SDK kullanılan özel istemciler vb. olabilir. Bunlar, aşağıdaki alanlara sahip Application Insights'ın istek tablosunda bulunabilir.

  • Ad: İsteğin türü. Bunlar iki kategoriye ayrılır:

    • Web API'sı isteği : Birleşik Arabirim ve modern istemciler tarafından yaygın olarak kullanılan OData v4 uç noktasına yönelik istek. Bu istek, ikisi için ortak olan bir işleme dönüştürülür. Web API'sı, RESTful programlama modelini etkinleştirmek için kullanılan bir "sarmalayıcıdır" ancak veriler alındıktan sonra sunucu içinde her şey aynı olur. Yanıt alındığında, istek Web API'sından geldiyse JSON'a dönüştürülür.
    • Kuruluş Hizmet İsteği: SDK istemcileri veya eski web istemcisi tarafından kullanılan Kuruluş API uç noktasına yönelik istek.
  • Süre: Sunucunun isteği yanıtlaması için geçen süre.

  • Url: Çağrı yapılan URL.

  • CustomDimensions:

    • UserAgent: Bu günlükler bir veri merkezinden gönderildiğinden, Application Insights kullanıcı aracısı alanını otomatik olarak bilgisayar ile doldurur. Application Insights, kullanıcı aracısı alanının geçersiz kılınmasına izin vermez. Bazen kullanıcı aracısı alanı doldurulamaz. Çağrının yapıldığı kullanıcı aracısı aşağıdaki sorgu kullanılarak görüntülenebilir:

      requests
      | summarize count() by tostring(customDimensions.userAgent)
      

      Application Insights CustomDimensions UserAgent.

  • Operation_Name: Uçtan uca işlem görünümü gibi görünümlerde gösterilecek işlemin okunabilir adı.

Dataverse eklenti yürütme günlükleri

Belirli bir işlem için çalıştırılan özel eklentiler için bu günlükler bağımlılık tablosunda bulunur. Aşağıdaki örnek bir sorgudur:

dependencies
| where type == "Plugin"
| take 100

Application Insights Dataverse eklentisi yürütme günlükleri.

  • Ad/Hedef : Yürütülen eklentinin tamamen yeterli tür adı.
  • Süre : Eklentinin yürütülmesi için geçen süre.
  • CustomDimensions:
    • Derinlik: Çağrı yığınındaki yürütmenin geçerli derinliği.
    • EntityName : Eklenti tarafından eylemde bulunulan varlığın adı.
    • IsolationType : Eklentinin korumalı alanda yürütülüp yürütülmediğini gösteren bir değer:
      • 1: Hiçbiri
      • 2: Korumalı Alan
      • 3: Harici
    • PluginName: Eklentinin kullanıcı dostu adı.
    • PluginType: Yürütülmekte olan eklenti türünün adı.
    • PluginVersion: Yayımlanan eklentinin sürümü. Buradaki amaç, sürüm güncelleştirmeleriyle ilgili sorunları gidermek için bu bilgileri kullanabilmektir.
    • Aşama : Aşağıdaki değerlerle eşlenir:
      • PreValidation = 10
      • PreOperation = 20
      • PreOperationBeforeExternalPlugins = 15
      • PreOperationAfterExternalPlugins = 25
      • MainOperation = 30
      • PostOperationBeforeExternalPlugins = 35
      • PostOperationAfterExternalPlugins = 45
      • PostOperation = 40
      • PostOperationDeprecated = 50
    • StepName: SDK İleti İşleme adımının adı. Bu, genellikle Eklenti Kayıt aracı tarafından PluginName, PluginType ve işlemin adı (örneğin ErrorMessageTest.ThrowException: Hesabın oluşturulması) hakkındaki bilgiler kullanılarak oluşturulur.

Eklenti kodunuz içinde telemetri

Eklenti kodunuz içinde neler olduğunu anlamak için özel telemetriyi telemetri verilerini doğrudan Application Insights kaynağınıza yazmak için eklenti kodunuzdaki Microsoft.Xrm.Sdk.PluginTelemetry.ILogger Arabirimini kullanarak eklentinizin içinden ekleyebilirsiniz. Daha fazla bilgi: Telemetriyi ILogger (Önizleme) kullanarak Application Insights kaynağınıza yazma

Dataverse SDK günlükleri

Bunlar, gelen bir isteğin parçası olarak tetiklenen SDK işlemlerine ait günlüklerdir. Bunlar Application Insights'daki bağımlılık tablosuna kaydedilir, çünkü yürütülecek isteğin bağımlılıkları olarak izlenirler. Bunlar, SDK ile başlayan tür adıyla tanımlanır. Aşağıdaki örnek bir sorgudur:

dependencies
| where type startswith "SDK"
| take 10

Application Insights sorgu SDK'si.

  • Tür: Tetiklenen SDK isteğinin türü. Örnekler, Retrieve, RetrieveMultiple, FetchXmlToQueryExpression ve WhoAmI'dir.
  • Ad/Hedef: Bu, SDK işleminin hedeflediği varlığın adıdır.
  • CustomDimensions:
    • ClientType: Çağrının geldiği istemci türü. Bazı olası değerler Web, UCIClient ve OutlookFull'dur.
    • EntityId: Kullanılan varlığın benzersiz tanıtıcısı.
    • EntityName: Kullanılan varlığın adı.

Özel durumlar

Application Insights'da eklenti ve SDK işlemlerinde hata ayrıntılarını görürsünüz. Application Insights'daki özel durumlar tablosu, Hatalar panelini destekler. Bu hata ayrıntıları, uçtan uca görünümdeki eklenti ve SDK çağrılarındaki kalan olaylar ile bağıntılıdır. Tam sütun eşleşmesi olmadığında kullanılabilir tüm bilgiler mümkünse sütunlara ve customDimensions'a eklenir.

Özel durumlar tablosundaki bazı alanların doldurulmadığına dikkat edin. Bunun nedeni, bu alanların yalnızca Application Insights SDK'sinin kaynaktan alınan günlükleri yaymasında kullanılması durumunda ayarlanabilmesidir. Bu özellik platform telemetrisini toplar ve Application Insights şemasına göre Application Insights'a gönderir.

Application Insights özel durumlar tablosu.

exceptions
| take 10

Bu sorgu özel durum tablosundaki öznitelik ayrıntılarının tümünü verir.

  • problemId/type: Özel durumun türü.
  • outerMessage: Özel durum iletisi.
  • customDimensions:
    • clientType: Çağrının geldiği istemci türü. Bazı olası değerler Web, UCIClient ve OutlookFull'dur.
    • exceptionSource : Özel durumun ortaya çıktığı eklenti veya nokta.
    • entityName: Kullanılan varlığın adı.
    • pluginName: Özel durumun ortaya çıktığı eklentinin adı.

Application Insights özel durumlar tablosu öznitelik ayrıntıları.

Bir kullanıcı bir hata bildirirse istisna tablosundaki ayrıntıları analamak için kullanıcı kimliği (Microsoft Entra ID kimliği) kullanabilirsiniz.

exceptions
| where user_Id == '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'

Varlık kimliği ve varlık adı, bağımlılık tablosundaki customDimensions'da kullanılabilir.

dependencies
| where type == "SDK Retrieve"

Application Insights SDK alma sorgusu.

Sık Sorulan Sorular (SSS)

Aşağıdakiler, Dataverse telemetri olaylarıyla ilgili bazı sıkça sorulan sorulardır.

Eklenti yükseltmenin performans azalmasına neden olup olmadığını nasıl belirleyebilirim?

dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name

Eklenti adı aynı zamanda özel eklentilerin sürümünü de içermelidir.

Günün saatine veya konuma göre API, bildirilen bir sorundan önce nasıl performans gösteriyordu? API bozulması, aşamalı veya ani mi?

requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart 

Application Insights API performansı zaman çizelgesi.

Bu grafikte, yapılan isteklerin sayısına göre bir süre boyunca API uç nokta performansını görebiliriz.

Ayrıca, Application Insights'da burada belirli bir API'nın performansına göre bir uyarı da ayarlayabilirsiniz.

Belirli zamanlarda veya belirli kullanıcıların çağrı yığınını anlamalarını sağlamak için hata veya arızaların detayına gidebilir miyim?

Hatalar paneline bakıldığında belirli bir zaman diliminde bulunan hataların genel bakışı görülür. Daha sonra, uç uca görünümü görmek için API çağrısı veya bağımlılık türüne dayalı olarak belirli bir hataya kadar daraltabilirsiniz.

Application Insights hata ayrıntıları.

Özel panolar oluşturabilir miyim?

Evet. Application Insights ile özel panolar oluşturabilirsiniz.

En yüksek kullanım sırasında eklenti kullanımı performansını (yanıt süresi) ve hata oranlarını belirleyebilir miyim?

Evet. Eklentilerinizin nasıl performans gösterdiğini anlamak için aşağıdaki örnek sorguya bakın.

dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart

Eklenti kullanımı performansı.

Bu telemetride azaltma söz konusu olacak mı?

Evet. Temel 429 hata ayrıntıları şu anda sunulmaktadır.

Yürütme yollarını anlayabilir miyim? Eklentinin yaptığı çağrılar eklentiyi yavaşlatıyor mu?

Evet. Herhangi bir istek için yürütülen tüm iletileri ve eklentileri görüntüleyebilirsiniz.

Tüm ileti ve eklenti yürütmesinin süresi günlüğe kaydedilir. Herhangi bir eklenti daha fazla zaman alıyorsa bu eklentiyi belirleyebilirsiniz. Eklenti, Dataverse'e geri arama işlemi yapıyorsa bu aramanın süresi günlüğe kaydedilir. Eklentiler hakkında daha fazla bilgi gelecekte dağıtılacak şekilde planlanmıştır.

Eklenti tarafından yapılan herhangi bir giden çağrı otomatik olarak bağımlılık biçiminde kaydedilir.

Uçtan uca işlem.

Belirli bir isteğin telemetrisini görüntüleyebilir miyim?

Dataverse tüm isteklere verdiği üst bilgi yanıtında x-ms-service-dequestId'yi verir. Bu requestId'yi kullanarak telemetrinin tümü için sorgulama yapabilirsiniz.

union *
| where operation_ParentId contains <requestId>