Advertisement
  1. Code
  2. Ruby
  3. Ruby on Rails

Relic & JMeter Baru - Pengujian Kinerja Sempurna

Scroll to top
Read Time: 11 min
This post is part of a series called Performance Monitoring With New Relic.
3 New Relic Power Features You Should Be Using Today
Using New Relic Custom Metrics to Monitor All the Things
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

() translation by (you can also view the original English article)

Mengikuti dari artikel pengantar yang luar biasa yang ditampilkan baru-baru ini di Nettuts +, artikel ini terlihat untuk menunjukkan bagaimana Anda dapat membawa New Relic ke tingkat berikutnya. Sebagai alat pemantau kinerja, New Relic memang fantastis, tetapi bagaimana dengan pengujian kinerja, sebelum Anda menayangkannya. Di situlah JMeter datang untuk bermain. Dalam tutorial ini, Anda akan melihat bagaimana kita dapat menekankan menguji aplikasi kita di bawah beban yang realistis, dan menggabungkan output JMeter dan New Relic untuk memberi Anda kepercayaan dalam kinerja aplikasi Anda, sebelum melepaskan ke lingkungan produksi.

Konten Bersponsor

Konten ini ditugaskan oleh NewRelic dan ditulis dan / atau diedit oleh tim Tuts+. Tujuan kita dengan konten bersponsor adalah untuk menerbitkan tutorial yang relevan dan obyektif, studi kasus, dan wawancara inspirasional yang menawarkan nilai pendidikan asli kepada pembaca kita dan memungkinkan kita untuk mendanai pembuatan konten yang lebih bermanfaat.

Mengapa menunggu hingga penerapan untuk melihat bagaimana aplikasi Anda akan dikenakan terhadap lalu lintas dunia nyata. Jika ada hambatan dalam kode Anda yang menurunkan pengalaman pengguna, apakah Anda benar-benar menginginkannya untuk ditayangkan? Bagaimana jika kita dapat menemukan kemacetan ini lebih awal, meningkatkan kinerja dan memberikan aplikasi yang hebat kepada pengguna akhir kita untuk pertama kalinya, dan mempertahankannya dengan pembandingan reguler. JMeter dan New Relic bersama-sama dapat memberi Anda rangkaian pengujian kinerja yang sempurna ini.


Aplikasi Demo

Sebelum kita dapat mulai menggunakan New Relic dan JMeter kita membutuhkan aplikasi sederhana untuk melakukan beberapa pengujian kinerja! Jadi, mari menulis aplikasi Ruby Sinatra sederhana yang memiliki layanan yang dapat kita uji. Saya tidak akan masuk ke pembuatan aplikasi ini terlalu banyak, karena Anda dapat membaca tentang Sinatra di artikel lain tentang Nettuts+.

Aplikasi ini akan dipalsukan sedikit, memungkinkan untuk melihat beberapa hasil yang menarik sepanjang garis dari apa yang mungkin terlihat dalam berbagai aplikasi. Kita akan menulis layanan yang mengambil id, dan tergantung pada id itu akan mengembalikan nilai langsung atau dengan penundaan. Ini akan menunjukkan kepada kita apa yang dapat terjadi jika permintaan ditangani dengan cepat atau lambat dan dampaknya terhadap kinerja aplikasi Anda secara keseluruhan karena banyak pengguna membuat permintaan.

Berikut adalah kode yang mendefinisikan layanan:

1
             require 'sinatra'
2
             require 'puma'
3
             require 'newrelic_rpm'
4
5
             module Example
6
             class App < Sinatra::Base
7
             get '/example/:id' do |id|
8
             result = id
9
             if id == '1'
10
             result = "This is our id: #{id}"
11
             end
12
             if id == '2'
13
             sleep 3
14
             result = "We waited for id: #{id}"
15
             end
16
             result
17
             end
18
             end
19
             end

Seperti yang Anda lihat ini jelas merupakan contoh yang dibuat-buat, tetapi idenya adalah bahwa kita memiliki beberapa layanan yang cepat menanggapi dan satu dengan sedikit keterlambatan. Kita sekarang dapat menggunakan aplikasi ini dan mulai menulis rencana pengujian kinerja kami di JMeter. Mari kita pertama kali menginstal JMeter di komputer.


Mengaitkan ke New Relic

Membuat pelaporan aplikasi Anda ke New Relic adalah proses yang sangat sederhana. Relic baru mendukung Ruby, Python, PHP, Java, dan platform lainnya, yang menampilkan panduan yang mudah diikuti untuk semua. Dalam kasus Ruby an Sinatra, ini benar-benar merupakan proses empat langkah:

  • Tambahkan gem 'newrelic_rpm' ke GemFile Anda dan 'bundle install'.
  • Dalam 'app.rb' utama Anda, tempat kita menentukan rute layanan di atas, tambahkan baris "require 'newrelic_rpm'".
  • Unduh file 'newrelic.ini' dari akun Anda di New Relic dan tempatkan di folder config di aplikasi Anda.
    (Memastikan Modus Monitor diatur ke 'benar' untuk Pengembangan jika berjalan secara lokal.)
  • Rackup aplikasi Anda dan melihatnya tercantum di New Relic!

Setelah Anda mengikuti langkah-langkah sederhana ini, Anda harus mulai melihat beberapa data yang masuk ke New Relic ketika Anda menekan aplikasi Anda dengan beberapa lalu lintas. Anda akan tahu itu berfungsi saat aplikasi terdaftar dan berubah menjadi hijau.

newrelic-screen-1newrelic-screen-1newrelic-screen-1

Demi kelengkapan, saya hanya akan daftar gambaran singkat dari tampilan utama New Relic menyediakan untuk aplikasi Anda. Desain di New Relic terutama untuk memantau aplikasi yang berada di lingkungan produksi dengan lalu lintas langsung. Layar overview memberikan pandangan sekilas pada status aplikasi Anda saat ini dan bagaimana responsnya terhadap permintaan pelanggan.

Layar dapat diuraikan sebagai berikut:

  1. Waktu Respons - ini adalah waktu respons rata-rata panggilan di seluruh aplikasi Anda.
  2. Apdex - Metrik Relik Baru untuk pengalaman pelanggan. Skor lebih ke 1 menunjukkan sebagian besar pengguna
    permintaan jatuh dalam waktu yang wajar. Apdex dapat berguna untuk mengingatkan ketika turun di bawah sebagai nomor yang ditetapkan.
  3. Throughput - permintaan per menit (RPM) dibuat untuk aplikasi Anda.
  4. Transaksi Web - berbagai rute yang sedang diakses di aplikasi Anda. Ini diperintahkan oleh permintaan yang paling memakan waktu.
  5. Error rate - persentase permintaan yang menyebabkan kesalahan. Anda dapat mengeklik dan men-debug kesalahan individual di sini.
newrelic-screen-2newrelic-screen-2newrelic-screen-2

Apa Itu JMeter?

jmeter-logojmeter-logojmeter-logo

JMeter adalah aplikasi Java yang memungkinkan Anda untuk membuat rencana pengujian yang dapat menguji aplikasi Anda. Anda dapat mengatur semuanya mulai dari jumlah pengguna serentak dari layanan, hingga jumlah permintaan yang mereka buat sedetik. Anda bahkan dapat meningkatkan permintaan untuk melihat bagaimana aplikasi Anda berhubungan dengan perubahan beban, seperti yang bisa terjadi dalam penerapan dunia nyata.

Sebagai bagian dari tutorial ini, saya akan menunjukkan dasar-dasar mendapatkan rencana tes yang menjalankan terhadap aplikasi Anda, tetapi dengan sejumlah plugin dan dokumentasi ada banyak alat-alat untuk menangani jenis kinerja pengujian Anda mungkin perlu.


Instalasi dan Penggunaan

Instalasi cukup mudah dan di sini kita akan membuat daftar instruksi untuk Mac dan Linux.

Mac OS X

Pada Mac JMeter dapat diinstal dengan sangat mudah melalui Brew. Setelah Anda mencoba Brew
perintah berikut:

1
        brew install jmeter

Linux

Pada mesin Linux, cukup download dari halaman unduhan JMeter. Kemudian, cukup ikuti petunjuk yang diberikan.

Semua Platform

Setelah Anda memiliki paket JMeter utama, perlu juga menginstal seperangkat plugin standar. Kita akan menggunakan satu plugin secara khusus nanti, oleh karena itu perlu menambahkannya agar dapat digunakan. Kumpulan plugin standar dapat diperoleh dari tautan ini: http://jmeter-plugins.org/downloads/file/JMeterPlugins-1.0.0.zip Setelah mengunduh ekstrak ke dalam paket JMeter yang berada di: "/ usr / local / Cellar / jmeter / "pada Mac, dan di mana pun Anda menginstalnya di Linux. 


Analisis dalam New Relic - Pertama, Kita Perlu Rencana Uji JMeter!

Jadi sekarang kita telah menginstal JMeter dan aplikasi sederhana, mari menguji aplikasi ini dan melihat bagaimana kinerjanya. Ketika Anda menjalankan JMeter, Anda akan mendapatkan layar ini:

Sekarang, mari tetapkan URL dasar untuk permintaan kami. Klik kanan pada "Test Plan" di sebelah kiri, dan pilih 'Add -> Config Element -> HTTP Request Default'. Kita sekarang dapat memasukkan URL dasar di sini seperti itu.

jmeter-screen-2jmeter-screen-2jmeter-screen-2

Kita sekarang dapat menambahkan jumlah benang atau "pengguna" dari sistem. Untuk melakukan ini, klik kanan pada "Test Plan" lagi dan pilih 'Add -> Threads (Users) -> Thread Group'. Kita kemudian dapat memasukkan pengguna, dalam hal ini 20. Pastikan untuk memilih opsi loop count forever, karena ini akan memungkinkan untuk mengontrol waktu dan jumlah permintaan melalui plugin nanti.

jmeter-screen-3jmeter-screen-3jmeter-screen-3

Setelah memiliki grup untaian, sekarang kita dapat menentukan permintaan yang ingin dibuat ke aplikasi yang akan diuji kinerjanya. Untuk melakukan ini, kita akan menambahkan "Permintaan HTTP" ke "Rencana Uji". Ini dapat ditemukan dengan mengklik kanan pada "Thread Group" dan memilih "Add -> Sampler -> HTTP Request". Kemudian kita dapat menentukan permintaan untuk dibuat di panel seperti di bawah ini.

jmeter-screen-4jmeter-screen-4jmeter-screen-4

Anda dapat melihat bagaimana kita tidak perlu mendefinisikan URL dasar, seperti yang kita lakukan sebelumnya dan sebagai gantinya hanya perlu menambahkan jalur untuk permintaan tersebut. Dalam hal ini jalurnya adalah respons 'contoh / 1'. Anda juga akan melihat saya telah maju dan menambahkan dua permintaan lainnya bersama dengan panel hasil dan grafik, yang akan kita gunakan untuk menganalisis hasil tes. Sekarang Anda harus memahami penambahan elemen dan mereka dapat dengan mudah ditemukan di menu dari nama mereka. Dua minat utama adalah "Throughput Shaping Timer" dan "Composite Graph".

Shaping Timer memungkinkan untuk memetakan bagaimana kita ingin permintaan dibuat ke aplikasi dari waktu ke waktu. Misalnya, kita dapat mengonfigurasi satu permintaan per detik selama 60 detik, dan kemudian meningkatkan hingga lima permintaan per detik selama 60 detik dan melihat pengaruhnya terhadap waktu respons kita. Mari kita lihat bagaimana kita mengkonfigurasi itu di panel Shaping Timer.

jmeter-screen-5jmeter-screen-5jmeter-screen-5

Jadi, dengan masuk dan menambahkan setiap baris, Anda dapat menentukan jumlah permintaan yang harus dibuat dan untuk berapa lama hal ini harus dilakukan. Kita kemudian dapat melihat hasil kita menggunakan "Composite Graph", yang menunjukkan transaksi yang dilakukan per detik terhadap waktu respons dari permintaan kita. Ini memerlukan konfigurasi minimal, cukup dengan menambahkan dua grafik yang akan kita gabungkan, kemudian dalam pengaturan untuk grafik gabungan, tambahkan dalam grafik yang kita butuhkan seperti:

jmeter-screen-6jmeter-screen-6jmeter-screen-6

Itu dia! Kita sekarang dapat menjalankan rencana pengujian kita dan mulai melihat beberapa hasil. Tekan bermain ke bagian atas layar dan kemudian klik pada grafik komposit. Ini akan mulai menyebarkan hasilnya ketika mereka masuk dan Anda bisa mendapatkan gambaran tentang bagaimana aplikasi Anda merespons. Mari kita lihat hasilnya.

jmeter-screen-7jmeter-screen-7jmeter-screen-7

Kita dapat melihat dengan jelas lonjakan permintaan pada satu menit memiliki dampak yang cukup besar pada aplikasi. Untuk menit pertama permintaan stabil pada satu per detik dan berikan waktu respons sekitar dua/tiga ms. Namun, ketika kita meningkatkan hingga lima, waktu respons bertambah sedikit mencapai lima dan lima m/detik. Tentunya ini adalah waktu respons yang sangat cepat di dunia nyata, tetapi kita hanya menunjukkan di sini bagaimana kita dapat meningkatkan beban dan melihat pengaruhnya, jika ada, ini akan terjadi.

Mari bandingkan hasil ini dengan layanan yang mengalami penundaan selama tiga detik. Bagaimana itu akan mengatasi peningkatan beban? Untuk beralih ke contoh dua, klik kanan pada contoh satu dan pilih toggle. Ini akan menonaktifkan permintaan itu, lalu melakukan toggle pada contoh dua dan yang akan mengaktifkannya. Pastikan untuk mengklik ikon "Hapus Semua" (Sapu kuas) di bagian atas untuk menghapus hasil lari terakhir, lalu tekan tombol putar.

jmeter-screen-8jmeter-screen-8jmeter-screen-8

Bahkan dengan penundaan tiga detik, server mengelola permintaan dengan cukup baik dan kita melihat banyak hal yang sama di jalan hasil untuk layanan ini. Hanya beberapa milidetik saat permintaan meningkat. Dengan layanan sederhana seperti ini, ini diharapkan.


Analitik New Relic

Kekuatan sesungguhnya sekarang hadir dengan menggabungkan data ini dengan New Relic. Kita bisa misalnya, mengatur JMeter untuk berjalan selama setengah jam dengan variasi beban yang berbeda dan kemudian menggunakan New Relic untuk menganalisis hasil dan menggunakan fungsi drill down untuk mencari kemacetan dalam aplikasi. Ini kemudian dapat disetel dengan baik, meningkatkan kinerja Anda sebelum mengirimkan kepada pelanggan Anda.

Sekali lagi, saya tidak akan masuk ke pengaturan New Relic karena ini tercakup dalam artikel baru lainnya di Nettuts + (Lihat di sini). Tetapi setelah aplikasi Anda terhubung, itu hanya kasus menghasilkan beban melalui JMeter dan masuk ke New Relic untuk melihat hasilnya. Untuk menjalankan ini, saya telah menyiapkan Shaping Timer untuk menjalankan beban kita selama 30 menit meningkatkan permintaan dari lima menjadi 10 dan kemudian 15 per detik. Ini harus memberi kita beberapa lalu lintas yang masuk akal untuk dilihat di New Relic.

jmeter-screen-9jmeter-screen-9jmeter-screen-9

Setelah tes JMeter dijalankan, kita dapat melihat New Relic yang sekarang dapat kita lihat memiliki stat pada traffic yang mengikuti aplikasi.

jmeter-screen-10jmeter-screen-10jmeter-screen-10

Ini jelas menunjukkan peningkatan permintaan, pada puncaknya mencapai sekitar 400 permintaan per menit (RPM) dan waktu respons tetap stabil pada tiga detik. Kita dapat menyelidiki lebih dalam statistik dan melihat ke dalam transaksi yang kita buat. Jika kita mengklik ke tampilan Transaksi Web, kita dapat melihat analisis New Relic telah dilakukan hanya pada bagian aplikasi ini. Jika kode yang menangani permintaan memiliki lebih banyak lapisan, seperti metode untuk memanggil sistem lain untuk mendapatkan data sebelum menampilkan kembali ke pengguna, kita akan melihat lebih banyak rincian.

Misalnya, di sebelah kiri menunjukkan bahwa kami menghabiskan 100% waktu permintaan, dalam panggilan itu. Jika kami memiliki beberapa tahap seperti panggilan ke database, kita mungkin melihat persentase yang tinggi di sana dan kita akan tahu untuk mengoptimalkan kueri ke basis data untuk meningkatkan kinerja.

jmeter-screen-11jmeter-screen-11jmeter-screen-11

New Relic juga menyediakan tampilan pelaporan yang bagus pada data aplikasi Anda, yang disebut Skalabilitas. Laporan ini dapat sangat berguna untuk memonitor kemampuan aplikasi Anda untuk menangani peningkatan beban. Grafik menunjukkan waktu respons Anda terhadap permintaan per menit, dan Anda dapat dengan jelas melihat apakah ada degradasi dalam waktu respons saat mereka meningkat. Ini adalah alat yang hebat dan salah satu yang harus sering Anda lihat baik dalam pengujian kinerja seperti ini, tetapi juga dalam pemantauan kinerja aplikasi produksi Anda.

Ini adalah alat yang hebat dan salah satu yang harus sering Anda lihat dalam hal ini, tetapi juga dalam aplikasi produksi Anda.

jmeter-screen-12jmeter-screen-12jmeter-screen-12

Relik Baru juga memberikan pandangan lain, yaitu tentang Kapasitas. Ini memungkinkan kita untuk melihat seberapa banyak sumber daya yang tersedia yang digunakan oleh aplikasi. Ini menunjukkan kepada pengembang apakah jumlah instance yang melayani aplikasi Anda cukup untuk menangani jenis beban yang Anda dapatkan. Ini penting untuk memastikan Anda tidak berjalan mendekati kapasitas dan memiliki kemampuan untuk menangani lonjakan lalu lintas yang mungkin terjadi di luar arus lalu lintas normal Anda. New Relic meringkas laman dengan baik, di samping analisis aplikasi kita di sini, yang dapat kita lihat cukup adil bahkan pada contoh tunggal ini.

jmeter-screen-13jmeter-screen-13jmeter-screen-13

Kesimpulan

Tujuan dari tutorial ini adalah untuk menunjukkan kepada Anda cara cepat menyiapkan paket pengujian JMeter untuk aplikasi Anda, sehingga Anda dapat menguji mendorong kinerja aplikasi Anda sebelum mengirimkan kepada pelanggan Anda. Pendekatan ini dapat digunakan dalam proyek baru, memastikan aplikasi yang akan Anda kirimkan siap untuk lalu lintas dunia nyata. Ini juga dapat digunakan pada aplikasi warisan, memberi Anda indikator kinerja dasar sehingga saat Anda membuat perubahan ke depan Anda dapat melihat apakah kinerja aplikasi Anda meningkat atau menurun.

Dengan memanfaatkan alat-alat hebat yang disediakan oleh Relik Baru, Anda dapat memonitor aplikasi Anda secara online dalam waktu nyata, tetapi juga mengambil toolsetnya dan menerapkannya ke analisis offline Anda sendiri. Ini akan memberi Anda, pengembang, keyakinan pada produk Anda baik saat sedang dikembangkan dan saat diluncurkan ke alam liar.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.