Ini adalah cara saya menggunakan kata-kata ini. Orang lain mungkin memiliki penggunaan tambahan atau berbeda. Bergantung pada pekerjaan yang dihadapi, saya akan menggunakan ketentuannya secara berbeda. Tim pengembangan dan tim operasi memiliki kebutuhan penggunaan yang berbeda.
Pemantauan adalah pemantauan. Biasanya ini sedang berlangsung, dan lebih disukai otomatis. Alat open source seperti Munin
, Nagios
, dan MRTG
termasuk dalam kategori ini. Ada banyak alat komersial juga. Saya juga akan memasukkan sar
run terus-menerus dalam kategori ini, tetapi hasilnya tidak dipantau secara normal. Alat pemantauan dapat digunakan untuk memicu peringatan ketika sumber daya yang dipantau berada di atas atau di bawah tingkat pemicu. Banyak alat pemantauan bekerja dengan baik di lingkungan yang heterogen.
Pembuatan profil biasanya dilakukan pada program tertentu untuk melihat kode mana yang menggunakan sumber daya terbanyak. Seringkali ini adalah waktu CPU, tetapi juga dapat mencakup memori, I / O, dan waktu eksekusi (dinding). Biasanya digunakan untuk mengidentifikasi kode kandidat untuk optimisasi. Alat profiling cenderung bergantung pada bahasa dan / atau platform.
Jenis profil yang berbeda dilakukan menggunakan log dan / atau data pemantauan. Ini adalah profil penggunaan dan dapat dilakukan karena berbagai alasan. Saya belum menemukan banyak alat untuk melakukan ini.
Saya menggunakan penelusuran dalam beberapa cara berbeda. Paling sering, saya melacak rute jaringan. Bergantung pada pengaturan jaringan dan firewall, berbagai alat dapat digunakan dengan keberhasilan yang kurang lebih. Sebagian besar memiliki traceroute dalam nama atau deskripsi mereka.
Penelusuran program adalah penelusuran pelaksanaan suatu program. Ini umumnya dilakukan dalam situasi pengujian. Ini dapat dilakukan dengan beberapa cara (sesuai urutan penggunaan dan pengalaman saya):
- Panggilan penelusuran menggunakan alat seperti
strace
untuk melihat kode apa yang disebut. Ini berguna untuk menentukan mengapa suatu program gagal atau tidak merespons seperti yang diharapkan.
- Trace level logging, yang tergantung pada pernyataan logging yang sesuai yang dimasukkan dalam kode. Sebagian besar suite logging mendukung tingkat detail ini. Pencatatan tingkat jejak cenderung memiliki cakupan kode yang buruk. Saya biasanya menambahkannya sesuai kebutuhan dan meninggalkannya dalam kode untuk digunakan di masa depan.
- Pelacakan cakupan kode mencatat bagian mana dari kode yang telah dieksekusi di dalam test suite. Ini dapat bermanfaat dalam menentukan kasus uji yang hilang. Cakupan kode 100% sulit didapat. Cakupan 100% dari arus normal harus dapat dicapai.
- Pemeriksaan meja: menelusuri kode dengan membacanya. Tidak terlalu berguna pada program yang lebih besar, tetapi cara yang baik untuk mengidentifikasi kasus tepi untuk pengujian unit, dan / atau untuk mengidentifikasi masalah yang mungkin terjadi ketika sumber kemungkinan telah dipersempit. Som = e IDEs dan editor membuatnya relatif mudah untuk mengikuti panggilan ke kode implementasi.
- Debugging langsung; melacak eksekusi kode saat sedang berjalan menggunakan debugger. Dimungkinkan untuk melacak instruksi eksekusi dengan instruksi, tetapi jika masalahnya adalah masalah waktu, itu mungkin dikaburkan. Debuggers yang dapat menautkan kode ke instruksi saat ini banyak membantu tetapi mungkin memerlukan versi debug dari program yang akan dibangun.