Статьи

Raygun APM: уничтожить проблемы с производительностью

Современные веб-приложения — это тщательно продуманные, но громоздкие звери, и если вы не будете осторожны, они могут укусить вашу команду разработчиков дорогостоящими ошибками и низкой производительностью.

По правде говоря, этого следовало ожидать. Сложная сложность современных веб-приложений означает, что необходимо учитывать каждый элемент и компонент. Все, от неэффективных запросов SQL до вызовов веб-API и даже вызовов сторонних CDN, может вызвать проблемы для вашего приложения. Это означает, что всем, кто занимается разработкой и обслуживанием ваших приложений (включая разработчиков, тестировщиков, SysOps и т. Д.), Необходимо работать вместе, чтобы обеспечить максимальную производительность вашего приложения.

Естественно, ваша команда нуждается в необходимых инструментах для контроля состояния вашего приложения, и у Raygun есть именно то, что вам нужно, особенно с выпуском Raygun APM .

Райгун не новичок в пространстве мониторинга. В течение многих лет Raygun предоставлял инструменты мирового класса и легко интегрируемые, на которые разработчики полагаются для поиска и анализа дорогостоящих ошибок приложений, а также для мониторинга и составления отчетов о проблемах UX и производительности. С выпуском Raygun APM Raygun имеет полную и инновационную платформу, которая предлагает централизованный инструмент для обнаружения, диагностики и устранения ошибок и проблем с производительностью, независимо от того, где они возникают и что их вызывает.

Raygun APM начал с первоклассной поддержки приложений .NET, с поддержкой .NET Core, а также других языков и сред.

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

Raygun APM автоматически обнаруживает и правильно классифицирует эти проблемы, предоставляя вам немедленные и подробные отзывы и представление о производительности вашего приложения.

Панель мониторинга производительности приложений

Панель инструментов дает вам обзор производительности вашего приложения в реальном времени, предоставляя удивительно глубокую, но визуально аналитическую информацию о запросах, которые получает ваше приложение, и о типах работы, которую ваше приложение использует (например, вызовы API, методы и запросы) во время каждого запроса. Он выделяет проблемные моменты вашего приложения, перечисляя самые медленные части вашего приложения, и Apdex дает вам представление об удовлетворенности ваших пользователей временем отклика вашего приложения.

Проблемы треки Raygun APM генерируются набором правил, которые вы можете настроить и адаптировать к вашим конкретным потребностям. Например, если вы считаете, что 10 мс слишком длинны для выполнения оператора SELECT SQL, вы можете настроить правила Raygun APM для создания отчетов по всем запросам, выполнение которых занимает более 10 мс.

Обзор проблем производительности

Raygun APM позволяет углубиться в подробности каждой проблемы и предоставляет контекстную информацию, относящуюся к типу возникшей проблемы. Например, ниже приведен скриншот информации, собранной для медленного выполнения SQL-запроса.

Развертывание проблемы медленного выполнения SQL-запроса

Raygun APM не только предоставляет вам фактический запрос, но также показывает, когда он выполнялся медленно, а также отслеживает, где возникла проблема.

Raygun APM также разбивает каждый запрос на отдельные части, давая вам четкое представление о производительности каждого метода, запроса или других ресурсов, используемых в запросе.

Производительность во времени и разбивка по времени звонка

Каждая часть запроса, имеющая какое-либо влияние на производительность вашего приложения, собирается, каталогизируется и доступна, в комплекте с аналитическими показателями, которые ваша команда может изучить. Raygun APM дает вам иголку в стоге сена данных — он уже находит болевые точки вашего приложения. Все, что ваша команда должна сделать, это исправить их.

Сегодня команды разработчиков программного обеспечения используют различные сервисы для разработки и развертывания приложений. Подумайте о GitHub и Bitbucket для управления и поддержки вашего исходного кода, Jira для управления проектами, Slack для связи и даже PagerDuty для разрешения инцидентов — все это сервисы, используемые в современной разработке программного обеспечения для обеспечения продуктивной команды. Естественно, Raygun APM легко интегрируется с этими и многими другими сторонними инструментами и сервисами рабочих процессов.

Интегрированное представление исходного кода

Представьте себе, что вы обнаружили проблему, обнаруженную Raygun APM на странице ваших продуктов, и смогли увидеть исходный код метода действия контроллера, размещенного на GitHub или Bitbucket, и создать проблему Jira (или ссылку на существующую проблему), не покидая Raygun APM. Все, что вам нужно для выявления и назначения проблем членам вашей команды, у вас под рукой, что значительно сокращает среднее время устранения проблем производительности и ошибок программного обеспечения в ваших приложениях.

Помимо APM, Raygun также предлагает отчеты о сбоях и мониторинг реальных пользователей — вместе эти сервисы составляют платформу Raygun. Естественно, все части платформы Raygun объединяют и обмениваются данными в едином рабочем процессе.

Если вы знакомы с другими решениями APM, такими как New Relic, то вы знаете о высокой стоимости мониторинга производительности приложений. Такие провайдеры APM, как New Relic, используют структуру ценообразования для каждого сервера, которая иногда делает невозможным получение полной картины производительности ваших приложений.

Но современная веб-разработка — это не просто код, работающий на серверах; Теперь мы используем преимущества контейнеров и микросервисов для лучшего разделения и изоляции различных частей наших приложений. Другие решения APM приближаются к контейнерам и микросервисам, опять же, с ограничением затрат. Например, New Relic не требует лицензии для каждого отдельного контейнера, но их клиенты должны приобрести лицензию для сервера, на котором работают эти контейнеры.

Однако Raygun использует другую модель ценообразования, основанную на количестве трасс, которые они обрабатывают для ваших приложений. Это означает, что вы можете использовать Raygun APM на любом количестве серверов (как физических, так и виртуальных), сколько вам нужно для любого количества контейнеров, микросервисов и приложений, которые вы хотите отслеживать, что делает намного более экономически эффективным получение полной картины ваших приложений. ‘ производительность.

Raygun APM доступен в виде отдельного продукта, но его еще более выгодно приобрести как часть платформы Raygun. Платформа Raygun обеспечивает доступ к отчетам о сбоях, мониторингу реальных пользователей и мониторингу производительности.

Существует множество платформ для веб-разработки, и после всех этих лет PHP по-прежнему безраздельно властвует. Но .NET — это платформа, используемая в бизнес-средах, и благодаря кроссплатформенному выпуску .NET Core популярность .NET быстро растет за пределами бизнес-сектора. Но, к сожалению, не многие провайдеры APM фокусируются на .NET, оставляя огромную дыру для Raygun, и они, безусловно, заполняют ее.

С запуском Raygun APM разработчики .NET могут использовать возможности APM мирового класса для мониторинга производительности своих приложений. Независимо от того, работает ли ваше .NET-приложение на вашем собственном оборудовании или в экземпляре Azure Web App, вы можете полагаться на Raygun APM для предоставления точных и подробных данных о производительности.

В настоящее время Raygun APM поддерживает только приложения .NET (не-Core), но в ближайшее время будет поддерживаться .NET Core и другие языки и платформы не-Microsoft.

Я воспользовался возможностью, чтобы кратко протестировать Raygun APM на живом, не демонстрационном сайте, который я принимал участие в создании. Я заранее знал, что у приложения есть проблемы с производительностью. Он был построен в сжатые сроки, и оптимизация не была приоритетной задачей … пока мне и моим коллегам не сказали оптимизировать ее. Он работает на локальном (локальном) сервере.

Настроить Raygun APM было чрезвычайно просто. Вот шаги, которые я предпринял:

  • скачал и установил клиент Raygun APM на сервер
  • ввел и зарегистрировал ключ API
  • подключил клиента к пулу приложений приложения
  • переработал пул приложений

Я начал видеть данные трассировки на приборной панели в течение минуты. Обладая глубокими знаниями о приложении, я не удивился, увидев, что Raygun APM обнаружил плохо работающие части приложения. Я был, однако, очень удивлен количеством предоставленной информации. Я всегда знал, что некоторые методы и процессы были медленными, но Raygun APM позволил мне углубиться в детали и точно определить точные методы и вызовы API, замедляющие мое приложение.

Я заметил заметное снижение производительности приложения, когда клиент Raygun APM был подключен к пулу приложений. Тем не менее, это снижение производительности не было заметно в оптимизированных частях приложения .

Поэтому Raygun APM — это, безусловно, инструмент, который вы захотите использовать в среде тестирования, прежде чем использовать его для захвата и анализа приложений на производстве. Это дает вам возможность исправить проблемы с производительностью еще до того, как приложение будет развернуто.

Raygun APM — это фантастический сервис, который вы можете использовать для мониторинга производительности вашего приложения .NET. Он автоматически находит проблемы с производительностью для вас, и благодаря тесной интеграции с другими инструментами и услугами, которые вы уже используете, вы и ваша команда сможете быстро решить эти проблемы. Не только это, но и дешевле, чем большинство других услуг APM на рынке!