Bagikan melalui


Aktivitas telemetri untuk Microsoft Dataverse

Catatan

Pusat Power Platform admin yang baru dan ditingkatkan sekarang dalam pratinjau publik! Kami merancang pusat admin baru agar lebih mudah digunakan, dengan navigasi berorientasi tugas yang membantu Anda mencapai hasil tertentu dengan lebih cepat. Kami akan menerbitkan dokumentasi baru dan yang diperbarui saat pusat admin baru Power Platform beralih ke ketersediaan umum.

Aliran data saat ini menyediakan data performa terkait dengan panggilan masuk API Dataverse, panggilan eksekusi plug-in Dataverse, dan panggilan SDK Dataverse. Ini juga menyediakan data kegagalan dalam operasi plug-in dan SDK Dataverse.

Panggilan masuk Dataverse

Ini adalah panggilan yang dilakukan ke API Dataverse. Mereka dapat dari Antarmuka Terpadu (UCI), klien web lama, klien kustom yang menggunakan SDK, dan sebagainya. Bidang dapat ditemukan dalam tabel permintaan Application Insights, yang memiliki bidang berikut.

  • Nama: Jenis permintaan. Ini terbagi dalam dua kategori:

    • Permintaan API Web: Permintaan ke titik akhir OData v4 yang biasa digunakan oleh Antarmuka Terpadu dan klien modern. Permintaan ini diubah menjadi operasi yang umum bagi keduanya. Web API adalah "pembungkus" untuk mengaktifkan model pemeliharaan RESTful, namun setelah data diterima, semuanya menjadi sama di dalam server. Bila respons dikembalikan, maka respons dikonversi ke JSON jika permintaan berasal dari Web API.
    • Permintaan Layanan Organisasi: Permintaan ke titik akhir API Organisasi yang digunakan oleh klien SDK atau klien web lama.
  • Durasi: Jumlah waktu yang dibutuhkan server untuk merespons permintaan.

  • Url: URL yang digunakan panggilan.

  • Dimensi Kustom:

    • UserAgent: Application Insights secara otomatis mengisi bidang agen pengguna dengan PC karena log ini didorong dari server di pusat data. Application Insights tidak memungkinkan bidang agen pengguna ditimpa. Terkadang, bidang agen pengguna tidak tersedia untuk diisi. Agen pengguna yang membuat panggilan dapat dilihat menggunakan kueri berikut:

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

      Application Insights CustomDimensions UserAgent.

  • Operation_Name: Nama operasi yang dapat dibaca untuk ditampilkan pada tampilan, seperti tampilan transaksi end-to-end.

Log Pelaksanaan Plug-in Dataverse

Log untuk plug-in kustom yang berjalan untuk operasi tertentu ini ditemukan dalam tabel dependensi. Berikut adalah kueri sampel:

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

Application Insights Dataverse log eksekusi plug-in.

  • Nama/Target: Nama jenis yang sepenuhnya memenuhi syarat untuk plug-in yang sedang dijalankan.
  • Durasi: Jumlah waktu yang dibutuhkan plug-in untuk dijalankan.
  • Dimensi Kustom:
    • Kedalaman: Kedalaman eksekusi saat ini dalam tumpukan panggilan.
    • EntityName: Nama entitas yang ditindaklanjuti oleh plug-in.
    • IsolationType: Nilai yang menunjukkan apakah plug-in sedang dijalankan di sandbox:
      • 1: Tidak ada
      • 2: Sandbox
      • 3: Eksternal
    • PluginName: Nama plug-in yang mudah digunakan.
    • PluginType: Nama jenis plug-in yang sedang dijalankan.
    • PluginVersion: Versi plug-in yang diterbitkan. Tujuannya di sini adalah agar dapat menggunakan informasi ini untuk memecahkan masalah pembaruan versi.
    • Tahap: Petakan ke nilai-nilai berikut:
      • Pra-validasi = 10
      • Pra-operasi = 20
      • PreOperationBeforeExternalPlugins = 15
      • PreOperationAfterExternalPlugins = 25
      • MainOperation = 30
      • PostOperationBeforeExternalPlugins = 35
      • PostOperationAfterExternalPlugins = 45
      • PostOperation = 40
      • PostOperationDeprecated = 50
    • Nama Langkah: Nama langkah Pemrosesan Pesan SDK. Ini biasanya dibuat dengan alat Registrasi Plugin menggunakan informasi tentang PluginName, PluginType, dan nama operasi—misalnya ErrorMessageTest.ThrowException: Creation of account.

Telemetri dalam kode plug-in Anda

Untuk memahami apa yang terjadi dalam kode plug-in, Anda dapat menyertakan telemetri kustom dari dalam plug-in menggunakan Microsoft.Xrm.Sdk.PluginTelemetry.ILogger Interface di kode plug-in untuk menulis data telemetri secara langsung ke sumber daya Application Insights. Informasi selengkapnya: Menulis Telemetri ke sumber daya Application Insights menggunakan ILogger (Pratinjau)

Log SDK Dataverse

Log tersebut adalah untuk operasi SDK yang dipicu sebagai bagian dari permintaan masuk. Tabel ini akan dicatat ke tabel dependensi dalam Application Insights, karena dependensi dilacak sebagai permintaan untuk dijalankan. Semua ini diidentifikasi berdasarkan nama jenis, dimulai dengan SDK. Berikut adalah kueri sampel:

dependencies
| where type startswith "SDK"
| take 10

Application Insights query SDK.

  • Jenis: Jenis permintaan SDK yang dipicu. Contohnya mencakup Retrieve, RetrieveMultiple, FetchXmlToQueryExpression, dan WhoAmI.
  • Nama/Target: Ini adalah nama entitas yang ditargetkan oleh operasi SDK.
  • Dimensi Kustom:
    • ClientType: Jenis klien asal panggilan. Beberapa nilai yang mungkin adalah Web, UCIClient, dan OutlookFull.
    • EntityId: Pengidentifikasi unik entitas yang digunakan.
    • Nama Entitas: Nama entitas yang digunakan.

Pengecualian

Anda akan melihat rincian kegagalan dalam operasi plug-in dan SDK di Application Insights. Tabel pengecualian dalam Application Insights mendukung panel Kegagalan. Rincian kegagalan ini berkorelasi dengan aktivitas lainnya pada panggilan plug-in dan SDK di tampilan end-to-end. Semua informasi yang tersedia ditambahkan ke kolom bila mungkin dan customDimensions bila kolom tidak sama persis.

Anda akan melihat bahwa beberapa bidang dalam tabel pengecualian tidak diisi. Hal ini dikarenakan bidang ini hanya dapat diatur jika SDK Application Insights digunakan untuk mengeluarkan log dari sumber. Fitur ini mengumpulkan telemetri platform dan kemudian mendorongnya ke dalam Application Insights sesuai dengan skema Application Insights.

Application Insights tabel pengecualian.

exceptions
| take 10

Kueri ini akan mengembalikan semua rincian atribut dari tabel pengecualian.

  • problemId/type: Jenis pengecualian.
  • outerMessage: Pesan pengecualian.
  • Dimensi kustom:
    • clientType: Jenis klien asal panggilan. Beberapa nilai yang mungkin adalah Web, UCIClient, dan OutlookFull.
    • exceptionSource: Plug-in atau titik tempat pengecualian dilemparkan.
    • entityName: Nama entitas yang digunakan.
    • pluginName: Nama plug-in tempat pengecualian dilemparkan.

Application Insights detail atribut tabel pengecualian.

Jika pengguna melaporkan error, Anda dapat menggunakan ID pengguna (Microsoft Entra ID ID) untuk memahami detail dari tabel pengecualian .

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

ID entitas dan nama entitas tersedia dalam customDimensions dalam tabel dependensi.

dependencies
| where type == "SDK Retrieve"

Application Insights SDK mengambil kueri.

Pertanyaan Umum (Tanya-Jawab)

Berikut adalah beberapa pertanyaan yang sering diajukan terkait aktivitas telemetri untuk Dataverse.

Bagaimana cara menentukan apakah peningkatan plug-in saya menyebabkan penurunan performa?

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

Nama plug-in juga harus berisi versi untuk plug-in kustom.

Bagaimana performa API sebelum masalah yang dilaporkan, berdasarkan waktu atau lokasi? Apakah degradasi API sedikit demi sedikit atau tiba-tiba?

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

Application Insights Bagan waktu performa API.

Pada diagram ini, kita dapat melihat performa titik akhir API selama periode waktu terhadap jumlah permintaan yang dilakukan.

Anda juga dapat mengkonfigurasi pemberitahuan berdasarkan performa API tertentu di sini dalam Application Insights.

Dapatkah saya menelusuri hingga detail kesalahan atau kegagalan pada waktu tertentu atau untuk pengguna tertentu agar dapat memahami tumpukan panggilan?

Melihat panel Kegagalan memberikan ikhtisar kegagalan dalam periode waktu tertentu. Selanjutnya Anda dapat mempersempit ke kegagalan tertentu berdasarkan panggilan API atau jenis dependensi untuk melihat tampilan end-to-end.

Application Insights detail kegagalan.

Dapatkan saya Membuat dasbor kustom?

Ya. Anda dapat membuat dasbor kustom dengan Application Insights.

Dapatkah saya menentukan performa penggunaan plug-in (waktu respons) dan tingkat kegagalan selama penggunaan puncak?

Ya. Lihat kueri sampel berikut untuk memahami performa plug-in Anda.

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

Performa penggunaan plug-in.

Apakah telemetri ini akan memiliki pembatasan?

Ya. Rincian kesalahan 429 dasar saat ini diberikan.

Dapatkah saya memahami jalur eksekusi? Apakah panggilan yang dilakukan oleh plug-in akan memperlambat plug-in?

Ya. Anda dapat melihat semua pesan dan plug-in yang dijalankan untuk permintaan apa pun.

Durasi semua pesan dan eksekusi plug-in akan dicatat. Jika plug-in berlangsung lebih lama, Anda dapat mengidentifikasi plug-in tersebut. Jika plug-in membuat panggilan balik ke Dataverse, durasi panggilan tersebut akan dicatat. Informasi lebih lanjut tentang plug-in direncanakan untuk penyebaran di masa mendatang.

Setiap panggilan keluar yang dibuat oleh plug-in akan secara otomatis dicatat sebagai dependensi.

Transaksi end-to-end.

Dapatkah saya melihat telemetri untuk permintaan tertentu?

Dataverse mengembalikan x-ms-service-requestId pada respons header untuk semua permintaan. Menggunakan requestId ini, Anda dapat mengkueri semua telemetri.

union *
| where operation_ParentId contains <requestId>