Perangkat lunak tidak selalu bertingkah seperti yang Anda harapkan, tetapi .NET Core memiliki alat dan API yang akan membantu Anda mendiagnosis masalah ini dengan cepat dan efektif.
Artikel ini membantu Anda menemukan berbagai alat yang Anda butuhkan.
Debugger
Debugger memungkinkan Anda berinteraksi dengan program Anda. Menjeda, mengeksekusi, memeriksa, dan melanjutkan secara bertahap memberi Anda wawasan tentang perilaku kode Anda. Debugger adalah pilihan yang baik untuk mendiagnosis masalah fungsional yang dapat dengan mudah direprodiksi.
Pengujian Unit
Pengujian unit adalah komponen utama integrasi berkelanjutan dan penyebaran perangkat lunak berkualitas tinggi. Pengujian unit dirancang untuk memberi Anda peringatan dini ketika Anda melanggar sesuatu.
Instrumentasi untuk pengamatan
.NET mendukung teknik instrumentasi standar industri menggunakan metrik, log, dan jejak terdistribusi. Instrumentasi adalah kode yang ditambahkan ke proyek perangkat lunak untuk merekam apa yang dilakukannya. Informasi ini kemudian dapat dikumpulkan dalam file, database, atau dalam memori dan dianalisis untuk memahami bagaimana program perangkat lunak beroperasi. Ini sering digunakan di lingkungan produksi untuk memantau masalah dan mendiagnosisnya. Runtime .NET memiliki instrumentasi bawaan yang dapat diaktifkan secara opsional dan API yang memungkinkan Anda menambahkan instrumentasi kustom khusus untuk aplikasi Anda.
Metrik
Metrik adalah pengukuran numerik yang dicatat dari waktu ke waktu untuk memantau performa dan kesehatan aplikasi. Metrik sering digunakan untuk menghasilkan pemberitahuan ketika potensi masalah terdeteksi. Metrik memiliki overhead performa yang sangat rendah dan banyak layanan mengonfigurasinya sebagai telemetri always-on.
Log
Pengelogan adalah teknik di mana kode diinstrumentasikan untuk menghasilkan log, catatan peristiwa menarik yang terjadi saat program sedang berjalan. Seringkali serangkaian dasar peristiwa log dikonfigurasi secara default dan pengelogan yang lebih luas dapat diaktifkan sesuai permintaan untuk mendiagnosis masalah tertentu. Overhead performa bervariasi tergantung pada berapa banyak data yang dicatat.
Jejak terdistribusi
Pelacakan Terdistribusi adalah bentuk pengelogan khusus yang membantu Anda melokalisasi kegagalan dan masalah performa dalam aplikasi yang didistribusikan di beberapa mesin atau proses. Teknik ini melacak permintaan melalui aplikasi yang menghubungkan pekerjaan bersama-sama yang dilakukan oleh komponen aplikasi yang berbeda dan memisahkannya dari pekerjaan lain yang mungkin dilakukan aplikasi untuk permintaan bersamaan. Dimungkinkan untuk melacak setiap permintaan dan pengambilan sampel dapat digunakan secara opsional untuk mengikat overhead performa.
Kesedihan
Cadangan adalah file yang berisi rekam jepret proses pada saat pembuatan. Ini dapat berguna untuk memeriksa status aplikasi Anda untuk tujuan penelusuran kesalahan.
Simbol
Simbol adalah pemetaan antara kode sumber dan biner yang dihasilkan oleh pengkompilasi. Ini biasanya digunakan oleh debugger .NET untuk mengatasi nomor baris sumber, nama variabel lokal, dan jenis informasi diagnostik lainnya.
Mengumpulkan diagnostik dalam kontainer
Alat diagnostik yang sama yang digunakan di lingkungan Linux non-kontainer juga dapat digunakan untuk mengumpulkan diagnostik dalam kontainer. Hanya ada beberapa perubahan penggunaan yang diperlukan untuk memastikan alat berfungsi dalam kontainer Docker.
Alat global diagnostik .NET Core
penghitung dotnet
penghitung dotnet adalah alat pemantauan performa untuk pemantauan kesehatan tingkat pertama dan penyelidikan performa. Ini mengamati nilai penghitung kinerja yang diterbitkan melalui EventCounter API. Misalnya, Anda dapat dengan cepat memantau hal-hal seperti penggunaan CPU atau tingkat pengecualian yang dilemparkan di aplikasi .NET Core Anda.
dotnet-dump
Alat dotnet-dump adalah cara untuk mengumpulkan dan menganalisis Windows dan cadangan inti Linux tanpa debugger asli.
dotnet-gcdump
Alat dotnet-gcdump adalah cara untuk mengumpulkan cadangan GC (Pengumpul Sampah) dari proses .NET langsung.
dotnet-trace
.NET Core mencakup apa yang disebut di EventPipe mana data diagnostik diekspos. Alat dotnet-trace memungkinkan Anda untuk mengonsumsi data pembuatan profil yang menarik dari aplikasi Anda yang dapat membantu dalam skenario di mana Anda perlu membuat akar penyebab aplikasi berjalan lambat.
dotnet-stack
Alat dotnet-stack memungkinkan Anda mencetak tumpukan terkelola dengan cepat untuk semua utas dalam proses .NET yang sedang berjalan.
simbol dotnet
file unduhan simbol dotnet (simbol, DAC/DBI, file host, dll.) yang diperlukan untuk membuka cadangan inti atau minidump. Gunakan alat ini jika Anda memerlukan simbol dan modul untuk men-debug file cadangan yang diambil pada komputer yang berbeda.
PerfCollect adalah skrip bash yang dapat Anda gunakan untuk mengumpulkan jejak dengan perf dan LTTng untuk analisis performa aplikasi .NET yang lebih mendalam yang berjalan pada distribusi Linux.
Gunakan Web App Down, Pemantauan Crash, dan Minta Genie untuk pemecahan masalah. Gunakan alat-alat ini untuk memantau ketersediaan aplikasi dan platform, mengidentifikasi pengecualian yang tidak tertangani, menangkap cadangan memori dan tumpukan panggilan, serta menemukan area investigasi dan diagnostik.
Bangun solusi end-to-end di Microsoft Azure untuk membuat Azure Functions, menerapkan dan mengelola aplikasi web, mengembangkan solusi yang menggunakan penyimpanan Azure, dan banyak lagi.