• Время чтения ~6 мин
  • 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, и они обеспечивают видимость, необходимую при попытке чтобы понять проблемы с производительностью. Вы можете получить доступ к Конечной точке и Отслеживанию.страницы, либо перейдя непосредственно с главной страницы обзора и вкладок статистики, либо щелкнув ссылку "Конечные точки Интернета" в верхней части страницы (показано ниже).

< 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 и Hostname, как вы можете видеть ниже, но их можно настроить так, как вы хотите.

обозреватель трассировкиДиаграммы с несколькими фильтрами (показаны выше) позволяют вам проверять конечные точки, которые соответствуют заданным вами критериям, а затем вы можете увидеть все трассировки, соответствующие этим фильтрам, в части экрана «Трассы транзакций». Например, возможно, вы хотите просмотреть веб-запросы определенного пользователя, или всех пользователей с определенным размером плана, или из определенной части мира.Такого рода операции легко выполнять в обозревателе трассировки с настраиваемым контекстом, и они помогают разобраться в трудно диагностируемых и трудоемких проблемах с производительностью.

br>

Отслеживание развертывания

Эта проблема с производительностью, которую вы наблюдаете, внезапно начала возникать после последнего развертывания? Каково взаимодействие с пользователем во время развертывания?Это типы вопросов, на которые можно ответить с помощью нашей функции отслеживания развертывания, которая размещает символ ракеты на основной обзорной диаграмме, чтобы указать, когда произошло развертывание.

Отслеживание развертывания также позволяет просматривать такие сведения, как количество коммитов, задействованных в развертывании, и из какой ветки были получены коммиты. Мы можем получить всю эту информацию, когда вы добавите 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