Bagikan melalui


Melacak Peristiwa ke Dalam Pelacakan Peristiwa di Windows

Sampel EtwTracking menunjukkan cara mengaktifkan pelacakan Windows Workflow Foundation (WF) pada layanan alur kerja dan memancarkan peristiwa pelacakan di Pelacakan Peristiwa untuk Windows (ETW). Untuk memancarkan rekaman pelacakan alur kerja ke dalam ETW, sampel menggunakan peserta pelacakan ETW (EtwTrackingParticipant).

Alur kerja dalam sampel menerima permintaan, menetapkan timbal balik data input ke variabel input dan mengembalikan timbal balik ke klien. Ketika data masukan adalah 0, terjadi pengecualian pembagian dengan nol yang tidak tertangani, sehingga menyebabkan alur kerja dibatalkan. Dengan pelacakan diaktifkan, rekaman trek kesalahan dipancarkan ke ETW, yang dapat membantu memecahkan masalah kesalahan nanti. Peserta pelacakan ETW dikonfigurasi dengan profil pelacakan untuk berlangganan catatan pelacakan. Profil pelacakan didefinisikan dalam file Web.config dan disediakan sebagai parameter konfigurasi untuk peserta pelacakan ETW. Peserta pelacakan ETW dikonfigurasi dalam file Web.config layanan alur kerja dan diterapkan pada layanan sebagai perilaku layanan. Dalam sampel ini, Anda melihat peristiwa pelacakan di log peristiwa menggunakan Pemeriksa Peristiwa.

Detail Pelacakan Alur Kerja

Windows Workflow Foundation menyediakan infrastruktur pelacakan untuk melacak eksekusi instans alur kerja. Runtime pelacakan menghasilkan instans alur kerja untuk mengeluarkan kejadian yang terkait dengan siklus hidup alur kerja, kejadian dari aktivitas alur kerja, dan kejadian kustom. Tabel berikut merinci komponen utama infrastruktur pelacakan.

Komponen Deskripsi
Pelacakan waktu eksekusi Menyediakan infrastruktur untuk memancarkan rekaman pelacakan.
Pelacakan peserta Mengakses rekaman pelacakan. .NET Framework 4.6.1 disertakan dengan komponen pelacakan yang menulis catatan pelacakan sebagai peristiwa Event Tracing for Windows (ETW).
Profil pemantauan Mekanisme pemfilteran yang memungkinkan peserta yang melacak untuk berlangganan sebagian rekaman pelacakan yang dihasilkan dari instans alur kerja.

Tabel berikut ini merinci rekaman pelacakan yang dikeluarkan oleh alur kerja runtime.

Catatan pelacakan Deskripsi
Rekaman pelacakan instans alur kerja. Menjelaskan siklus hidup instans alur kerja. Misalnya, rekaman instans dikeluarkan saat alur kerja dimulai atau selesai.
Rekaman pelacakan status aktivitas. Rincian pelaksanaan aktivitas. Rekaman ini menunjukkan keadaan aktivitas alur kerja seperti ketika aktivitas dijadwalkan, ketika aktivitas selesai, atau ketika kesalahan terjadi.
Catatan kelanjutan marka buku. Dikeluarkan setiap kali bookmark dalam instans alur kerja dilanjutkan.
Rekaman pelacakan kustom. Penulis alur kerja dapat membuat rekaman pelacakan kustom dan memancarkannya dalam aktivitas kustom.
ActivityScheduledRecord Rekaman ini dihasilkan saat aktivitas menjadwalkan aktivitas lain.
FaultPropagationRecord Catatan ini dikeluarkan ketika kesalahan disebarkan dari sebuah aktivitas.
CancelRequestedRecord Rekaman ini dipancarkan saat aktivitas dibatalkan oleh aktivitas lain.

Peserta pelacakan berlangganan untuk subset rekaman pelacakan yang dihasilkan menggunakan profil pelacakan. Profil pelacakan berisi kueri pelacakan yang memungkinkan berlangganan untuk jenis catatan pelacakan tertentu. Profil pelacakan dapat ditentukan dalam kode atau dalam konfigurasi.

Untuk menggunakan sampel ini

  1. Menggunakan Visual Studio, buka file solusi EtwTrackingParticipantSample.sln.

  2. Untuk membangun solusi, tekan CTRL+SHIFT+B.

  3. Untuk menjalankan solusi, tekan F5.

    Secara default, layanan mendengarkan port 53797 (http://localhost:53797/SampleWorkflowService.xamlx).

  4. Menggunakan File Explorer, buka klien uji WCF.

    Klien uji WCF (WcfTestClient.exe) terletak di <folder penginstalan Visual Studio\>Common7\IDE\.

    Folder penginstalan Visual Studio default adalah C:\Program Files\Microsoft Visual Studio 10.0.

  5. Di klien uji WCF, pilih Tambahkan Layanan dari menu File .

    Tambahkan alamat titik akhir di kotak input. Defaultnya adalah http://localhost:53797/SampleWorkflowService.xamlx.

  6. Buka aplikasi Penampil Peristiwa.

    Sebelum memanggil layanan, mulai Penampil Peristiwa dari menu Mulai, pilih Jalankan dan ketik .eventvwr.exe Pastikan bahwa log peristiwa memerhatikan peristiwa pelacakan yang dipancarkan dari layanan alur kerja.

  7. Dalam tampilan pohon Penampil Peristiwa, navigasikan ke Penampil Peristiwa, Aplikasi dan Log Layanan, dan Microsoft. Klik kanan Microsoft dan pilih Tampilkan lalu Tampilkan Log Analitik dan Debug untuk mengaktifkan log analitik dan debug

    Pastikan bahwa opsi Tampilkan Log Analitik dan Debug dicentang.

  8. Dalam tampilan pohon di Pemeriksa Peristiwa, navigasikan ke Penampil Peristiwa, Log Aplikasi dan Layanan, Microsoft, Windows, Application Server-Applications. Klik kanan Analitik dan pilih Aktifkan Log untuk mengaktifkan log Analitik .

  9. Uji layanan menggunakan klien uji WCF dengan mengklik GetDatadua kali .

    Ini membuka GetData fungsi. Permintaan menerima satu parameter dan memastikan bahwa nilainya adalah 0, yang merupakan default.

    Klik Panggil.

  10. Perhatikan peristiwa yang dihasilkan dari alur kerja.

    Beralih kembali ke Penampil Peristiwa dan navigasikan ke Penampil Peristiwa, Aplikasi dan Log Layanan, Microsoft, Windows, Aplikasi-Server Aplikasi. Klik kanan Analitik dan pilih Refresh.

    Peristiwa alur kerja ditampilkan di penampil peristiwa. Perhatikan bahwa peristiwa eksekusi alur kerja ditampilkan dan salah satunya adalah pengecualian yang tidak tertangani yang sesuai dengan kesalahan dalam alur kerja. Selain itu, peristiwa peringatan dikeluarkan dari aktivitas dalam alur kerja, yang menunjukkan bahwa aktivitas menghasilkan kesalahan.

  11. Ulangi langkah 9 dan 10 dengan input data selain 0, sehingga tidak terjadi kesalahan.

Profil pelacakan memungkinkan Anda berlangganan peristiwa yang dipancarkan oleh runtime saat status instans alur kerja berubah. Bergantung pada persyaratan pemantauan Anda, Anda dapat membuat profil yang sangat umum, yang mengamati sekumpulan kecil perubahan status tingkat tinggi pada alur kerja. Di sisi lain, Anda dapat membuat profil yang sangat tepat yang outputnya cukup kaya untuk merekonstruksi eksekusi nanti. Sampel menunjukkan peristiwa yang dipancarkan dari runtime alur kerja ke ETW menggunakan HealthMonitoring Tracking Profile, yang memancarkan serangkaian peristiwa kecil. Profil berbeda yang memancarkan lebih banyak peristiwa pelacakan alur kerja juga disediakan dalam Web.config yang diberi nama Troubleshooting Tracking Profile. Ketika .NET Framework 4.6.1 diinstal, profil default dengan nama kosong dikonfigurasi dalam file Machine.config. Profil ini digunakan oleh konfigurasi perilaku pelacakan ETW ketika tidak ada nama profil atau nama profil kosong yang ditentukan.

Profil pelacakan pemantauan kesehatan menghasilkan rekaman instans alur kerja dan rekaman propagasi kesalahan aktivitas. Profil ini dibuat dengan menambahkan profil pelacakan berikut ke file konfigurasi Web.config.

<tracking>
  <profiles>
    <trackingProfile name="HealthMonitoring Tracking Profile">
      <workflow activityDefinitionId="*">
        <workflowInstanceQueries>
          <workflowInstanceQuery>
            <states>
              <state name="Started"/>
              <state name="Completed"/>
              <state name="Aborted"/>
              <state name="UnhandledException"/>
            </states>
          </workflowInstanceQuery>
        </workflowInstanceQueries>
        <faultPropagationQueries>
          <faultPropagationQuery faultSourceActivityName ="*" faultHandlerActivityName="*"/>
        </faultPropagationQueries>
      </workflow>
    </trackingProfile>
  </profiles>
</tracking>

Profil dapat diubah dengan mengubah EtwTrackingParticipant konfigurasi ke yang berikut ini.

<behaviors>
  <serviceBehaviors>
    <behavior>
      <etwTracking profileName="HealthMonitoring Tracking Profile"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

Untuk membersihkan (Opsional)

  1. Buka Pemantau Peristiwa.

  2. Navigasikan ke Penampil Peristiwa, Log Aplikasi dan Layanan, Microsoft, Windows, Aplikasi-Server Aplikasi. Klik kanan Analitik dan pilih Nonaktifkan Log.

  3. Navigasikan ke Penampil Peristiwa, Log Aplikasi dan Layanan, Microsoft, Windows, Aplikasi-Server Aplikasi. Klik kanan Analitik dan pilih Hapus Log.

  4. Pilih opsi Hapus untuk menghapus peristiwa.

Masalah yang diketahui

Nota

Ada masalah yang diketahui di Penampil Peristiwa di mana mungkin gagal mendekode peristiwa ETW. Anda mungkin melihat pesan kesalahan yang terlihat seperti berikut ini.

Deskripsi untuk Event ID <id> dari sumber Microsoft-Windows-Application Server-Applications tidak dapat ditemukan. Komponen yang menaikkan kejadian ini tidak dipasang pada komputer lokal Anda atau penginstalan rusak. Anda dapat memasang atau memperbaiki komponen pada komputer lokal.

Jika Anda mengalami kesalahan ini, klik refresh di panel tindakan. Peristiwa sekarang harus didekode dengan benar.

Lihat juga