Рубрики
Uncategorized

Самый простой способ контролировать рубин: автоматическая инструментария

Настройка надлежащего обзора мониторинга по сравнению с производительностью вашего приложения является сложной задачей …. Tagged with Ruby, Rails, DevOps, мониторинг.

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

Тем не менее, с несколькими вещами, и это и APM, который изначально поддерживает Ruby, это проще, чем когда -либо, сделать этот шаг. В этом посте мы покажем вам, как вы тоже можете это сделать.

Автоматическая инструментария — настройка APM HandsFree

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

Благодаря автоматическому инструментациям AppSignal мы убираем как можно больше ручной работы. Просто беги Несколько команд через CLI , и вы будете настроены.

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

Это означает, что, например, для GraphQl Gem для Ruby , AppSignal придаст каждому запросу GraphQL, который приходит, что означает, что он обеспечит разбивку всех событий в запросе.

Изготовленные из коробки

Мы составили список всех инструментов поддержки приложений. Это довольно обширно:

Рельс Рамки
Действие почтовая почта Рельсы функции
Действие кабель Рельсы функции
Активная запись Рельсы функции
Активная работа Рельсы функции
Кэширование Рельсы функции
PostgreSQL, MySQL, SQLite и т. Д. Поддерживается через Activerecord
Heroku Postgresql Интеграция Heroku
Падрино Рамки
Синатра Рамки
Стойка Жемчужина
Веб -мочи Жемчужина
Пума веб сервер
Единорог веб сервер
DataMapper Орм
Продолжение Орм
Mongodb Орм
Виноград API
Graphql API
Net :: http Стандартная библиотека
Que Фоновая работа
Sidekiq Фоновая работа
Задержка работы Фоновая работа
Реза Фоновая работа
Шориукен Фоновая работа
Грабли Жемчужина

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

Веб -фреймворки и API

AppSignal поддерживает инструментальные инструменты веб-запросов в Ruby на Rails, Padrino и Sinatra Out-Use-Box. API с использованием винограда или GraphQL GEM также поддерживаются.

Рубин на рельсах

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

Возможно даже отслеживать, сколько времени потребовалось для HTTP -запросов, чтобы прибыть в приложение Rails через LoadBalancer веб -сервера. Если он не включен по умолчанию, настройте Запрос времени очереди Отслеживание заголовка и AppSignal автоматически отображат время очереди.

Graphql

AppSignal поддерживает GraphQl Gem для Ruby Анкет Он придаст каждый запрос GraphQL, который поступает и обеспечит разбивку всех событий в запросе. Вы сможете увидеть, сколько времени потребовалось, чтобы разобрать, проверить и выполнить ваши резолюры. События из веб -структуры приложения и вызовов базы данных, конечно, включены в этот разбив.

Это здорово для тех, кто хочет отлаживать запросы GraphQL, которые, кажется, занимают много времени, и вы не уверены, где может произойти замедление. Не забывайте о Наша аномалия триггеры Здесь также — они могут быть очень полезны для предупреждения, когда время запроса достигает определенного порога.

Синатра, Падрино и Виноград

Sinatra, Padrino и Grape — это веб -сайты и API -рамки для Ruby, которые могут быть частью приложения по -разному. Они являются либо автономным приложением, либо установленным на более крупном приложении Rails. В зависимости от того, как приложение установлено на веб -сервере, необходимы различные шаги установки для Синатра , Падрино и Виноград Анкет

После установки Sinatra, Padrino, виноградные запросы являются инструментами: ошибки и измерения производительности сообщаются, когда трафик попадает в API. Каждая (API) конечная точка является его собственным действием в AppSignal, чтобы легко найти, с какой конечной точкой столкнулась с какой ошибкой. Как и в случае приложений Rails, разбивка производительности дает представление о том, какие запросы базы данных или другие детали или приложение было медленнее, чем другие.

Базы данных

Активная запись и другие ОРМ

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

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

Интеграция показывает вам отслеживание для вызовов базы данных, поэтому вы можете увидеть, какой запрос является корнем вашего зла (или гениальности) 😉

N+1 запросы

Обеспокоенные могут возникнуть запросы n+1, возникающие в запросе, и это то, что замедляет его? Если мы обнаружим запросы n+1, предупреждение появится на временной шкале событий для обнаруженных событий.

Редис

С интеграцией Redis вы увидите, что ваши звонки в Redis появляются на временной шкале событий:

Вы также сможете увидеть имя команды, отправленное Redis, и адрес экземпляра Redis, который был сделан запросом:

Это отличная новость для тех, кто хочет отладить долгое время звонки в кеш Redis. Вы даже можете установить аномальный триггер, чтобы отправить предупреждение по запросам, которые работают в течение супер долгого времени!

Фоновая работа

Всякий раз, когда фоновая работа в очереди с помощью Sidekiq, Doyed:: Job, Resque, Shoryuken и Que AppSignal автоматически сообщают об ошибках и измерениях производительности. Все Активная работа Также поддерживаются адаптеры, а некоторые библиотеки работы, такие как Sidekiq и Dopend:: Отчет о работе еще больше метаданных из самих библиотек.

Отправка электронных писем с Action Mailer

Если Rails Mailers, использующие Mailer, настроены на Дополнение_латер Они также будут направлены через активную работу и могут рассчитывать на тот же уровень инструментов.

Вебсокеты

Использование кабеля действий в приложении Rails? AppSignal автоматически сообщает об ошибках и измерениях производительности для сообщений и подписок. Каждое сообщение предназначено отдельно, поэтому даже длительные каналы будут сообщать о всей деятельности. Они сгруппированы за действие, давая четкий обзор того, как выполняется каждое отдельное действие.

Попробуйте AppSignal: мониторинг сделан легким и сладким 🍪

За последние 7 лет мы помогли тысячам разработчиков автоматически инструктировать их код, и мы хотели бы вас Попробуйте нас тоже Анкет Когда вы это сделаете, не стесняйтесь протянуть руку, мы отправим вам бесплатную коробку Stroopwafels также.

Пса Если вы помогаете миру с отличным проектом OSS, Мы помогаем вам в ответ с бесплатной учетной записью приложений. Распространите информацию на сопровождающих, которых вы цените!

Оригинал: «https://dev.to/appsignal/the-easiest-way-to-monitor-ruby-automatic-instrumentation-44af»