Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Ruby

Memulai Dengan Relik Baru dalam 30 Menit

by
Read Time:17 minsLanguages:
This post is part of a series called Performance Monitoring With New Relic.
5 Reasons Why New Relic Is a Developer's Best Friend

Indonesian (Bahasa Indonesia) translation by Puuma (you can also view the original English article)

Saya ingat bekerja di aplikasi Rails beberapa tahun yang lalu dan seseorang melontarkan ide untuk menggunakan layanan baru ini yang muncul di layar. Itu disebut Relik New dan mereka menjanjikan untuk memberi Anda lebih banyak wawasan tentang kinerja aplikasi Rails Anda, daripada yang pernah Anda dapat sebelumnya. Kami mencobanya dan itu sangat mengesankan, yang lebih penting adalah sesuatu yang dibutuhkan oleh ekosistem pengembangan web Ruby.

Konten Bersponsor

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

Mulai dari sekarang dan Anda akan kesulitan untuk menemukan aplikasi web Ruby yang tidak memiliki kaitan New Relic. Relic New sebagai perusahaan terus menyediakan alat untuk memantau aplikasi Ruby Anda, tetapi mereka juga telah bercabang ke sejumlah bahasa lain seperti Java, Python dan bahkan .Net. Tetapi tentu saja karena jumlah fitur yang Anda berikan bertambah, begitu juga kerumitan dan jumlah dokumentasi di luar sana. Sulit untuk mencari tahu di mana untuk memulai terutama jika Anda belum ahli.

Hari ini saya pikir kita bisa kembali ke akar New Relic dan melihat bagaimana kita bisa memulai dengan layanan untuk memantau aplikasi Rails.


Aplikasi Rails Dasar

Untuk menggunakan New Relic, kita perlu sesuatu untuk dipantau, jadi mari kita menyiapkan aplikasi dasar Rails 'Hello World'.

Aplikasi yang kami buat akan hidup di bawah ~/ projects/tmp/newrelic, dan akan disebut newrelic_rails1. Saya berasumsi Anda sudah memasang Rails:

Tidak banyak yang bisa kita lakukan untuk membuat aplikasi 'Hello World'. Kita membutuhkan pengontrol baru:

Sekarang kita hanya perlu rute, kita akan mendapatkan rute root dari aplikasi untuk menggunakan pengontrol kita. Kita juga membutuhkan tampilan, dengan kata-kata 'Hello World'. Mengingat semua ini, config/routes.rb kita seharusnya terlihat seperti ini:

Kontroler kita (app/controller/hello_controller.rb), akan menjadi seperti berikut:

Dan pandangan kita (app/views/hello/index.html.erb), akan mirip dengan:

Kita sekarang dapat memulai server pengembangan kita:

Saat kami curl localhost: 3000, kita mendapatkan:

Semuanya bekerja!


Mengaitkan ke dalam New Relic

Dengan Ruby itu sangat sederhana. Kami menambahkan permata ke Gemfile kami, install bundle, masukkan file konfigurasi ke dalam folder config dan kita memiliki semua yang kita butuhkan. Faktanya, Relik New sangat bagus dalam membimbing Anda melalui ini. Yang perlu Anda lakukan hanyalah masuk ke akun Anda dan jika Anda belum mengerahkan agen Relik New sebelumnya, cukup jelas apa yang harus dilakukan:

newrelic_startnewrelic_startnewrelic_start

Pertama, kita menginstal permata New Relic agent dengan menambahkannya ke Gemfile kita, sesuai petunjuknya:

newrelic_install_gemnewrelic_install_gemnewrelic_install_gem

Gemfile kita sekarang akan terlihat seperti ini:

Setiap kali kita menambahkan sesuatu ke Gemfile yang harus kita jalankan:

Kita juga memerlukan newrelic.yml, yang dapat Anda download dari New Relic:

newrelic_config_downloadnewrelic_config_downloadnewrelic_config_download

Ini akan datang pra-dikonfigurasi dengan kunci lisensi Anda. Kita perlu meletakkan file ini di bawah config/newrelic.yml.

Pada titik ini jika kita menjalankan aplikasi kita dalam mode pementasan atau produksi, kita sudah akan mendapatkan data di akun New Relic kita. Jadi mari kita lakukan:

Kali ini ketika kita curl localhost: 3000, kita mendapatkan:

Ada banyak JavaScript yang dimasukkan ke halaman kita sehingga New Relic dapat memonitor waktu browser. Ini adalah salah satu cara kita yang bisa dikatakan bahwa integrasi New Relic kami berhasil. Tapi itu bukan satu-satunya cara, New Relic juga membuat file log:

kita juga dapat memeriksa akun New Relic kita untuk memastikan aplikasi baru telah muncul untuk pemantauan:

newrelic_monitored_applicationnewrelic_monitored_applicationnewrelic_monitored_application

Namun ada beberapa hal tidak begitu bagus:

  • Aplikasi kami bernama 'My aplikasi'
  • Kami menerima semua konfigurasi nilai default, yang mungkin tidak cocok untuk aplikasi kami
  • Kita harus menjalankan server kita dalam mode produksi (yang hanya mungkin karena itu adalah sebuah aplikasi baru yang tidak bergantung pada infrastruktur eksternal)

Jadi mari kita lihat file newrelic.yml kita dengan sedikit lebih detail untuk melihat bagaimana kita dapat memantau kinerja aplikasi kita persis seperti yang kita inginkan.


Menyelam ke Konfigurasi Relik Baru

Pertama-tama, file konfigurasi Relic New sangat baik dikomentari dan saya mendorong Anda untuk membaca komentar untuk berbagai parameter konfigurasi untuk memahami apa yang mereka semua lakukan.

Kedua, konfigurasi New Relic adalah lingkungan sadar, dan konfigurasi untuk semua lingkungan didefinisikan dalam satu file newrelic.yml, ini sangat mirip dengan, bagaimana file Rails database.yml berfungsi. Kita mendefinisikan sekelompok nilai konfigurasi umum dan kemudian menimpa yang relevan dalam blok lingkungan tertentu misalnya:

Kita dapat langsung mulai melihat bagaimana kita dapat memperbaiki beberapa poin yang kita angkat di atas. Jika kita tidak ingin meluncurkan aplikasi kita dalam mode produksi sementara kita mengubah konfigurasi kita, yang harus kita lakukan adalah mengaktifkan pemantauan dalam mode pengembangan (kita harus ingat untuk mematikan ini ketika kita senang dengan konfigurasi kita karena kita tidak ingin data pembangunan mengacaukan akun New Relicnya).

Kita juga harus mengganti nama aplikasi untuk setiap lingkungan yang kita miliki, untuk memastikan bahwa mereka sedang dipantau dan memanggil aplikasi yang masuk akal:

Dengan hanya tweak konfigurasi tersebut, saat kita memulai server kita dalam mode pengembangan dan curl localhost: 3000:

newrelic_monitor_developmentnewrelic_monitor_developmentnewrelic_monitor_development

Kita sekarang memantau aplikasi kita dalam mode pengembangan dan nama aplikasi kita adalah apa yang kita harapkan. Jika aplikasi Anda mengatakan bahwa tidak menerima data apa pun, berikan waktu sebentar, dibutuhkan sedikit waktu agar data mulai datang.

Nilai konfigurasi berikutnya yang paling menarik (dan seringkali paling membingungkan) adalah Apdex T-value. Tidak seperti kebanyakan parameter konfigurasi lainnya, nilai ini tidak hidup di file newrelic.yml, tetapi malah ditemukan dalam pengaturan untuk aplikasi dalam New Relic:

newrelic_apdexnewrelic_apdexnewrelic_apdex

Jika Anda ingin men-tweak Apdex T-value Anda harus melakukannya di sini, tetapi apa parameter ini dan apa nilai yang tepat untuk dimasukkan ke dalamnya? Nah, Relic New menjelaskannya dengan cara berikut:

Nilai Apdex aplikasi Anda ditetapkan menjadi 0,5 detik. Itu berarti permintaan yang merespon dalam kurang dari 0,5 detik memuaskan (s), menanggapi antara 0,5 detik dan 2,0 detik menoleransi (t), dan menanggapi dalam lebih dari 2,0 detik yang membuat frustrasi (f).

Pada dasarnya, New Relic menggunakan nilai Apdex untuk mengukur kesehatan aplikasi Anda sejauh menyangkut kinerja, jadi jika banyak permintaan yang dipantau oleh Relik Baru membutuhkan waktu lebih lama daripada nilai Apdex Anda, Relik Baru akan mempertimbangkan aplikasi Anda untuk melakukan buruk dan jika Anda sudah mengatur peringatan, akan memberitahu Anda tentang faktanya. Pada dasarnya, Anda harus mencari tahu, seberapa cepat Anda ingin setiap permintaan server dipenuhi oleh aplikasi Anda, jadi jika Anda setuju dengan permintaan backend yang memakan waktu dua detik, Anda dapat mengatur nilai Apdex ke 2.0, tetapi jika Anda memerlukan tanggapan akan dikembalikan dalam 100ms kemudian Anda harus menetapkan nilai Apdex Anda ke 0,1.

Jika Anda memiliki aplikasi baru, Anda dapat mengatur nilai Apdex ke kinerja yang Anda inginkan dari aplikasi Anda. Jika aplikasi Anda adalah aplikasi yang sudah ada, Anda mungkin memiliki beberapa metrik mengenai seberapa cepat/seharusnya kinerjanya, dan Anda dapat dipandu oleh itu. Semua permintaan yang dipenuhi oleh server dalam kurang dari Apdex T-value akan dianggap oleh New Relic untuk menjadi baik. Semua permintaan yang dipenuhi dalam Apdex * 4 detik akan dianggap menoleransi (yaitu pengguna dapat mentolerirnya). Semua tanggapan yang membutuhkan waktu lebih lama daripada Apdex * 4 akan dianggap membuat frustrasi (pengguna yang frustrasi tidak cenderung bertahan). Jadi, tetapkan nilai-T Apdex Anda sedemikian rupa sehingga Anda benar-benar mendapatkan informasi yang berguna darinya, nilai aktual tergantung pada domain Anda dan apa yang ingin Anda capai (dalam hal kinerja), tidak ada jawaban yang benar atau salah.

Kita akan menetapkan nilai Apdex T kami menjadi 100ms (0,1), karena semua yang kita miliki adalah aplikasi 'Hello World', dan itu harus dapat mengembalikan respon dengan sangat cepat (bahkan dalam mode pengembangan).


Bahkan Lebih Banyak Relik Konfigurasi Baru

Itu agak lucu bahwa sebagian besar konfigurasi berasal dari file newrelic.yml, tetapi Apdex T-value ada dalam pengaturan aplikasi, jadi New Relic sekarang memungkinkan Anda untuk memindahkan semua nilai konfigurasi dari file YAML ke New Relic:

newrelic_move_configurationnewrelic_move_configurationnewrelic_move_configuration

Keuntungan dari ini adalah bahwa Anda tidak perlu memindahkan setiap kali Anda ingin men-tweak nilai konfigurasi Anda, jadi pasti sesuatu yang layak dipertimbangkan. Kita akan tetap menggunakan file YAML untuk saat ini.

Jadi apa sajakah parameter New Relik lainnya yang berguna yang harus kita ketahui?

Nah, ada satu set parameter yang berhubungan dengan file log agen New Relik :

Ini memiliki default yang masuk akal, tetapi jika kita ingin file log untuk pergi ke tempat tertentu atau jika kita ingin melihat lebih banyak atau lebih sedikit info dalam file, kita dapat dengan mudah mengontrol ini. Karena kita hanya menyiapkan New Relik, kita akan mengatur tingkat log untuk didebug, untuk memastikan kita tidak melewatkan informasi penting (ketika kita menyebarkan kita mungkin ingin mengaturnya untuk memperingatkan, atau bahkan kesalahan).

KIta sekarang mendapatkan banyak informasi di file log, yang (jika dibaca dengan hati-hati) dapat memberi kita banyak wawasan tentang cara kerja New Relic:

Sebagai contoh, kita dapat melihat bahwa:

  • Kita bisa mematikan pemantauan bahkan jika diaktifkan di file konfigurasi, dengan mengeset variabel lingkungan NEWRELIC_ENABLE=false
  • Kita bisa melihat bahwa New Relic menyisipkan sekelompok rak middleware
  • Kita menggunakan Webrick sebagai server kita, yang jelas dalam mode pengembangan, tetapi dalam produksi itu akan baik untuk mengkonfirmasi bahwa Relic Baru mengenali server yang kita gunakan
  • New Relik mengirim data ke collector.newrelic.com:443
  • Relic New mengirim data setiap 60 detik
  • Pemantauan real user dilakukan melalui JSONP

Informasi yang sangat berguna ketika Anda mencoba untuk mencari tahu bagaimana hal-hal berjalan bersama.

Sebagian besar parameter konfigurasi lainnya cukup jelas. Misalnya:

Satu-satunya hal lain yang mungkin diperhatikan adalah:

Pelacak transaksi menangkap data mendetail tentang permintaan yang terlalu lama. Ambang transaksi biasanya merupakan kelipatan (x4) dari nilai Apdex, tetapi seringkali berguna untuk memisahkan nilai-nilai ini dari satu sama lain. Anda mungkin senang dengan skor Apdex satu detik, tetapi Anda mungkin ingin menangkap data mendetail tentang permintaan yang membutuhkan 1,5 detik atau lebih lama (bukan empat detik atau lebih yang akan terjadi secara default). Sehingga Anda dapat mengatur parameter ini secara terpisah:


Mode Developer New Relik 

Salah satu nilai konfigurasi yang mungkin Anda perhatikan adalah:

Ini hanya harus diaktifkan dalam pengembangan (jika ada). Dalam mode pengembangan, agen Relik New akan menyimpan data kinerja tentang 100 permintaan terakhir di memori. Anda dapat melihat data ini kapan saja dengan menekan /endpoint baru dari aplikasi yang sedang berjalan:

newrelic_developer_modenewrelic_developer_modenewrelic_developer_mode

Saya hampir tidak pernah menggunakannya, tetapi ada di sana jika Anda membutuhkannya.


Memberitahu New Relic of Deployments 

Setiap kali Anda mengerjakan kinerja aplikasi Anda, selalu baik untuk mengetahui apakah penerapan tertentu memiliki pengaruh positif atau negatif pada kinerja. Untuk tujuan ini, Anda dapat memberi tahu New Relic setiap kali Anda melakukan penyebaran. Dengan cara ini jika kinerja menurun atau membaik, Anda akan dapat melihat penerapan mana yang merupakan pelakunya. Relic New menyediakan kait Capistrano untuk melakukan ini, tetapi saya lebih suka dengan cara baris perintah:

Kuncinya adalah untuk memasok nama aplikasi dengan benar karena dikonfigurasi dalam newrelic.yml file.

Kami akan mendapatkan garis yang bagus pada grafik Relik Baru yang relevan untuk menunjukkan kapan penyebaran terjadi.

newrelic_deploymentnewrelic_deploymentnewrelic_deployment

Kesimpulan

Anda sekarang tahu banyak tentang bagaimana New Relic bekerja dan bagaimana mulai menggunakannya untuk memantau aplikasi Rails. Tetapi mengonfigurasikan hal dengan benar hanya setengah dari pertempuran, metrik apa yang akan New Relic benar-benar tangkap untuk Anda? Dan bagaimana Anda bisa menggunakannya untuk meningkatkan kinerja aplikasi Anda? Kami akan melihat beberapa di artikel berikutnya. Untuk saat ini, cobalah untuk mengkonfigurasi New Relic untuk aplikasi Rails Anda (Anda akan mendapatkan T-shirt gratis) dan jika Anda memiliki pertanyaan jangan lupa untuk meninggalkan komentar.

Advertisement
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.