Noțiuni de bază cu New Relic în 30 de minute

Îmi amintesc că am lucrat la o aplicație Rails acum câțiva ani și că cineva a făcut ideea de a folosi acest nou serviciu care a apărut pe scenă. Acesta a fost numit New Relic și au promis să vă ofere o mai bună înțelegere a performanței aplicației dvs. Rails, decât ați putut să-l primiți înainte. Am încercat-o și a fost impresionantă, și mai important, a fost cu adevărat necesar un ecosistem de dezvoltare web Ruby.

Conținut sponsorizat

Acest conținut a fost comandat de New Relic și a fost scris și / sau editat de echipa Tuts +. Scopul nostru cu conținut sponsorizat este de a publica tutoriale relevante și obiective, studii de caz și interviuri inspirate care oferă cititorilor o valoare educațională autentică și ne permit să finanțăm crearea de conținut mai util.

Începeți rapid până acum și veți fi nevoiți să găsiți o aplicație web Ruby care nu are o legătură nouă cu New Relic. Noua companie Relic a continuat să furnizeze instrumente pentru a vă monitoriza aplicațiile Ruby, într-un număr de alte limbi, cum ar fi Java, Python și chiar .Net. Dar, desigur, numărul de funcții pe care le oferiți crește, la fel și complexitatea și cantitatea de documentație aflată acolo. E greu să dai seama de unde să începi mai ales dacă nu ești încă un expert.

Astăzi am crezut că ne putem întoarce la rădăcinile New Relic și să vedem cum putem începe cu serviciul de monitorizare a aplicației Rails.


O aplicație Rails de bază

Pentru a utiliza New Relic avem nevoie de ceva de monitorizat, deci să punem la punct o aplicație de bază "Hello World" Rails.

Aplicația pe care o creăm va trăi sub ~ / Proiecte / tmp / newrelic, și va fi chemat newrelic_rails1. Presupun că deja ai instalat Rails:

cd ~ / projects / tmp / newrelic șine noi newrelic_rails1 cd newrelic_rails1

Nu este mult de făcut pentru a crea aplicația noastră "Hello World". Avem nevoie de un nou controlor:

rails g controler salut

Acum, avem nevoie doar de un traseu, vom primi ruta rădăcină a cererii de a folosi controlorul nostru. De asemenea, avem nevoie de o viziune, cu cuvintele "Hello World". Având în vedere toate acestea, noastre config / routes.rb ar trebui să arate astfel:

NewrelicRails1 :: Application.routes.draw rădăcină 'hello # index'

Controlorul nostru (app / controler / hello_controller.rb), va fi după cum urmează:

clasa HelloController> ApplicationController def index sfârșit sfârșit

Și punctul nostru de vedere (app / views / Bună ziua / index.html.erb), va fi similară cu:

Salut Lume!

Putem să pornim acum serverul nostru de dezvoltare:

rails s

Când ne încurcăm localhost: 3000, primim:

 ...  

Salut Lume!

Totul funcționează!


Apelați la New Relic

Cu Ruby e foarte simplu. Noi adăugăm o bijuterie noastră Gemfile, alerga a instalare pachet, dați un fișier de configurare în dosarul config și avem tot ce avem nevoie. De fapt, New Relic este destul de bun să vă călăuzească prin asta. Tot ce trebuie să faceți este să vă conectați la contul dvs. și dacă nu ați desfășurat un agent New Relic înainte, este destul de evident ce să faceți:

În primul rând, instalăm bijuteria agentului New Relic adăugând-o la noi Gemfile, conform instrucțiunilor:

Al nostru Gemfile va arăta în felul următor:

sursă 'https://rubygems.org' gem 'rails', '4.0.0' gem 'sqlite3' gem 'sass-rails', ' gem 'coffee-rails', '~> 4.0.0' gem 'jquery-rails' gem 'turbolinks' gem 'jbuilder', '~> 1.2 group: doc do gem'doc' '

Ori de câte ori adăugăm ceva la Gemfile trebuie să executați:

instalare pachet

Avem de asemenea nevoie de a newrelic.yml, pe care îl puteți descărca de la New Relic:

Acesta va fi preconfigurat cu cheia dvs. de licență. Trebuie să punem fișierul înăuntru config / newrelic.yml.

În acest moment, dacă am fi rulat aplicația în modul de staționare sau de producție, vom primi deja date în contul nostru New Relic. Deci, permiteți-ne să facem acest lucru:

RAILS_ENV = șine de producție s

De data asta când noi curl localhost: 3000, primim:

   NewrelicRails1       

Salut Lume!

Există o mulțime de JavaScript care a fost introdus în paginile noastre, astfel încât New Relic poate monitoriza timpul browser-ului. Acesta este un mod în care putem spune că noua noastră integrare Relic funcționează. Dar nu este singura cale, New Relic creează, de asemenea, un fișier log:

% cat log / newrelic_agent.log Logfile creat în 2013-09-22 16:23:13 +1000 de logger.rb / 36483 [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Pornirea agentului New Relic în mediul de producție. [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Pentru a preveni pornirea agentului adăugați o NEWRELIC_ENABLE = variabilă de mediu false sau modificați secțiunea "producție" a noului dvs. link. [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Configurarea lecturii de la config / newrelic.yml [09/22/13 16:23:13 +1000 skorks-envato (12424)]] INFO: Activarea Solicitatorului de Solicitare. [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Mediu: producție [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Dispecer: webrick [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Cerere: Cererea mea [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Instalarea ActiveRecord 4 instrumentație [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Instalarea instrumentelor nete [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Instalarea amanare rack instrumentație [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Instalarea Rails 4 Controller instrumentație [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Instalarea Rails4 Instrument de vizualizare [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Instalarea Rails4 Instrument de eroare [09/22/13 16:23:13 +1000 skorks-envato ( 12424)] INFO: Instrumente terminate [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Efectuarea detecției dependenței amânate înainte de pornirea rack-ului [0 9/22/13 16:23:16 +1000 skorks-envato (12424)] INFO: Raportarea la: https://rpm.newrelic.com/accounts/303380/applications/2507356

De asemenea, putem verifica contul nostru New Relic pentru a ne asigura că a apărut o nouă aplicație pentru monitorizare:

Există totuși câteva lucruri care nu sunt atât de drăguțe:

  • Aplicația noastră este numită "Aplicația mea"
  • Am acceptat toate valorile implicite de configurare, care ar putea să nu se potrivească aplicației noastre
  • A trebuit să lansăm serverul în modul de producție (ceea ce este posibil numai pentru că este o aplicație complet nouă, care nu se bazează pe nicio infrastructură externă)

Deci, să ne uităm la noi newrelic.yml fișier într-un pic mai detaliat pentru a vedea cum putem monitoriza performanța aplicației exact așa cum o dorim.


Scufundați în Noua Configurație Relic

Mai întâi de toate, fișierul de configurare New Relic este foarte bine comentat și vă încurajez să citiți comentariile pentru diferiți parametri de configurare pentru a înțelege ce fac toți.

În al doilea rând, noua configurație Relic este conștientă de mediul înconjurător, iar configurația pentru toate mediile este definită în una newrelic.yml fișier, acest lucru este foarte similar cu, cum Rails database.yml lucrări de fișier. Definim o mulțime de valori comune de configurare și apoi suprascrieți cele relevante în blocurile de mediu specifice, de exemplu:

comun: & default_settings license_key: ''app_name: Aplicația mea monitor_mode: true ... development: <<: *default_settings monitor_mode: false test: <<: *default_settings monitor_mode: false production: <<: *default_settings monitor_mode: true staging: <<: *default_settings monitor_mode: true

Putem începe instantaneu să vedem cum putem remedia unele dintre punctele pe care le-am ridicat mai sus. Dacă nu vrem să lansăm aplicația în modul de producție în timp ce modificăm configurația, tot ce trebuie să facem este să permitem monitorizarea în modul de dezvoltare (va trebui să ne amintim să oprim acest lucru atunci când suntem mulțumiți de configurația noastră, deoarece nu vrem să ne aglomerăm datele de dezvoltare în contul nostru New Relic).

dezvoltare: <<: *default_settings monitor_mode: true

De asemenea, ar trebui să ignorăm numele aplicației noastre pentru fiecare mediu pe care îl avem, pentru a ne asigura că sunt monitorizați separat și că numele aplicației are sens:

 comun: & default_settings license_key: ''app_name: newrelic_rails1 monitor_mode: true ... dezvoltare: <<: *default_settings monitor_mode: true app_name: newrelic_rails1 (Development) test: <<: *default_settings monitor_mode: false app_name: newrelic_rails1 (Test) production: <<: *default_settings monitor_mode: true app_name: newrelic_rails1 (Production) staging: <<: *default_settings monitor_mode: true app_name: newrelic_rails1 (Staging)

Cu doar acele configurații de configurare, atunci când începem serverul nostru în modul de dezvoltare și curl localhost: 3000:

Acum monitorizăm aplicația în modul de dezvoltare și numele aplicației este ceea ce așteptăm. Dacă cererea dvs. spune că nu primește date, dați-i un minut, durează puțin timp ca datele să înceapă să vină.

Următoarea valoare cea mai interesantă (și adesea cea mai confuză) este valoarea T Apdex. Spre deosebire de majoritatea celorlalți parametri de configurare, această valoare nu este prezentă în newrelic.yml fișier, dar este localizat în setările aplicației în cadrul programului New Relic:

Dacă doriți să vă ajustați valoarea T Apdex, trebuie să o faceți aici, dar care este acest parametru și care este valoarea potrivită pentru ao pune? Ei bine, New Relic explică în felul următor:

Valoarea T a aplicației Apdex este setată la 0,5 secunde. Asta inseamna ca cererile care raspund in mai putin de 0,5 secunde sunt satisfacatoare, raspunsul intre 0,5 secunde si 2,0 secunde tolereaza (t), iar raspunsul in mai mult de 2,0 secunde este frustrant (f).

În esență, New Relic folosește valoarea Apdex pentru a măsura starea de sănătate a aplicației în ceea ce privește performanța, astfel încât, dacă multe dintre solicitările monitorizate de New Relic durează mai mult decât valoarea dvs. Apdex, New Relic va considera că cererea dvs. este performantă și dacă ați setat alerte, vă va informa despre acest fapt. Practic, trebuie să vă dați seama cât de repede doriți ca fiecare cerere de server să fie îndeplinită de aplicația dvs., deci dacă sunteți în regulă cu o solicitare de backend care durează două secunde, puteți seta valoarea Apdex la 2.0, dar dacă aveți nevoie de răspunsul va fi returnat în termen de 100ms, atunci ar trebui să setați valoarea Apdex la 0.1.

Dacă aveți o nouă aplicație, puteți seta valoarea Apdex la performanța dorită din aplicația dvs. Dacă aplicația dvs. este una existentă, este posibil să aveți unele valori referitoare la cât de rapid este / ar trebui să fie efectuată și puteți fi ghidată de aceasta. Toate cererile care sunt îndeplinite de server în mai puțin decât valoarea T Apdex vor fi considerate de New Relic ca fiind bune. Toate solicitările îndeplinite în cadrul Apdex * 4 secunde vor fi considerate tolerante (adică utilizatorii îl pot tolera). Toate răspunsurile care durează mai mult timp decât Apdex * 4 vor fi considerate frustrant (utilizatorii frustrați nu tind să rămână în jur). Deci, setați-vă valoarea T Apdex astfel încât să obțineți de fapt informații utile, valoarea reală depinde de domeniul dvs. și de ceea ce doriți să obțineți (în termeni de performanță), nu există un răspuns corect sau greșit.

Vom seta valoarea Apdex T la 100ms (0.1), deoarece tot ceea ce avem este o aplicație "Hello World" și ar trebui să fie capabilă să returneze un răspuns foarte repede (chiar și în modul de dezvoltare).


Chiar și mai multă nouă configurație Relic

A fost puțin amuzant că majoritatea configurației provine din newrelic.yml fișier, dar valoarea T Apdex este în setările aplicației, deci New Relic vă permite acum să mutați toate valorile de configurare din fișierul YAML în New Relic:

Avantajul este că nu trebuie să redenumiți de fiecare dată când doriți să vă ajustați valorile de configurare, deci este cu siguranță ceva de luat în considerare. Vom rămâne acum cu fișierul YAML.

Deci, ce ar trebui să știm despre câțiva alți parametri folositori noi pentru Relic?

Există un set de parametri care se ocupă de fișierul log al agentului New Relic:

log_level: info log_file_path: 'log' log_file_name: 'newrelic_agent.log'

Acestea au defaults sensibile, dar dacă vrem ca fișierul jurnal să meargă într-un anumit loc sau dacă vrem să vedem mai mult sau mai puține informații în fișier, putem controla cu ușurință acest lucru. De vreme ce noi creăm doar New Relic vom seta nivelul de jurnal depanare, pentru a ne asigura că nu pierdem nici o informație importantă (atunci când ne-am desfășura am putea dori să-l setați la a avertiza, sau chiar eroare).

Acum obținem o mulțime de informații în fișierul de jurnal, care (dacă este citit cu atenție) ne poate oferi o mulțime de informații despre modul în care funcționează New Relic:

% cat log / newrelic_agent.log

[09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Pornirea noului agent Relic în mediul "dezvoltare". [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Pentru a preveni pornirea agentului, adăugați o variabilă NEWRELIC_ENABLE = false sau modificați secțiunea "dezvoltare" a noului dvs. relic. [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Configurarea lecturii de la config / newrelic.yml [09/22/13 17:23:39 +1000 skorks-envato (12925)]] DEBUG: Nu în mediul Rake, astfel sărind blacklisted_rake_tasks verificați: Rake constant neinitializat [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Actualizarea config (add) din NewRelic :: Agent :: Configuration: : YamlSource. Rezultate: [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: ... [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Nu în mediul Rake astfel sărind blacklisted_rake_tasks verificați: constant neinitializat Rake [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Actualizarea config (add) din NewRelic :: Agent :: Configuration :: ManualSource. Rezultate: [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: ... [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Nu în mediul Rake, sărind peste blacklisted_rake_tasks verificați: Rake neinitializat constant [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Instalat New Relic Browser Monitorizare middleware [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Instalat New Relic Agent Hooks middleware [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Agentul este configurat să utilizeze SSL [ 13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Folosind JSON marshaller [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Pragul de urmărire a tranzacțiilor este de 2,0 secunde. [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Ignorarea erorilor de tipul "ActionController :: RoutingError" [09/22/13 17:23:39 +1000 skorks-envato (12925)] )] DEBUG: Ignorarea erorilor de tipul "Sinatra :: NotFound" [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Erori vor fi trimise serviciului New Relic. [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Ignorarea erorilor de tipul "ActionController :: RoutingError" [09/22/13 17:23:39 +1000 skorks-envato (12925)] )] DEBUG: Ignorarea erorilor de tipul "Sinatra :: NotFound" [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: RequestSampler max_samples set la 1200 [09/22/13 17:23 : 39 +1000 skorks-envato (12925)] DEBUG: Resetarea RequestSampler [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Activarea Solicitatorului de Solicitare. [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Mediu: dezvoltare [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Dispecer: webrick [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFORMAȚII: Aplicație: newrelic_rails1 (dezvoltare) [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Raportul de mediu nu a reușit să regăsească valoarea pentru "Listă de pluginuri": metoda "undefined" pentru " [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Mediul de raport nu a reușit să recupereze valoarea pentru "versiunea JRuby": constanta neinitializată NewRelic :: EnvironmentReport :: JRUBY_VERSION [09/22/13 17: 23:39 +1000 skorks-envato (12925)] DEBUG: EnvironmentReport nu a reușit să recupereze valoarea pentru "versiunea Java VM": constanta neinitializată NewRelic :: EnvironmentReport :: ENV_JAVA [09/22/13 17:23:39 +1000 skorks- envato (12925)] DEBUG: MediuReport ignorarea valorii pentru "Rails threadsafe" care a revenit false: nil [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Crearea unui nou fir Relic: Worker Loop [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG : New Agent Relic Ruby 3.6.7.152 Initializat: pid = 12925 [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Procesul de conectare la New Relic: bin / rails [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Nu în mediul Rake așa că sărind blacklisted_rake_tasks check: constantă neinitializată Rake [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Creat net / http handle pentru colector.newrelic.com:443 [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Trimiterea cererii către collector.newrelic.com:443/agent_listener/12/ 1f69cbd2a641bde79bdb5eb4c86a0ab32360e1f8 / get_redirect_host? Marshal_format = json [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Instalarea instrumentelor ActiveRecord 4 [09/22/13 17:23:39 +1000 skorks-envato ( 12925)] INFO: Instalarea instrumentelor nete [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO : Instalarea instrumentelor de rack amânate [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Instalarea rails 4 Controller instrumentation [09/22/13 17:23:39 +1000 skorks-envato (12925 )] INFO: Instalarea Rails4 instrumentație de vedere [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Instalarea Rails4 Instrument de eroare [09/22/13 17:23:39 +1000 skorks- envato (12925)] INFORMAȚII: Instrumente finite [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Înregistrat NewRelic :: Agent :: Samplere :: CpuSampler pentru eșantionarea timpului de recoltare. [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Înregistrat NewRelic :: Agent :: Samplers :: MemorySampler pentru prelevarea timpului de recoltare. [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: NewRelic :: Agent :: Samplers :: ObjectSampler nu este acceptat pe această platformă. [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: NewRelic :: Agent :: Samplere :: DelayedJobSampler nu este acceptat pe această platformă. [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Efectuarea detecției dependenței amânate înainte de pornirea rack-ului [09/22/13 17:23:40 +1000 skorks-envato (12925)] DEBUG: Conținutul necomprimat a fost returnat [09/22/13 17:23:40 +1000 skorks-envato (12925)] DEBUG: Creat net / http handle to collector-1.newrelic.com:443 [09/22/13 17: 23:40 +1000 skorks-envato (12925)] DEBUG: Trimiterea cererii către collector-1.newrelic.com:443/agent_listener/12/1f69cbd2a641bde79bdb5eb4c86a0ab32360e1f8/connect?marshal_format=json [09/22/13 17:23:42 + 1000 skorks-envato (12925)] DEBUG: Conținut necomprimat returnat [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Server provided config: ... [09/22/13 17: 23:42 +1000 skorks-envato (12925)] DEBUG: Nu în mediul Rake așa să sărind blacklisted_rake_tasks check: constantă neinitializată Rake [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Actualizarea config (adăugați) de la NewRelic :: Agent :: Configuration :: ServerSource. Rezultate: [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: ... [09/22/13 17:23:42 +1000 skorks-envato (12925)] up Cross-Application Urmărirea evenimentelor după terminarea configurării [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Conectat la noul serviciu Relic la collector-1.newrelic.com [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Agent Run = 575257565. [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: 09/22/13 17:23:42 +1000 skorks-envato (12925)] INFO: Raportarea la: https://rpm.newrelic.com/accounts/303380/applications/2507376 [09/22/13 17:23 : 42 +1000 skorks-envato (12925)] DEBUG: Antetul de sincronizare a browserului: ""[09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Foaterul static al calendarului browserului:" if (! NREUMQ.f) NREUMQ.f = function () \ nNREUMQ.push [\ "sarcină \", nouă dată () getTime ()]); \ nvar e = document.createElement (\ "script \"); \ ne.type = \ "text / javascript \"; \ ne.src = ((\ "http: \" === document.location.protocol)? \ "http: \": \ "https: \") + \ "// \" + \ n \ "js-agent.newrelic .com / nr-100.js \ "; \ ndocument.body.appendChild (e) \ nDacă (NREUMQ.a) NREUMQ.a (); \ n; \ nNREUMQ.a = window.onload; window.onload = NREUMQ.f; \ n; \ n "[09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Real User Monitoring utilizează protocolul JSONP [09/22/13 17:23 : 42 +1000 skorks-envato (12925)] DEBUG: Raportarea datelor de performanță la fiecare 60 de secunde [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: 13 17:23:50 +1000 skorks-envato (12925)] DEBUG: Încercarea de a insera antetul RUM la începutul capului.

De exemplu, putem vedea că:

  • Putem dezactiva monitorizarea, chiar dacă este activată în fișierul de configurare, prin setarea unei variabile de mediu NEWRELIC_ENABLE = false
  • Putem vedea că New Relic introduce o grămadă de middleware Rack
  • Folosim Webrick ca server, ceea ce este în mod evident în modul de dezvoltare, dar în producție ar fi bine să confirmați că New Relic recunoaște serverul pe care îl folosim
  • Noua Relic trimite date către collector.newrelic.com:443
  • Noul Relic trimite date la fiecare 60 de secunde
  • Monitorizarea reală a utilizatorilor se face prin JSONP

Informații foarte utile atunci când încercați să vă dați seama cum se întâmplă lucrurile împreună.

Majoritatea parametrilor de configurare sunt destul de auto-explicativi, de exemplu:

browser_monitoring: auto_instrument: true capture_params: false

Singurul altul care ar putea fi conștient este:

transaction_tracer: transaction_threshold: apdex_f

Trackerul de tranzacții captează date detaliate despre solicitările care durează prea mult. Pragul de tranzacție este, în mod normal, un multiplu (x4) al valorii Apdex, dar este adesea utilă divorțarea acestor valori între ele. S-ar putea să fiți mulțumiți de un scor Apdex de o secundă, însă este posibil să doriți să capturați date detaliate despre solicitări care durează 1,5 secunde sau mai mult (în loc de cele patru secunde sau mai lungi care s-ar întâmpla în mod implicit). Deci, puteți seta acest parametru separat:

transaction_tracer: transaction_threshold: 1.5

Modul nou pentru dezvoltatori Relic

Una dintre valorile de configurare pe care le-ați observat a fost:

developer_mode: true

Acest lucru ar trebui să fie activat numai în curs de dezvoltare (dacă este deloc). În modul de dezvoltare, agentul New Relic va stoca date de performanță despre ultimele 100 de solicitări din memorie. Puteți să vă uitați la aceste date în orice moment apăsând / newrelic punct final al aplicației dvs. care rulează:

Aproape că nu o folosesc, dar e acolo dacă ai nevoie de ea.


Notificarea unei noi relicve de implementări

Ori de câte ori lucrați la performanța aplicației dvs., este întotdeauna bine să știți dacă o anumită implementare a avut un efect pozitiv sau negativ asupra performanței. În acest scop, puteți notifica New Relic de fiecare dată când efectuați o implementare. În acest fel, dacă performanța se degradează sau se îmbunătățește, veți putea vedea care este implementatorul. Noul Relic oferă cârligele Capistrano pentru a face acest lucru, dar prefer modul de comandă:

% newrelic implementări -a 'newrelic_rails1 (Development)' -e 'development' -u 'skorks' -r 'abc123' Deplasare înregistrată la 'newrelic_rails1 (Development)' (2013-09-22 18:19:13 +1000)

Lucrul cheie este să furnizați corect numele aplicației așa cum este configurat în newrelic.yml fişier.

Vom primi linii frumoase pe graficele New Relic relevante pentru a indica când a avut loc o desfășurare.


Concluzie

Acum știți o mulțime despre modul în care funcționează New Relic și cum să începeți să o utilizați pentru a monitoriza o aplicație Rails. Dar configurarea corectă a lucrurilor este doar o jumătate din bătălie, ce fel de metric va captura New Relic pentru tine? Și cum le puteți utiliza pentru a îmbunătăți performanța aplicației dvs.? Vom analiza unele dintre acestea într-un articol ulterior. Deocamdată, alegeți configurarea noului Relic pentru aplicația Rails (veți obține un tricou gratuit) și dacă aveți întrebări, nu uitați să lăsați un comentariu.

Cod