Komme i gang med New Relic i 30 minutter

Jeg husker å jobbe på en Rails-app for noen år siden, og noen drev ideen om å bruke denne nye tjenesten som hadde dukket opp på scenen. Det ble kalt New Relic, og de lovet å gi deg mer innsikt i ytelsen til din Rails-app, enn du noen gang kunne få før. Vi ga det et forsøk, og det var imponerende, enda viktigere var det noe Ruby webutvikling økosystem virkelig trengte.

Sponset innhold

Dette innholdet ble bestilt av New Relic og ble skrevet og / eller redigert av Tuts + -laget. Vårt mål med sponset innhold er å publisere relevante og objektive opplæringsprogrammer, casestudier og inspirerende intervjuer som gir ekte pedagogisk verdi til våre lesere og gjør det mulig for oss å finansiere etableringen av mer nyttig innhold.

Raskt frem til nå, og du vil være hardt presset for å finne en Ruby-webapplikasjon som ikke har New Relic innhentet. New Relic som et selskap har fortsatt å tilby verktøy for å overvåke dine Ruby-apper, men de har også forgrenet seg ut i en rekke andre språk som Java, Python og til og med. Net. Men selvfølgelig som antall funksjoner du gir vokser, gjør det kompleksiteten og mengden dokumentasjon der ute. Det blir vanskelig å finne ut hvor du skal begynne, spesielt hvis du ikke er en ekspert.

I dag tenkte jeg at vi kunne gå tilbake til røttene til New Relic og se på hvordan vi kan komme i gang med tjenesten for å overvåke en Rails applikasjon.


En Grunnleggende Rails App

For å kunne bruke New Relic trenger vi noe å overvåke, så la oss sette opp en grunnleggende 'Hello World' Rails-app.

Appen vi lager vil leve under ~ / Prosjekter / tmp / newrelic, og vil bli kalt newrelic_rails1. Jeg antar at du allerede har Rails installert:

cd ~ / prosjekter / tmp / newrelic skinner nye newrelic_rails1 cd newrelic_rails1

Det er ikke mye for oss å gjøre for å lage vår "Hello World" -app. Vi trenger en ny kontroller:

skinner g kontroller hallo

Nå trenger vi bare en rute, vi vil få ruteveien til applikasjonen for å bruke vår kontroller. Vi trenger også en visning, med ordene "Hello World". Gitt alt dette, vår config / routes.rb skal se slik ut:

NewrelicRails1 :: Application.routes.draw gjør root 'hei # indeks' slutt

Vår kontroller (app / styreenhet / hello_controller.rb), vil være som følger:

klasse HelloController> ApplicationController def indeks sluttend

Og vårt syn (app / visninger / hei / index.html.erb), vil lignes på:

Hei Verden!

Vi kan nå starte vår utviklingsserver:

skinner s

Når vi krøller localhost: 3000, vi får:

 ...  

Hei Verden!

Alt jobber!


Hooking in New Relic

Med Ruby er det veldig enkelt. Vi legger til en perle til vår Gemfile, løp a bunt installasjon, slipp en konfigurasjonsfil i config-mappen, og vi har alt vi trenger. Faktisk er New Relic ganske bra å lede deg gjennom dette. Alt du trenger å gjøre er å logge inn på kontoen din, og hvis du ikke har distribuert et New Relic-agent før, er det ganske tydelig hva du skal gjøre:

For det første installerer vi New Gem agent-perlen ved å legge den til vår Gemfile, i henhold til instruksjonene:

Våre Gemfile vil nå se slik ut:

kilde 'https://rubygems.org' gem 'rails', '4.0.0' perle 'sqlite3' perle 'sass-rails', '~> 4.0.0' perle 'uglifier', '> = 1.3.0' perle 'kaffetrakter', '~> 4.0.0' perle 'jquery-rails' perle 'turbolinks' perle 'jbuilder', '~> 1,2' gruppe: doc do gem 'sdoc', krever: false end gem 'newrelic_rpm '

Når vi legger til noe i Gemfile vi må løpe:

bunt installasjon

Vi trenger også en newrelic.yml, som du kan laste ned fra New Relic:

Det kommer til å bli forhåndskonfigurert med lisensnøkkelen. Vi må sette denne filen under config / newrelic.yml.

På dette tidspunktet hvis vi kjørte applikasjonen vår i staging eller produksjonsmodus, ville vi allerede få data i vår New Relic-konto. Så la oss gjøre det:

RAILS_ENV = produksjonsskinner s

Denne gangen da vi curl localhost: 3000, vi får:

   NewrelicRails1       

Hei Verden!

Det er en gjeng med JavaScript som ble satt inn i våre sider, slik at New Relic kan overvåke nettlesertiden. Dette er en måte vi kan fortelle at vår New Relic-integrasjon jobber. Men det er ikke den eneste måten, New Relic oppretter også en loggfil:

% cat log / newrelic_agent.log Loggfilen ble opprettet på 2013-09-22 16:23:13 +1000 av logger.rb / 36483 [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Starte New Relic agent i "produksjon" miljø. [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: For å forhindre at agent oppstart legger du til en NEWRELIC_ENABLE = feil miljøvariabel eller endrer "produksjon" delen av newrelic.yml. [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Les konfigurasjon fra config / newrelic.yml [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Aktiverer forespørselssampler. [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Miljø: produksjon [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Dispatcher: webrick [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Søknad: Mitt søknad [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Installere ActiveRecord 4 instrumentering [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Installere Netto instrumentering [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Installere utsatt Rack instrumentering [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Installere Rails 4 Controller Instrumentation [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Installere Rails 4 Se instrumentering [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Installere Rails4 Feilinstrumentering [09/22/13 16:23:13 +1000 skorks-envato ( 12424)] INFO: Ferdig instrumentering [09/22/13 16:23:13 +1000 skorks-envato (12424)] INFO: Gjøre utsatt avhengighetsdeteksjon før Rack oppstart [0 9/22/13 16:23:16 +1000 skorks-envato (12424)] INFO: Rapportering til: https://rpm.newrelic.com/accounts/303380/applications/2507356

Vi kan også sjekke vår New Relic-konto for å sikre at et nytt program har dukket opp for overvåking:

Det er imidlertid noen få ting som ikke er så hyggelige:

  • Vår søknad heter 'My Application'
  • Vi aksepterte alle standard konfigurasjonsverdiene, som kanskje ikke passer til appen vår
  • Vi måtte starte vår server i produksjonsmodus (som bare er mulig fordi det er en helt ny app som ikke stole på ekstern infrastruktur)

Så la oss se på vår newrelic.yml filen litt mer detaljert for å se hvordan vi kan overvåke vår appytelse akkurat slik vi ønsker det.


Dykker inn til New Relic Configuration

Først av alt er New Relic-konfigurasjonsfilen ekstremt godt kommentert, og jeg oppfordrer deg til å lese kommentarene for de ulike konfigurasjonsparametrene for å forstå hva de alle gjør.

For det andre er New Relic-konfigurasjonen miljøbevisst, og konfigurasjonen for alle miljøer er definert i den ene newrelic.yml fil, dette ligner veldig på hvordan Rails database.yml filarbeid. Vi definerer en haug med vanlige konfigurasjonsverdier og overstyrer deretter de relevante i de spesifikke miljøblokkene, for eksempel:

vanlig: & default_settings license_key: ''app_name: Mitt program monitor_mode: true ... utvikling: <<: *default_settings monitor_mode: false test: <<: *default_settings monitor_mode: false production: <<: *default_settings monitor_mode: true staging: <<: *default_settings monitor_mode: true

Vi kan umiddelbart begynne å se hvordan vi kan fikse noen av poengene vi hevet ovenfor. Hvis vi ikke ønsker å lansere vår app i produksjonsmodus mens vi justerer konfigurasjonen, er det bare å aktivere overvåkning i utviklingsmodus (vi må huske å slå av dette når vi er fornøyd med vår konfigurasjon som vi ikke vil ha utviklingsdata cluttering opp vår New Relic-konto).

utvikling: <<: *default_settings monitor_mode: true

Vi bør også tilsidesette applikasjonsnavnet vårt for alle miljøer vi har, for å sikre at de overvåkes separat og programnavnet er fornuftig:

 vanlig: & default_settings license_key: ''app_name: newrelic_rails1 monitor_mode: true ... utvikling: <<: *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)

Med bare de konfigurasjonsjusteringer, når vi starter serveren vår i utviklingsmodus og curl localhost: 3000:

Vi overvåker nå vår søknad i utviklingsmodus, og vårt appnavn er det vi forventer. Hvis søknaden din sier at den ikke mottar data, gir det et minutt, det tar litt tid før dataene begynner å komme gjennom.

Den neste mest interessante (og ofte den mest forvirrende) konfigurasjonsverdien er Apdex T-verdien. I motsetning til de fleste andre konfigurasjonsparametre, lever denne verdien ikke i newrelic.yml fil, men er i stedet funnet i innstillingene for programmet innen New Relic:

Hvis du vil justere Apdex T-verdien din, må du gjøre det her, men hva er denne parameteren og hva er den riktige verdien å sette inn? Vel, New Relic forklarer det på følgende måte:

Programmets Apdex T-verdi er satt til 0,5 sekunder. Det betyr at forespørsler som svarer på mindre enn 0,5 sekunder, tilfredsstiller (e), svarer mellom 0,5 sekunder og 2,0 sekunder, tolererer (t), og svar på mer enn 2,0 sekunder er frustrerende (f).

I hovedsak bruker New Relic Apdex-verdien til å måle helsen til søknaden din så langt som ytelsen er opptatt, så hvis mange av forespørslene som overvåkes av New Relic, tar lengre tid enn Apdex-verdien, vil New Relic vurdere at søknaden din skal utføre dårlig, og hvis du har satt opp varsler, vil du varsle om det. I utgangspunktet må du finne ut hvor raskt du vil at hver serverforespørsel skal oppfylles av søknaden din, så hvis du har det bra med en backend-forespørsel som tar to sekunder, kan du angi Apdex-verdien til 2,0, men hvis du trenger en svaret skal returneres innen 100 ms, da bør du sette Apdex-verdien til 0,1.

Hvis du har et nytt program, kan du angi Apdex-verdien til ytelsen du ønsker fra søknaden din. Hvis appen din er en eksisterende, kan det hende du har noen beregninger angående hvor raskt det skal / skal utføres, og du kan bli styrt av det. Alle forespørsler som oppfylles av serveren i mindre enn Apdex T-verdien, vil bli vurdert av New Relic for å være bra. Alle forespørsler oppfylt innen Apdex * 4 sekunder vil bli vurdert å tolerere (dvs. brukere kan tolerere det). Alle svar som tar lengre tid enn Apdex * 4 betraktes som frustrerende (frustrerte brukere har ikke en tendens til å holde seg fast). Så sett Apdex T-verdien på en slik måte at du faktisk får nyttig informasjon ut av den, den virkelige verdien avhenger av ditt domene og hva du vil oppnå (når det gjelder ytelse), det er ikke noe riktig eller feil svar.

Vi vil sette vår Apdex T-verdi til 100ms (0,1), siden alt vi har er en "Hello World" -app, og det skal kunne returnere et svar veldig raskt (selv i utviklingsmodus).


Enda mer relikskonfigurasjon

Det var litt morsomt at det meste av konfigurasjonen kommer fra newrelic.yml fil, men Apdex T-verdien er i programinnstillingene, slik at New Relic lar deg nå flytte alle konfigurasjonsverdiene fra YAML-filen til New Relic:

Fordelen med dette er at du ikke trenger å omfordele hver gang du vil tilpasse konfigurasjonsverdiene, så det er definitivt noe verdt å vurdere. Vi vil holde oss til YAML-filen for nå.

Så hva er noen av de andre nyttige New Relic-parametrene vi bør vite om?

Vel, det er et sett med parametere som håndterer loggfilen for New Relic-agent:

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

Disse har fornuftige standarder, men hvis vi vil at loggfilen skal gå til et bestemt sted, eller hvis vi vil se mer eller mindre info i filen, kan vi enkelt kontrollere dette. Siden vi bare oppretter New Relic, vil vi sette loggnivået til debug, For å være sikker på at vi ikke går glipp av viktig informasjon (når vi distribuerer, vil vi kanskje sette den på varsle, eller feil).

Vi får nå et vell av informasjon i loggfilen, som (hvis de leses nøye) kan gi oss mye innsikt i hvordan New Relic fungerer:

% cat log / newrelic_agent.log

[09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Starte New Relic agent i "utvikling" miljø. [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: For å forhindre at agent oppstart legger du til en NEWRELIC_ENABLE = feil miljøvariabel eller endrer delen "utvikling" av newrelic.yml. [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Les konfigurasjon fra config / newrelic.yml [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Ikke i Rake-miljøet, slik at du hopper over blacklisted_rake_tasks check: uninitialized constant Rake [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Oppdaterer config (add) fra NewRelic :: Agent :: Configuration: : YamlSource. Resultater: [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: ... [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Ikke i Rake-miljøet så hopper blacklisted_rake_tasks sjekk: uninitialized constant Rake [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Oppdaterer config (add) fra NewRelic :: Agent :: Configuration :: ManualSource. Resultater: [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: ... [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Ikke i Rake miljøet så hopper blacklisted_rake_tasks sjekk: uninitialized constant Rake [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Installert New Relic Browser Monitoring middleware [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Agent er konfigurert til å bruke SSL [09/22 / 13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Bruke JSON marshaller [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Transaksjonssporingsterskelen er 2,0 sekunder. [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Ignorer feil av typen 'ActionController :: RoutingError' [09/22/13 17:23:39 +1000 skorks-envato (12925 )] DEBUG: Ignorer feil av typen 'Sinatra :: NotFound' [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Feil vil bli sendt til New Relic-tjenesten. [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Ignorer feil av typen 'ActionController :: RoutingError' [09/22/13 17:23:39 +1000 skorks-envato (12925 )] DEBUG: Ignorer feil av typen 'Sinatra :: NotFound' [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: RequestSampler max_samples satt til 1200 [09/22/13 17:23 : 39 +1000 skorks-envato (12925)] DEBUG: Tilbakestilling RequestSampler [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Aktiverer Request Sampler. [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Miljø: utvikling [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Dispatcher: webrick [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Søknad: newrelic_rails1 (Utvikling) [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: EnvironmentReport klarte ikke å hente verdien for "Plugin List": Udefinert metode 'plugins' for # [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: EnvironmentReport klarte ikke å hente verdien for "JRuby-versjonen": uninitialized constant NewRelic :: EnvironmentReport :: JRUBY_VERSION [09/22/13 17: 23:39 +1000 skorks-envato (12925)] DEBUG: EnvironmentReport klarte ikke å hente verdien for "Java VM versjon": uninitialized constant NewRelic :: EnvironmentReport :: ENV_JAVA [09/22/13 17:23:39 +1000 skorks- envato (12925)] DEBUG: EnvironmentReport ignorerer verdien for "Rails threadsafe" som kom tilbake falsey: nil [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Opprette Ruby Agent-arbeidstråd. [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Opprette ny relikstråd: Worker Loop [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG : New Relic Ruby Agent 3.6.7.152 Initialized: pid = 12925 [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Tilkobling av prosess til nytt relikv: kasse / skinner [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Ikke i Rake-miljøet, så hopper blacklisted_rake_tasks check: uninitialized constant Rake [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Opprettet nett / http-håndtak til collector.newrelic.com:443 [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Send forespørsel til 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: Installere ActiveRecord 4 instrumentering [09/22/13 17:23:39 +1000 skorks-envato ( 12925)] INFO: Installere Netto instrumentering [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO : Installere utsatt Rack instrumentering [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Installere Rails 4 Controller instrumentation [09/22/13 17:23:39 +1000 skorks-envato (12925 )] INFO: Installere Rails 4 Se instrumentering [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Installere Rails4 Feilinstrumentering [09/22/13 17:23:39 +1000 skorks- envato (12925)] INFO: Ferdig instrumentering [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Registrert NewRelic :: Agent :: Samplers :: CpuSampler for innsamling av høsttid. [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: Registrert NewRelic :: Agent :: Samplers :: MemorySampler for innsamling av høsttid. [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: NewRelic :: Agent :: Samplers :: ObjectSampler støttes ikke på denne plattformen. [09/22/13 17:23:39 +1000 skorks-envato (12925)] DEBUG: NewRelic :: Agent :: Samplers :: DelayedJobSampler støttes ikke på denne plattformen. [09/22/13 17:23:39 +1000 skorks-envato (12925)] INFO: Gjør utsatt avhengighetsdeteksjon før Rack oppstart [09/22/13 17:23:40 +1000 skorks-envato (12925)] DEBUG: Ukomprimert innhold returnert [09/22/13 17:23:40 +1000 skorks-envato (12925)] DEBUG: Opprettet nettverks / http-håndtak til collector-1.newrelic.com:443 [09/22/13 17: 23:40 +1000 skorks-envato (12925)] DEBUG: Send forespørsel til collector-1.newrelic.com:443/agent_listener/12/1f69cbd2a641bde79bdb5eb4c86a0ab32360e1f8/connect?marshal_format=json [09/22/13 17:23:42 + 1000 skorks-envato (12925)] DEBUG: Komprimert innhold returnert [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Server gitt config: ... [09/22/13 17: 23:42 +1000 skorks-envato (12925)] DEBUG: Ikke i Rake-miljøet så hopper blacklisted_rake_tasks sjekk: uninitialized constant Rake [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Oppdaterer config (legg til) fra NewRelic :: Agent :: Configuration :: ServerSource. Resultater: [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: ... [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Ledninger Up Cross Application Tracing til hendelser etter ferdig konfigurering [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Koblet til New Relic Service på 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: Forbindelsesdata = ... [ 09/22/13 17:23:42 +1000 skorks-envato (12925)] INFO: Rapportering til: https://rpm.newrelic.com/accounts/303380/applications/2507376 [09/22/13 17:23 : 42 +1000 skorks-envato (12925)] DEBUG: Browser timing header: ""[09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Browser timing static footer:" hvis (! NREUMQ.f) NREUMQ.f = funksjon () \ nNREUMQ.push [\ "last \", ny dato (). 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); \ nif (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 bruker JSONP protokoll [09/22/13 17:23 : 42 +1000 skorks-envato (12925)] DEBUG: Rapportering av ytelsesdata hvert 60 sekund. [09/22/13 17:23:42 +1000 skorks-envato (12925)] DEBUG: Løpearbeidsløype [09/22 / 13 17:23:50 +1000 skorks-envato (12925)] DEBUG: Forsøk på å sette inn RUM-overskrift i begynnelsen av hodet.

For eksempel kan vi se det:

  • Vi kan slå av overvåkingen selv om den er slått på i konfigurasjonsfilen, ved å sette en miljøvariabel NEWRELIC_ENABLE = false
  • Vi kan se at New Relic setter inn en haug med Rack middleware
  • Vi bruker Webrick som vår server, som åpenbart er i utviklingsmodus, men i produksjon ville det være bra å bekrefte at New Relic gjenkjenner serveren vi bruker
  • New Relic sender data til collector.newrelic.com:443
  • New Relic sender data hvert 60 sekund
  • Ekte brukerovervåking skjer via JSONP

Veldig nyttig informasjon når du prøver å finne ut hvordan ting henger sammen.

De fleste av de andre konfigurasjonsparametrene er ganske selvforklarende, for eksempel:

browser_monitoring: auto_instrument: true capture_params: false

Den eneste andre som muligens er klar over er:

transaction_tracer: transaction_threshold: apdex_f

Transaksjonssporeren fanger detaljert informasjon om forespørsler som tar for lang tid. Transaksjonsgrensen er vanligvis en multipel (x4) av Apdex-verdien, men det er ofte nyttig å skille disse verdiene fra hverandre. Du kan være fornøyd med en Apdex-poengsum på ett sekund, men det kan hende du vil fange detaljerte data om forespørsler som tar 1,5 sekunder eller lenger (i stedet for de fire sekunder eller lenger som ville skje som standard). Så du kan sette denne parameteren separat:

transaction_tracer: transaction_threshold: 1.5

New Relic Developer Mode

En av konfigurasjonsverdiene du kanskje har lagt merke til var:

developer_mode: true

Dette bør bare slås på under utvikling (hvis i det hele tatt). I utviklingsmodus vil New Relic-agent lagre ytelsesdata om de siste 100 forespørsler i minnet. Du kan se på disse dataene når som helst ved å trykke på / newrelic Endpoint for ditt kjørerapplikasjon:

Jeg bruker neppe det, men det er der hvis du trenger det.


Melde ny relikvier av distribusjoner

Når du jobber med utførelsen av søknaden din, er det alltid godt å vite om en bestemt distribusjon har hatt en positiv eller negativ effekt på ytelsen. For dette formålet kan du varsle New Relic hver gang du utfører en distribusjon. På denne måten hvis ytelsen forringes eller forbedres, vil du kunne se hvilken distribusjon som var skyldige. New Relic gir Capistrano kroker for å gjøre dette, men jeg foretrekker kommandolinjens måte:

% newrelic distribusjoner -a 'newrelic_rails1 (Development)' -e 'development' -u 'skorks' -r 'abc123' Registrert distribusjon til 'newrelic_rails1 (Development)' (2013-09-22 18:19:13 +1000)

Nøkkelen er å korrekt angi programnavnet som konfigurert i newrelic.yml fil.

Vi vil få fine linjer på relevante New Relic-grafer for å indikere når en distribusjon skjedde.


Konklusjon

Du vet nå mye om hvordan New Relic fungerer, og hvordan du begynner å bruke den til å overvåke en Rails-applikasjon. Men å konfigurere ting riktig er bare halvparten av kampen, hva slags beregninger vil New Relic faktisk fange for deg? Og hvordan kan du bruke dem til å forbedre ytelsen til din søknad? Vi vil se på noen av disse i en senere artikkel. For nå, ha en tur til å konfigurere New Relic for din Rails-applikasjon (du får en gratis T-skjorte) og hvis du har noen spørsmål, ikke glem å legge igjen en kommentar.