Cara melakukan analisis rangka kerja CaptureFramework

王林
Lepaskan: 2023-06-02 22:01:18
ke hadapan
1042 orang telah melayarinya

1. Latar Belakang

Pemantauan perkhidmatan aplikasi merupakan bahagian penting dalam sistem operasi dan penyelenggaraan pintar. Dalam sistem UAV, siasatan rangka kerja peningkatan middleware (MOF) menyediakan potret aplikasi dan fungsi pengumpulan data prestasi Fungsi pengumpulan data terutamanya mengumpul empat jenis data: data masa nyata, data potret, penjanaan data pautan panggilan dan data analisis data benang. . Untuk mencapai pengumpulan data masa nyata, UAVStack mereka bentuk rangka kerja CaptureFramework untuk menyediakan gelagat tangkapan data bersatu dan keupayaan untuk menjana hasil tangkapan.

2. Prinsip operasi CaptureFramework

Cara melakukan analisis rangka kerja CaptureFramework

2.1 Penerangan teknikal utama

  • JavaAssist

  • Sistem tangkapan monitor

  • precap/docap

2.2 Penerangan Seni Bina

  • Mata tangkapan: Menyokong titik tangkap Tomcat, MSCP, Springboot dan Jeti.

  • Tunggal UAVServer: Sebagai titik masuk tangkapan bersatu, ia menyediakan kaedah segerak dan tak segerak.

  • StandardMonitor: Ia melaksanakan antara muka Monitor dan merupakan kelas pelaksanaan tangkapan data masa nyata Ia menyediakan kaedah doCapture, yang bertanggungjawab untuk kelakuan tangkapan dan menjana hasil tangkapan.

  • MonitorElemCapHandler: Logik rangkak yang berbeza dan antara muka biasa titik rangkak melaksanakan logik pengebumian yang berbeza, menyediakan kaedah gelagat rampasan, preCap dan doCap, dan kaedah menjana hasil rangkakan.

  • StandardMonitorRepository: Menyimpan struktur data tangkapan data masa nyata.

  • DataObserver: Mendedahkan data antara muka JMX/HTTP.

2.3 Penerangan Kelas Utama

  • Pantau pemantauan masa nyata terutamanya bermula dari kelas DefaultMonitorSupporter untuk memulakan objek StandardMonitor dan memasang objek monitor ke objek DataStore melalui tengah CaptureFramework.

  • DataObserver menyediakan perkhidmatan JMX/HTTP untuk merangkak MA seterusnya Perkhidmatan Http telah mendaftarkan tiga pengendali, iaitu HttpJEEJVMObserver, HttpJEEMonitorObserver, dan HttpJEEProfileObserver. Pengendali yang berbeza mendedahkan antara muka yang berbeza.

  • Kelas Pengendali di bawah pakej MonitorHandler secara khusus mengendalikan pengiraan dan statistik data penunjuk Monitor.

2.4 Analisis titik tangkapan

Rangka kerja CaptureFrameWork menyediakan titik masuk tangkapan bersatu, dan menyediakan kaedah segerak dan kaedah tak segerak dalam UAVServer:

  • Titik masuk tangkapan segerak: runMonitorCaptureOnServerCapPoint

  • Titik masuk tangkapan tak segerak: runMonitorAsyncCaptureOnServerCapPoint

Titik masuk tangkapan tak segerak: runMonitorAsyncCaptureOnServerCapPoint

    Asynchronous menambah satu lagi parameter daripada penyegerakan, CaptureContextMapFromAnotherThread Jika parameter ini tidak kosong, maklumat konteks perlu digabungkan. Dalam keadaan biasa, apabila menggunakan kaedah tak segerak untuk menguburkan titik, CaptureContextMapFromAnotherThread diteruskan dengan memanggil kaedah tangkapan tak segerak sebelum kaedah dilaksanakan adalah kosong, dan maklumat konteks terkapsul dikembalikan Selepas pelaksanaan kaedah selesai, tangkapan tak segerak kaedah dipanggil untuk menghantar maklumat konteks, dan maklumat Konteks digabungkan, dan kemudian operasi tangkapan khusus dilakukan Untuk butiran, sila rujuk coretan kod berikut:
  • Panggilan tak segerak. sebelum pelaksanaan kaedah

Cara melakukan analisis rangka kerja CaptureFramework

  • Panggilan tak segerak selepas pelaksanaan kaedah adalah seperti berikut, dengan ccMap ialah maklumat konteks terkapsul yang dikembalikan oleh panggilan tak segerak

Cara melakukan analisis rangka kerja CaptureFramework

    2.5 Analisis tingkah laku merebut
  • Antara muka monitor: Menyediakan berbilang antara muka, yang paling penting daripadanya ialah kaedah doCapture dan doPreStore digunakan untuk melaksanakan pelaksanaan pada titik tangkapan tertentu Untuk tingkah laku menangkap data, kaedah doPreStore digunakan untuk melaksanakan beberapa tindakan menangkap sebelum menyimpannya dalam struktur data dan untuk melakukan beberapa data khas. pemprosesan.
  • Kelas StandardMonitor: Kelas pelaksanaan khusus antara muka Monitor.
  • Kelas StandardMonitorRepository: menyimpan struktur data tangkapan data masa nyata.
  • Antara muka MonitorElementInstance: antara muka tika yang menyimpan struktur data tangkapan data masa nyata.
  • Kelas StandardMonitorElementInstance: Kelas pelaksanaan khusus antara muka MonitorElementInstance.

Sama ada titik masuk tangkapan segerak atau titik masuk tangkapan tak segerak, kaedah doCapture akan dilaksanakan Coretan kod adalah seperti berikut: Cara melakukan analisis rangka kerja CaptureFramework

monitor.doCapture Ia memanggil doCapture dalam antara muka Monitor, dan kelas pelaksanaannya ialah StandardMonitor.

    Kaedah doCapture dalam StandardMonitor terutamanya melakukan operasi berikut:
  • Dapatkan tatasusunan MonitorElement semasa mengikut parameter Tatasusunan MonitorElement dilaksanakan melalui getElementByCapId dari StandardMonitorRepository
  • Gelung melalui tatasusunan MonitorElement, dapatkan kelas pelaksanaan data tangkapan, dapatkan pengendali yang sedang dilaksanakan berdasarkan kelas pelaksanaan, dan akhirnya tentukan peringkat tangkapan (precap/docap) berdasarkan pengendali yang diperolehi pada masa ini , dan kemudian lakukan pemprosesan yang sepadan. Pengendali yang berbeza menjana MonitorElementInstance berdasarkan ciri yang berbeza, dan akhirnya menyimpan keputusan dalam struktur data StandardMonitorRepository.

Ambil ServerEndRespTimeCapHandler (kelakuan merangkak sebelah pelayan) sebagai contoh:

  • kaedah preCap: hanya merekodkan masa permintaan mula perkhidmatan.

  • kaedah doCap: lakukan pemprosesan logik yang berbeza mengikut monitorElemId yang berbeza, akhirnya merangkum contoh MonitorElementInstance, dan kemudian memproses keputusan tingkah laku tangkapan, termasuk penyingkiran puncak nilai maksimum, nilai maksimum , nilai minimum, kembalikan kod status, kemas kini cap masa, pengiraan dan pemprosesan data lain yang sepadan.

3. Pengumpulan data masa nyata

3.1 Apakah itu data masa nyata

Iaitu, data masa jalan, yang merujuk kepada maklumat yang dijana apabila program berjalan. CPU, memori timbunan, maklumat JVM yang diduduki oleh program, dan maklumat statistik yang berkaitan dengan akses perkhidmatan dan panggilan pelanggan (purata masa tindak balas, kiraan akses, dll.).

3.2 Pengumpulan data sisi pelayan

Pelaksanaan DefaultMonitorSupporter

Cara melakukan analisis rangka kerja CaptureFramework

Pengumpulan data sisi pelayan menggunakan DefaultMonitorSupporter.start sebagai titik masuk untuk bina tika monitor :

Cara melakukan analisis rangka kerja CaptureFramework

Secara lalai, tika StandardMonitor jenis perkhidmatan dibina, yang mengandungi tika StandardMonitorRepository mendaftarkan monitor Contoh MonitorElement dan menyimpan semua tika MonitorElement dalam atribut elemsMap.

Atribut elemsMap menyimpan pengendali kelas koleksi yang berbeza mengikut objek koleksi yang berbeza:

  • ServerEndRespTimeCapHandler: mengumpul masa tindak balas dan kiraan pemuatan Pelayan, APP, URL, dll.

  • JVMStateCapHandler: Mengumpul status jvm, termasuk penggunaan Heap, kiraan GC, kiraan benang, CPU, kiraan kelas, dll.

Coretan kod adalah seperti berikut:

Cara melakukan analisis rangka kerja CaptureFramework

Cara melakukan analisis rangka kerja CaptureFramework

3.3 Pengumpulan Data Pelanggan

Pelaksanaan DefaultClientMonitorSupporter Cara melakukan analisis rangka kerja CaptureFramework

Pengumpulan data pelanggan menggunakan DefaultClientMonitorSupporter.start sebagai titik masuk untuk membina contoh monitor:

Cara melakukan analisis rangka kerja CaptureFramework

Bina klien taip StandardMonitor secara lalai Instance, yang mengandungi instance StandardMonitorRepository, instance StandardMonitorRepository mendaftarkan monitor, satu instance mengandungi berbilang tika MonitorElement, dan menyimpan semua tika MonitorElement dalam atribut elemsMap.

  • elemsMap: Atribut hanya menyimpan kelas koleksi ClientRespTimeCapHandler.

  • ClientRespTimeCapHandler: Mengumpul masa tindak balas dan kiraan pemuatan pelanggan, dsb.

Cara melakukan analisis rangka kerja CaptureFramework

Sama ada pengumpulan data pihak klien atau pengumpulan data sebelah pelayan, monitor akan dipasang ke dalam DataObserver dan akhirnya berjaya dibina monitor akan diikat Tetapkan kepada kaedah tangkapan yang ditentukan (iaitu precap dan docap).

3.4 Pelaksanaan DataObServer

DataObServer menyediakan dua mod untuk mendedahkan data antara muka, iaitu JMX dan HTTP:

  • Mod HTTP: oleh HttpDataObserverWorker .start digunakan sebagai titik masuk, dan tiga pengendali didaftarkan masing-masing, iaitu pengendali untuk mendapatkan data JVM, Data pantau dan data profil. Setiap pengendali mendedahkan antara muka yang unik, tetapi mereka semua mengembalikan data dalam format JSON.

  • Kaedah JMX: Ejen JMX memperoleh antara muka terdedah melalui kaedah getMBeanInfo untuk mendapatkan data.

DataObServer juga menyediakan kaedah untuk memasang dan menyahpasang monitor, menambah dan mengalih keluar pendengar serta mendapatkan profil dan monitor:

Cara melakukan analisis rangka kerja CaptureFramework

Atas ialah kandungan terperinci Cara melakukan analisis rangka kerja CaptureFramework. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan