Atraskite maksimalų programų našumą. Šiame išsamiame vadove aptariama „New Relic“ integracija, pagrindiniai rodikliai, geriausios praktikos ir pažangus stebėjimas pasaulinėms komandoms.
Tobulas programų našumas: išsamus „New Relic“ integravimo vadovas
Šiandieninėje itin konkurencingoje skaitmeninėje erdvėje programos našumas yra ne tik techninis rodiklis, bet ir pagrindinė verslo funkcija. Lėtai įkeliamas puslapis, vėluojanti operacija arba netikėta klaida gali lemti lojalų klientą arba prarastą galimybę. Pasaulinėms įmonėms šis iššūkis yra dar didesnis, nes reikalaujama nuolatinio, patikimo našumo vartotojams įvairiuose regionuose, tinkluose ir įrenginiuose. Tačiau kaip gauti matomumą sudėtingose, paskirstytose sistemose, kurios palaiko šiuolaikines programas?
Atsakymas slypi Programų našumo stebėjime (APM). APM išsivystė nuo paprasto stebėjimo įrankio iki sudėtingos stebėjimo praktikos, suteikiančios išsamių įžvalgų apie kiekvieną programinės įrangos paketo sluoksnį. Tarp lyderių šioje srityje „New Relic“ išsiskiria kaip visapusiška platforma, sukurta šiuolaikinių, debesų aplinkų sudėtingumui.
Šis vadovas bus jūsų išsamus „New Relic“ integravimo vadovas. Mes išnagrinėsime APM pagrindus, žingsnis po žingsnio paaiškinsime integravimo procesą, iššifruosime pagrindinius rodiklius ir atskleisime geriausią praktiką, kaip pasinaudoti šia galinga platforma, siekiant tiek techninės kompetencijos, tiek verslo sėkmės pasauliniu mastu.
Programų našumo stebėjimo (APM) supratimas
Prieš integruojant įrankį, būtina suprasti discipliną. APM yra daugiau nei tik patikrinimas, ar serveris yra prisijungęs; tai supratimas apie galutinę vartotojo patirtį ir kodo, kuris ją teikia, būklę.
Kas yra APM?
Programų našumo stebėjimas yra programinės įrangos programų našumo, prieinamumo ir vartotojo patirties stebėjimo ir valdymo praktika. Patikimas APM sprendimas suteikia išsamių įžvalgų, rinkdamas, analizuodamas ir teikdamas ataskaitas apie jūsų programos telemetrijos duomenis. Jo pagrindinės funkcijos paprastai apima:
- Galutinio vartotojo patirties stebėjimas: Našumo matavimas iš vartotojo perspektyvos, nesvarbu, ar tai būtų žiniatinklio naršyklė, ar mobilioji programėlė. Tai dažnai vadinama realaus vartotojo stebėjimu (RUM).
- Programos topologijos atvaizdavimas: Automatinis programos komponentų ir jų priklausomybių atradimas ir atvaizdavimas, vizualiai parodant, kaip paslaugos sąveikauja.
- Operacijų profiliavimas: Vartotojų užklausų sekimas – nuo pradinio spustelėjimo iki duomenų bazės užklausų ir atgal – siekiant nustatyti kliūtis bet kuriame etape.
- Kodo lygmens diagnostika: Tikslios kodo eilutės, funkcijos ar duomenų bazės užklausos, kuri sukelia našumo problemą ar klaidą, nustatymas.
- Infrastruktūros koreliacija: Programos našumo susiejimas su pagrindinės infrastruktūros (serverių, konteinerių, debesų paslaugų) būkle.
Kodėl APM yra itin svarbus šiuolaikiniam verslui?
Anksčiau monolitinę programą, veikiančią keliuose serveriuose, buvo gana paprasta stebėti. Šiandieninė realybė susideda iš mikroservisų, serverless funkcijų, konteinerių ir sudėtingo trečiųjų šalių API tinklo, todėl rankinis stebėjimas yra neįmanomas. APM yra itin svarbus, nes jis:
- Apsaugo pajamas ir reputaciją: Tyrimai nuolat rodo tiesioginę koreliaciją tarp programos našumo ir verslo rodiklių, tokių kaip konversijų rodikliai ir klientų išlaikymas. APM padeda apsaugoti tą galutinę eilutę.
- Įgalina aktyvų problemų sprendimą: Užuot laukus, kol vartotojai praneš apie problemą, APM realiuoju laiku įspėja apie anomalijas ir našumo pablogėjimus, todėl galite išspręsti problemas, kol jos paveiks didelį skaičių vartotojų.
- Palaiko „DevOps“ ir SRE kultūrą: APM yra „DevOps“ ir svetainių patikimumo inžinerijos (SRE) kertinis akmuo. Jis suteikia bendrą tiesos šaltinį kūrimo ir operacijų komandoms, palengvindamas greitesnius leidimo ciklus, saugesnius diegimus (pvz., per kanarėlių leidimus) ir duomenimis pagrįstą sprendimų priėmimą, susijusį su paslaugų lygio tikslais (SLO).
- Suteikia pasaulinio našumo įžvalgų: Tarptautinėms įmonėms labai svarbu užtikrinti, kad vartotojas Tokijuje turėtų tokią pat gerą patirtį kaip vartotojas Londone ar San Paule. APM įrankiai suteikia matomumą apie našumą įvairiuose geografiniuose regionuose, padedant optimizuoti turinio pristatymą ir infrastruktūros išdėstymą.
Pristatome „New Relic“: visos apimties stebėjimo platformą
Nors daugelis įrankių siūlo APM galimybes, „New Relic“ įsitvirtino kaip lyderis, išsivystydamas į visos apimties stebėjimo platformą. Tai reiškia, kad ji siekia pateikti vieną, vieningą vaizdą visame jūsų technologijų pakete.
Kas yra „New Relic“?
„New Relic“ yra programinė įranga kaip paslauga (SaaS) platforma, leidžianti jums instrumentuoti, analizuoti, šalinti triktis ir optimizuoti visą programinės įrangos paketą. Ji nuryja, saugo ir analizuoja didžiulius telemetrijos duomenų kiekius – metrikas, įvykius, žurnalus ir pėdsakus (MELT) – iš visų jūsų sistemų. „New Relic One“ platforma sujungia šias galimybes į vieną, darnią patirtį.
Jos pagrindiniai komponentai apima:
- APM: Giliai, kodo lygmens programos našumo įžvalgoms.
- Infrastruktūra: Hostų, konteinerių ir debesų platformos paslaugų (AWS, Azure, GCP) stebėjimui.
- Žurnalai: Žurnalo duomenų susiejimui su programos našumo problemomis.
- Naršyklė (RUM): Priekinei daliai ir realaus vartotojo stebėjimui.
- Sintetika: Aktyviam, imituotam vartotojų testavimui iš pasaulinių vietų.
- Mobilusis: Vietinių „iOS“ ir „Android“ programų našumo stebėjimui.
- Paskirstytasis sekimas: Užklausų sekimui sudėtingose, mikroservisų architektūrose.
Pagrindinės funkcijos ir skiriamieji bruožai
- Visos apimties stebėjimas: Galimybė sklandžiai pereiti nuo priekinės dalies sulėtėjimo, apie kurį pranešta naršyklėje, per konkrečią APM operaciją, iki didelio procesoriaus įspėjimo „Kubernetes“ pode infrastruktūroje ir galiausiai iki tikslios žurnalo žinutės, atskleidžiančios pagrindinę priežastį.
- Taikomasis intelektas (AI/ML): Jo AI variklis, „New Relic AI“, padeda automatiškai aptikti anomalijas, sumažinti įspėjimų triukšmą grupuojant susijusius incidentus ir pasiūlyti tikėtinas pagrindines priežastis, taupant inžinierių brangų laiką.
- NRQL (New Relic užklausų kalba): Galinga, į SQL panaši užklausų kalba, leidžianti realiuoju laiku ištirti visus telemetrijos duomenis. Galite užduoti beveik bet kokį klausimą apie savo sistemos našumą ir sukurti pasirinktines diagramas ir informacijos suvestines.
- Programuojamumas: „New Relic One“ sukurta kaip programuojama platforma, leidžianti komandoms kurti pasirinktines programas ir vizualizacijas, remiantis jų duomenimis, kad atitiktų konkrečius verslo poreikius.
Integravimo procesas: žingsnis po žingsnio vadovas
Pradžia su „New Relic“ yra sukurta taip, kad būtų paprastas procesas. Pagrindinis integravimo dalykas yra kalbai specifinio „agento“ įdiegimas jūsų programoje.
Būtinos sąlygos ir planavimas
Prieš pradedant, šiek tiek planavimo yra labai svarbu:
- Sukurkite „New Relic“ paskyrą: Užsiregistruokite „New Relic“ paskyroje. Jie siūlo dosnų nemokamą lygį, kuris puikiai tinka pradėti ir eksperimentuoti.
- Nustatykite savo paketą: Žinokite programavimo kalbas, sistemas, duomenų bazes ir infrastruktūrą, kurią naudoja jūsų programa.
- Apibrėžkite pagrindines operacijas: Nustatykite svarbiausius vartotojo kelius jūsų programoje (pvz., „vartotojo prisijungimas“, „įdėti į krepšelį“, „apdoroti mokėjimą“). Tai yra operacijos, kurias norėsite atidžiausiai stebėti.
- Peržiūrėkite saugumą: Jums reikės savo „New Relic“ licencijos rakto. Elkitės su šiuo raktu kaip su slaptažodžiu. Supraskite duomenų privatumo taisykles, susijusias su jūsų vartotojų baze (pvz., GDPR Europoje arba CCPA Kalifornijoje), ir sukonfigūruokite agentą, kad išvengtumėte asmenį identifikuojančios informacijos (PII) rinkimo, jei reikia.
„New Relic“ agento įdiegimas
„New Relic“ agentas yra maža biblioteka, kurią pridedate prie savo programos. Jis veikia jūsų programos procese, renka našumo duomenis ir saugiai juos perduoda į „New Relic“ platformą. Diegimo metodas skiriasi priklausomai nuo kalbos, tačiau principas yra tas pats: instrumentuokite savo kodą nereikalaujant didelių kodo pakeitimų.
„New Relic“ „vadovaujamas diegimas“ yra rekomenduojamas pradžios taškas, nes jis dažnai gali aptikti jūsų aplinką ir pateikti pritaikytas instrukcijas. Štai aukšto lygio apžvalga apie kai kurias populiarias kalbas:
- Java: Agentas paprastai pridedamas naudojant komandinės eilutės vėliavėlę (`-javaagent:newrelic.jar`) paleidžiant „Java Virtual Machine“ (JVM). Kodo pakeitimų nereikia.
- Python: Agentas įdiegiamas per pip (`pip install newrelic`) ir tada naudojamas kaip standartinės paleidimo komandos apvalkalas (pvz., `newrelic-admin run-program gunicorn ...`).
- .NET: MSI diegimo programa paprastai tvarko sąranką, automatiškai konfigūruodama .NET profiliuotoją, kad prisijungtų prie jūsų IIS programų telkinių arba .NET Core procesų.
- Node.js: Agentą įdiegiate per npm (`npm install newrelic`) ir tada pridedate `require('newrelic');` kaip pačią pirmą eilutę savo programos pagrindiniame scenarijuje.
- Ruby, PHP, Go: Kiekviena kalba turi savo gerai dokumentuotą agento diegimo procesą, paprastai apimantį perlo/paketo ir konfigūracijos failo pridėjimą.
Kai agentas bus įdiegtas ir jūsų programa bus paleista iš naujo, duomenys turėtų pradėti rodytis jūsų „New Relic“ paskyroje per kelias minutes.
Konfigūracija ir tinkinimas
Numatytoji agento konfigūracija suteikia daug informacijos, tačiau tinkinant ją, atskleidžiama tikroji jos galia. Tai paprastai atliekama per konfigūracijos failą (pvz., `newrelic.yml` arba aplinkos kintamuosius).
- Nustatykite programos pavadinimą (`app_name`): Tai yra pats svarbiausias nustatymas. Jis nustato, kaip duomenys bus agreguojami „New Relic“ UI. Naudokite nuoseklų pavadinimų suteikimo būdą, ypač mikroservisų aplinkoje (pvz., `[aplinka]-[paslaugos-pavadinimas]`).
- Įgalinkite paskirstytąjį sekimą: Tai būtina mikroservisų architektūroms. Užtikrinkite, kad jis būtų įgalintas visose jūsų paslaugose, kad gautumėte visą matomumą.
- Pridėkite pasirinktinius atributus: Papildykite savo duomenis verslo kontekstu. Pavyzdžiui, prie savo operacijų galite pridėti atributus, tokius kaip `userId`, `customerTier` arba `productSKU`. Tai leidžia jums padalyti ir supjaustyti našumo duomenis prasmingais būdais (pvz., „Ar aukščiausio lygio klientai patiria greitesnį atsakymo laiką?“).
- Sukurkite pasirinktinius įvykius: Praneškite apie konkrečius verslo įvykius (pvz., naujo vartotojo registraciją arba užbaigtą pirkinį) „New Relic“, kad susietumėte juos su našumo metrikais.
Duomenų prasmės supratimas: pagrindiniai „New Relic APM“ rodikliai
Kai duomenys pradeda tekėti, jums bus pateiktos įvairios diagramos ir rodikliai. Išnagrinėkime svarbiausius, esančius APM suvestinės puslapyje.
APM suvestinės puslapis: jūsų valdymo centras
Tai yra jūsų programos būklės apžvalga. Jame paprastai pateikiamos pagrindinių rodiklių diagramos per pasirinktą laikotarpį.
Pagrindinių rodiklių paaiškinimas
- Atsakymo laikas: Tai yra vidutinis laikas, per kurį jūsų programa apdoroja užklausą. „New Relic“ pateikia galingą spalvomis koduotą suskirstymą, kur šis laikas yra praleidžiamas (pvz., „Python“ interpreteryje, duomenų bazės iškvietime, išoriniame API iškvietime). Atsakymo laiko šuolis dažnai yra pirmasis problemos rodiklis.
- Pralaidumas: Matuojamas užklausomis per minutę (RPM), tai parodo, kiek srauto apdoroja jūsų programa. Atsakymo laiko šuolio susiejimas su pralaidumo šuoliu gali padėti nustatyti su apkrova susijusias našumo problemas.
- Klaidų dažnis: Užklausų, kurios baigiasi neapdorota klaida arba išimtimi, procentas. Tai yra tiesioginis programos patikimumo matas. „New Relic“ leidžia jums gilintis į kiekvienos klaidos stekų sekimus.
- Apdex balas: Apdex yra pramonės standartinis rodiklis, skirtas matuoti vartotojų pasitenkinimą programos atsakymo laiku. Tai supaprastintas balas nuo 0 (nepriimtina) iki 1 (puikiai). Jūs apibrėžiate ribą „T“ patenkinamam atsakymo laikui. Atsakymai, kurie yra greitesni nei T, yra „Patenkinti“, atsakymai tarp T ir 4T yra „Toleruojami“, o viskas, kas lėtesnė, yra „Nusivylę“. Apdex balas yra puikus būdas perduoti našumo informaciją netechniniams suinteresuotiesiems subjektams.
Giluminis naršymas su operacijomis ir pėdsakais
Suvestinės metrikos puikiai tinka nustatyti problemą, tačiau jums reikia gilesnių įrankių, kad rastumėte pagrindinę priežastį.
- Operacijos: „New Relic“ grupuoja užklausas pagal jų galinį tašką arba valdiklį (pvz., `/api/v1/users` arba `UserController#show`). Operacijų puslapis leidžia jums surūšiuoti šias operacijas, kad rastumėte lėčiausius, daugiausiai laiko reikalaujančius arba dažniausiai iškviečiamus veiksmus.
- Operacijų pėdsakai: Ypač lėtai atskirai užklausai „New Relic“ užfiksuos išsamų „operacijos pėdsaką“. Tai yra krioklio vaizdas, rodantis kiekvieną funkcijos iškvietimą, duomenų bazės užklausą ir išorinį iškvietimą, atliktą per tą užklausą, su tiksliais kiekvieno iš jų laiko matavimais. Čia galite nustatyti tą vieną lėtą SQL užklausą arba neefektyvią kilpą.
- Paskirstytasis sekimas: Mikroservisų architektūroje vienas vartotojo spustelėjimas gali suaktyvinti užklausas per penkias, dešimt ar net daugiau paslaugų. Paskirstytasis sekimas sujungia šias atskiras užklausas į vieną, darnų pėdsaką. Tai leidžia jums pamatyti visą užklausos kelionę per paslaugų ribas, nustatant, kuri konkreti paslauga yra kliūtis sudėtingame darbo eigoje. Tai yra absoliučiai būtina galimybė šiuolaikinėms programų architektūroms.
Pažangus stebėjimas su „New Relic“
Tikras stebėjimas gaunamas sujungiant APM duomenis su likusia jūsų sistemos telemetrija.
Už APM ribų: viso paketo integravimas
- Infrastruktūros stebėjimas: Įdiegę „New Relic“ infrastruktūros agentą savo hostuose arba „Kubernetes“ klasteryje, galite tiesiogiai susieti programos sulėtėjimą su procesoriaus šuoliu konkrečiame serveryje arba atminties nutekėjimu konteineryje.
- Žurnalų valdymas: Sukonfigūruokite savo programos žurnalų sistemą, kad persiųstų žurnalus į „New Relic“. Tai leidžia jums pamatyti atitinkamas žurnalo žinutes tiesiogiai APM klaidos arba operacijos pėdsako kontekste, pašalinant poreikį perjungti įrankius.
- Naršyklė (RUM): APM agentas matuoja serverio pusės našumą. Naršyklės agentas matuoja tai, ką vartotojas iš tikrųjų patiria, įskaitant tinklo delsą ir laiką, per kurį naršyklė pateikia puslapį (priekinės dalies našumas). Sujungus abu, gaunate išsamų vaizdą.
- Sintetinis stebėjimas: Nelaukite, kol tikri vartotojai aptiks problemą. Naudokite „New Relic Synthetics“, kad sukurtumėte automatizuotus scenarijus, kurie nuolat tikrina pagrindinių galinių taškų prieinamumą ir našumą iš įvairių vietų visame pasaulyje. Tai labai svarbu norint užtikrinti visuotinį prieinamumą ir laikytis SLA.
Galingų informacijos suvestinių kūrimas
Numatytoji UI yra galinga, tačiau kiekvienas verslas yra unikalus. Naudodami NRQL, galite kurti pasirinktines informacijos suvestines, pritaikytas skirtingoms auditorijoms:
- „DevOps“ komandos informacijos suvestinė: Gali rodyti atsakymo laiką, klaidų dažnį ir procesoriaus panaudojimą konkrečiai paslaugai kartu su naujausiais diegimo žymekliais.
- Verslo vadovybės informacijos suvestinė: Galėtų rodyti Apdex balą pagrindinėms rinkoms, užbaigtų vartotojų registracijų skaičių (pasirinktinis įvykis) ir svarbios trečiosios šalies mokėjimo API našumą.
Įspėjimai ir aktyvus stebėjimas
Stebėjimas be įspėjimų yra tik stebėjimas. Patikima įspėjimų strategija yra labai svarbi.
- Nustatykite prasmingus įspėjimus: Ne tik įspėkite apie procesoriaus panaudojimą. Įspėkite apie rodiklius, kurie tiesiogiai veikia vartotoją, pavyzdžiui, Apdex balo sumažėjimą arba staigų klaidų dažnio šuolį svarbiai operacijai.
- Naudokite anomalijų aptikimą: Statinės ribos (pvz., „įspėti, kai atsakymo laikas > 2 sekundės“) gali būti triukšmingos. „New Relic“ AI gali išmokti įprastus jūsų programos našumo modelius ir įspėti jus tik tada, kai yra reikšmingas nuokrypis, sumažinant įspėjimų nuovargį.
- Integruokite su savo darbo eiga: Siųskite įspėjimus į įrankius, kuriuos jūsų komandos jau naudoja, pvz., „Slack“, „Microsoft Teams“, „PagerDuty“ arba „ServiceNow“, kad užtikrintumėte greitą atsakymą.
Geriausia „New Relic“ integravimo praktika pasaulinėje organizacijoje
Norėdami maksimaliai padidinti vertę didelėje arba paskirstytoje organizacijoje, apsvarstykite šias geriausias praktikas:
- Standartizuokite pavadinimų suteikimo taisykles: Nuosekli programų pavadinimų suteikimo schema (`[aplinka]-[komanda]-[paslauga]`) leidžia lengvai rasti, filtruoti ir įspėti apie paslaugas.
- Pasinaudokite žymėjimu: Naudokite žymes, kad pridėtumėte metaduomenis prie savo programų ir infrastruktūros. Galite žymėti pagal `komandą`, `projektą`, `duomenų centro regioną` arba `verslo padalinį`, kad lengvai sukurtumėte filtruotus vaizdus ir informacijos suvestines.
- Įdiekite vaidmenimis pagrįstą prieigos kontrolę (RBAC): „New Relic“ leidžia jums sukurti skirtingus vaidmenis ir paskyras, kad užtikrintumėte, jog komandos turėtų prieigą tik prie duomenų, kurie yra svarbūs ir leidžiami joms.
- Skatinkite stebėjimo kultūrą: Našumas yra kiekvieno atsakomybė. Skatinkite kūrėjus peržiūrėti „New Relic“ prieš suliedami kodą, suteikite produktų vadovams galimybę suprasti, kaip funkcijos veikia realiame pasaulyje, ir suteikite palaikymo komandoms duomenis, kurių jiems reikia efektyviai šalinti klientų problemas.
- Nuolat peržiūrėkite ir tobulinkite: Stebėjimas nėra užduotis „nustatyk ir pamiršk“. Reguliariai peržiūrėkite savo įspėjimo ribas, informacijos suvestinių tinkamumą ir pasirinktinį instrumentavimą, kad užtikrintumėte, jog jie vis dar teikia vertę, kai jūsų programa vystosi.
Išvada: duomenų pavertimas praktinėmis įžvalgomis
„New Relic“ integravimas yra daugiau nei tik agento įdiegimas; tai gilios sistemos matomumo praktikos priėmimas. Tai paverčia abstrakčias problemas, tokias kaip „programa veikia lėtai“, į konkrečias, praktines įžvalgas, tokias kaip „`getUserPermissions` užklausa užtrunka 1500 ms esant apkrovai dėl trūkstamo indekso.“
Efektyviai instrumentuojant savo programas su „New Relic“, jūs suteikiate savo komandoms galimybę judėti greičiau ir užtikrinčiau. Kuriate duomenimis pagrįstą kultūrą, kurioje sprendimai grindžiami realiu našumu, o ne spėlionėmis. Bet kuriam pasauliniam verslui ši galimybė stebėti, suprasti ir optimizuoti skaitmeninę patirtį nebėra prabanga – tai pagrindinis sėkmės reikalavimas.
Jūsų kelionė į stebėjimą prasideda nuo to pirmojo agento įdiegimo. Pradėkite nuo svarbios programos, ištirkite duomenis, nustatykite kelis pagrindinius įspėjimus ir pradėkite užduoti klausimus. Įžvalgos, kurias gausite, ne tik pagerins jūsų programos našumą, bet ir suteiks neįkainojamą grįžtamąjį ryšį visam programinės įrangos kūrimo gyvavimo ciklui.