• Час читання ~4 хв
  • 02.09.2022

Scout APM — це інструмент моніторингу продуктивності програми Laravel, який пов’язує аномалії продуктивності безпосередньо з кінцевими точками, заощаджуючи години часу розробників, витрачені на усунення несправностей і налагодження.

Scout нещодавно розширено. його сервісні пропозиції включають мікросервіси та керований моніторинг сервісів для додатків PHP, що дає вам більш узгоджені та ефективні показники спостережуваності.Дізнайтеся більше про те, як контролювати програму laravel за допомогою Scout APM, прочитавши нижче.

Налаштування

До почніть стежити за програмами Laravel, перш за все вам знадобиться обліковий запис Scout. Якщо у вас його ще немає, ви можете зареєструватися на безкоштовну 14-денну пробну версію (кредитна картка не потрібна) тут.< /p>

Наступне, що потрібно зробити, це додати агент моніторингу з низькими витратами до залежностей вашого проекту. Це можна зробити за допомогою однієї команди у вашій оболонці:

composer require scoutapp/scout-apm-laravel

This command will install two packages: scout-apm-laravel and scout-apm-php.
The next thing to do is to define some configurations settings to link the agent to your account. To do that, open up your project’s .env file in your favourite text editor and add the following three lines to the end of the file:

SCOUT_MONITOR=true
SCOUT_KEY=”enter your Agent Key here”
SCOUT_NAME=”enter the name of you application here”

You can find your account’s Agent Key on the settings page of Scout.
And that’s it! Deploy, and after approximately 5 minutes, your data will start to appear in Scout. For more information about Heroku installs or to troubleshoot installation problems, either take a look at the documentation or shoot an email to [email protected] and we’ll be happy to help.

З чого почати ?

Отже, ви створили обліковий запис Scout, підключили агента моніторингу, але з чого почати діагностику проблем із продуктивністю програми?Давайте розглянемо основні функції Scout, які можуть допомогти вам швидко зрозуміти проблеми з продуктивністю.

Основна сторінка огляду


Перша сторінка, яку ви відкриваєте під час входу в Scout, — це сторінка огляду (показана нижче), яка дає вам чіткий, вільний від безладу знімок стану та продуктивності вашої програми за одну швидку операцію. погляд.

Діаграма має широкі можливості налаштування, що дозволяє ви можете змінити період часу та вибрати, які показники ви хочете бачити. Він також має гарний інструмент перетягування (показаний нижче), який дозволяє намалювати рамку навколо областей, які ви хочете дослідити більш детально.Спливаюче вікно динамічно завантажуватиметься, коли ви малюєте ці рамки, показуючи всі кінцеві точки, до яких було доступно протягом цього періоду часу. Це може бути особливо корисним, коли ви бачите різке зростання продуктивності на діаграмі та хочете побачити, що його спричинило.

Діаграма має широкі можливості налаштування, що дозволяє ви можете змінити період часу та вибрати, які показники ви хочете бачити. Він також має гарний інструмент перетягування (показаний нижче), який дозволяє намалювати рамку навколо областей, які ви хочете дослідити більш детально.Спливаюче вікно динамічно завантажуватиметься, коли ви малюєте ці рамки, показуючи всі кінцеві точки, до яких було доступно протягом цього періоду часу. Це може бути особливо корисним, коли ви бачите різке зростання продуктивності на діаграмі та хочете побачити, що його спричинило.

Вкладки статистики

Чудовим місцем для початку, якщо ви вперше пробуєте Scout, є вкладки статистики. Тут ми маємо набір алгоритмів, які аналізують ваш проект, щоб визначити потенційні n+1 запити та повільні запити. Вони пропонують вам «низькі плоди» виправлень продуктивності, які часто можуть миттєво покращити продуктивність вашої програми.

Кінцеві точки та траси

Кінцеві точки та траси

Scout насамперед надає показники продуктивності програми на двох рівнях. Перш за все, з точки зору кінцевої точки. Наприклад, скільки в середньому часу потрібно цій кінцевій точці, щоб отримати доступ, і який розподіл часу було витрачено?

Якщо ви подивитеся на знімок екрана нижче, ви чітко побачите, що в 3 випадках, коли ця кінцева точка ForgetPasswordController отримувала доступ, 78% із середнього часу запиту 2371 мс було витрачено на рівень контролера, що вказує на те, що це буде перше місце для дослідження, якщо ми хотіли спробувати покращити цю мляву кінцеву точку.

Друга перспектива, з якої Scout переважно представляє показники, знаходиться на рівні трасування. Наприклад, під час цього конкретного веб-запиту, який хтось зробив, скільки часу зайняло виконання та які рівні запиту зайняли найбільше часу тощо.Дивлячись на трасування дії оновлення UserController нижче, ми бачимо, що в цьому випадку 98% часу було витрачено на рівень SQL, і більшу частину цього часу було витрачено на ці 2 виклики запиту у верхньому рядку. Якщо ми натиснемо цю кнопку SQL, ми побачимо зворотне трасування та перевіримо, чи зможемо ми покращити запит.

Друга перспектива, з якої Scout переважно представляє показники, знаходиться на рівні трасування. Наприклад, під час цього конкретного веб-запиту, який хтось зробив, скільки часу зайняло виконання та які рівні запиту зайняли найбільше часу тощо.Дивлячись на трасування дії оновлення UserController нижче, ми бачимо, що в цьому випадку 98% часу було витрачено на рівень SQL, і більшу частину цього часу було витрачено на ці 2 виклики запиту у верхньому рядку. Якщо ми натиснемо цю кнопку SQL, ми побачимо зворотне трасування та перевіримо, чи зможемо ми покращити запит.

Ці сторінки, де ви проводите більшу частину свого часу в Scout, і вони надають вам видимість, яка є важливою під час спроб щоб зрозуміти ваші проблеми з продуктивністю. Ви можете отримати доступ до Endpoint і Traceсторінки, перейшовши безпосередньо з головної сторінки огляду та вкладок статистики, або натиснувши посилання Веб-кінцеві точки у верхній частині сторінки (показано нижче).

< img src="https://laravelnews.s3.amazonaws.com/images/laravel6.png" alt="">

Поза основами

Тепер, коли ми розглянули основи Scout і показали вам основні області системи, якими ви зазвичай користуєтеся щодня, давайте тепер переключимо нашу увагу на деякі з більш просунутих функцій, які ставлять Scout попереду натовпу в простір APM.

Моніторинг помилок

Незалежно від того, чи використовуєте ви Sentry, Honeybadger, Bugsnag або Rollbar для моніторингу помилок, у нас ви знайдете! Scout бездоганно інтегрується з цими популярними службами, дозволяючи вам мати весь свій моніторинг в одному місці, на головній сторінці огляду.

Процес налаштування подібний незалежно від того, якою з цих служб ви користуєтеся, і усе, що він передбачає, це додавання маркера API на екрані налаштувань Scout.

Користувацький контекст і дослідник трасування

Чому ця проблема з продуктивністю виникає лише о 2:00 у вівторок ніч з бразильської IP-адреси?Такі складні (але поширені) проблеми з продуктивністю можна вирішити за допомогою однієї з найпотужніших функцій Scout: дослідника трасування, який використовується разом із визначеним користувачем настроюваним контекстом.

< p>Використаний визначений спеціальний контекст дозволяє вам повідомити нам, що вам потрібно побачити. І це варто інвестувати відносно невеликий проміжок часу знадобиться для налаштування, щоб отримати надздібності моніторингу! За замовчуванням єдиними контекстними полями, які ви побачите, є URI та ім’я хосту, як ви можете бачити нижче, але їх можна налаштувати відповідно до будь-яких потреб.

Провідник трасуваннядіаграми з декількома фільтрами (показані вище) дозволяють перевіряти кінцеві точки, які відповідають критеріям, які ви визначили, а потім ви можете побачити всі траси, які відповідають цим фільтрам, у частині екрана «Transaction Traces». Наприклад, можливо, ви хочете переглянути веб-запити певного користувача, або всіх користувачів певного розміру плану, або з певної частини світу.Ці види операцій легко виконувати в провіднику трасування з настроюваним контекстом, і вони допомагають вам розібратися в проблемах продуктивності, які важко діагностувати та потребують багато часу.

Відстеження розгортання

Чи проблема продуктивності, яку ви спостерігаєте, раптово почала виникати після останнього розгортання? Який досвід роботи з користувачем під час розгортання?Це типи запитань, на які можна відповісти за допомогою нашої функції відстеження розгортання, яка розмістить символ ракети на головній оглядовій діаграмі, щоб вказати, коли відбулося розгортання.

Відстеження розгортання також дозволяє вам побачити деталі, наприклад, скільки комітів було залучено до розгортання та з якої гілки надійшли коміти. Ми можемо зібрати всю цю інформацію, коли ви додаєте SHA або ваше розгортання до змінної середовища SCOUT_REVISON_SHA.

Попередження

Як і всі хороші рішення для моніторингу, Scout надає вам складну систему сповіщень, яку можна налаштувати для надсилання сповіщень певним людям, коли час відповіді кінцевої точки або показники використання пам’яті перевищують певний поріг. Ці сповіщення відображатимуться як попереджувальні символи на головній оглядовій діаграмі та надсилатимуться сповіщення.

За умовчанням система сповіщень надсилатиме сповіщення користувачам у групах сповіщень електронною поштою, але вона також може бути налаштованим для роботи зі сторонніми службами, такими як Slack, VictorOps, PagerDuty тощо, за допомогою нашої функції веб-перехоплення.

Інструменти на замовлення

Ви використовуєте бібліотеки за межами Laravel, які ми зараз не інструментуємо? Якщо так, спершу повідомте нашу службу підтримки, і ми спробуємо додати для вас підтримку. А тим часом ви можете самостійно додати деякі спеціальні інструменти, це справді легко почати, і це забезпечить повну видимість вашого вся програма.

Що далі?

Як бачите, Scout APM пропонує дуже зріле рішення для моніторингу APM для спільнот PHP і Laravel. Наш вільний від зайвого інтерфейсу користувача та глибокі інструменти допоможуть вам швидко розібратися з проблемами продуктивності, залишаючись доступними за ціною завдяки нашій гнучкій структурі ціноутворення на основі транзакцій.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297