Вы уже знаете, что New Relic предоставляет глубокие показатели производительности для ваших приложений Java, .NET, PHP, Python или Ruby. Но знакомы ли вы с мощными функциями, которые могут вывести ваши знания о вашем приложении на новый уровень? Не позволяйте имени обмануть вас. Хотя эти функции имеют серьезную силу, с ними легко начать. В этом уроке я познакомлю вас с тремя мощными функциями New Relic, которые вы должны использовать сегодня.
Режим разработчика
Одна из самых мощных функций, доступных разработчикам Ruby, — это режим разработчика .
Режим разработчика обеспечивает высокую прозрачность транзакций, выполняемых на локальном компьютере разработчика.
Вы сможете сразу увидеть подробные трассировки транзакций, включая время отклика, отдельные вызовы методов и запросы SQL. Режим разработчика переходит прямо к исполняемому блоку кода, чего нельзя сделать на обычном сайте rpm.newrelic.com .
Вместо того чтобы говорить о режиме разработчика, давайте просто погрузимся и посмотрим на него в действии. После установки New Relic в ваше приложение и выполнения нескольких действий у вас будет список транзакций, которые вы можете просмотреть по адресу http://localhost:3000/newrelic
.
Нажмите на один из URL-адресов в списке, и вы получите сводный вид всего запроса.
Из этого представления вы можете увидеть каждый шаг в запросе, от рендеринга шаблона до фактического времени SQL. В приведенном выше примере вы можете видеть, что 53% времени запроса было потрачено на рендеринг шаблона show.html.erb
. Это отличное место для реализации некоторого фрагментарного кэширования для ускорения запроса.
В подробном представлении (как показано ниже) вы можете исследовать каждый шаг запроса, начиная с вызываемого контроллера и действия, через каждый дополнительный метод, шаблон и запрос SQL. Нажатие на строку, подобную User#find_by_sql
приведет вас к точной строке кода, которая сделала этот вызов метода (ниже, ниже).
Наконец, вы можете увидеть каждый запрос SQL, который делает запрос, посмотрев на представление SQL . Оттуда вы можете обнаружить любые дублированные запросы SQL, которые вы могли сделать, и перейти непосредственно к строке кода, которая его создает. Или вы можете просмотреть подробную информацию об операторе, чтобы изучить подробный обзор запроса, чтобы узнать о количестве используемых таблиц, сканированных строках и доступе к индексам.
Подробная информация о производительности вашего приложения, вплоть до строки кода, неоценима во время разработки. Мощь режима разработчика действительно может быть оценена только при его использовании, поэтому, если хотите, зарегистрируйтесь на бесплатной 30-дневной учетной записи Pro и попробуйте.
Пользовательские метрики и пользовательские панели
Агент New Relic собирает огромное количество показателей о вашем приложении с минимальными усилиями, но знание того, как приложение работает технически, — это еще не все. Вам необходимо знать, как работают ваши бизнес-показатели в вашем приложении. Пользовательские метрики, такие как стоимость заказа, попытки входа в систему и регистрации / регистрации, можно собирать в New Relic и сравнивать с техническими характеристиками вашего приложения.
Пользовательские метрики доступны на всех пяти поддерживаемых языках: Java , .NET , PHP , Python и Ruby .
Ниже приведен пример пользовательской метрики, использующей агент Python, но понятия аналогичны для других языков.
Как вы можете видеть в приведенном выше примере, мы отправляем одну из двух пользовательских метрик при обработке заказа. Если заказ выполнен успешно, мы отправляем стоимость заказа в долларах. Или, если заказ не выполняется, мы отправляем счетчик. Запись таких пользовательских метрик может дать более глубокое понимание влияния производительности вашего приложения на ваши бизнес-метрики. В случае неудачных заказов, используя пользовательские метрики, вы можете обнаружить проблемы раньше, когда обнаружите всплеск сбойных метрик (например, ваш платежный процессор не работает).
Вы также можете использовать собственные метрики для записи данных о времени. Это отличный способ контролировать время отклика внешней службы, от которой вы зависите.
У пользовательских метрик всегда должно быть имя, начинающееся с Custom/*
, чтобы избежать любых конфликтов пространства имен с метриками собственного агента. Получив эти пользовательские метрики, вы можете получить реальную видимость, комбинируя несколько собственных диаграмм с диаграммами ваших пользовательских метрик на пользовательской панели мониторинга . Если вы еще этого не сделали, вам следует начать собирать показатели, важные для вашего бизнеса, с помощью бесплатной 30-дневной учетной записи Pro .
Анализ масштабируемости
Конечно, было бы неплохо узнать, сможет ли ваше приложение выдержать внезапный всплеск трафика, прежде чем вы попадете на первую страницу Hacker News . Но знать, какой компонент вашего приложения может быть узким местом, сложно. Будет ли это само приложение? Ваш слой базы данных? Или даже загрузка ЦП будет перегружена?
Последняя мощная функция, которую вы должны использовать сегодня, — это набор отчетов Scalability Analysis, которые показывают производительность вашего приложения. В идеальном мире производительность вашего приложения должна оставаться достаточно стабильной, так как нагрузка увеличивается в течение дня. На графике ниже видно, что по мере увеличения количества запросов в минуту (ось X) время отклика приложения остается неизменным (ось Y).
Если, с другой стороны, ваше приложение не оборудовано для масштабирования с увеличением запросов, вы увидите диаграмму с крутым уклоном, подобным приведенному ниже. Здесь вы можете видеть, что с увеличением количества запросов время отклика базы данных также резко возрастает.
Эти типы тенденций очень трудно обнаружить без такой богатой визуализации. Оптимально, вы хотите, чтобы время отклика росло с увеличением количества запросов. Если вы обнаружите, что время отклика вашего приложения растет геометрически с увеличением, то пришло время оптимизировать. Поскольку вы никогда не знаете, когда потребуется масштабировать ваше приложение, важно следить за его масштабируемостью по мере роста. Такие инструменты, как отчеты Scalability Analysis и Capacity Analysis, являются отличным способом, позволяющим легко сделать мониторинг производительности частью вашей рутины.
Если вы еще этого не сделали, вы можете зарегистрировать бесплатную 30-дневную учетную запись Pro в New Relic, чтобы попробовать эти и многие другие мощные функции, которые обеспечат максимальную производительность вашего приложения.