Подтвердить что ты не робот

Как работает новая реликвия?

Как новый Relic может подключиться к моему приложению с простой установкой? Как он знает все методы, запросы и т.д.?

Он работает для RoR, PHP и т.д.

Может ли кто-нибудь объяснить технологию, стоящую за ней? Мне интересно использовать приложение Rails, но я хочу сделать это плавно, как New Relic.

Спасибо

4b9b3361

Ответ 1

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

Если вам нужна замена, потому что Newrelic дорогая (и это правильно, это потрясающе для того, что она делает), а затем посмотрите FreeRelic на Github.

Ответ 2

Они используют КОНЦЕПЦИИ ASPECT ORIENTED PROGRAMMING AND Reflection сильно для перехвата вызова исходного метода и добавления инструментов вокруг этого.

Ответ 3

Для решения rails вы можете просто реализовать более подробный уровень ведения журнала (уровень разработки/отладки) и опросить файл production.log для определенных событий, таймингов и т.д.

Ответ 4

В случае Java это обращение к байт-коду. Они "взламывают" ключевые методы вашего сервера приложений и добавляют в него свой код. Затем они отправляют соответствующую информацию транзакции на свой сервер, агрегируя ее, и вы можете увидеть сводку. Это действительно сложный процесс, поэтому я не думаю, что один разработчик может его реализовать.

Ответ 5

Для Java они прикрепляют Java-агент к JVM, который перехватывает вызовы методов и контролирует их. Вы можете использовать AspectJ для репликации одного и того же поведения и регистрации каждого вызова метода туда, где вы хотите, пусть создаст пользовательские метрики Cloudwatch.

Ответ 6

В общем, самоцвет New Relic вставляет своего рода промежуточное программное обеспечение в вашу веб-среду и собирает данные с вашей конечной точки (представьте, как маршрут рельсов) до момента ее ответа. После каждого "времени сбора" (по умолчанию 60 секунд) он отправляет почтовый запрос в службы NR с этими данными. Вы также можете адаптировать нужные данные с помощью пользовательских метрик, пользовательских событий. Также возможно делать запросы с NRQL и строить графики с этим (как вы сделали бы в Graphana). У них также есть сервис настройки для Wordpress, но с самого начала он немного грязный. Некоторые варианты, если вы хотите сэкономить немного денег, это настроить cloudwatch + datadog, но я бы дал шанс их сервису, если время безотказной работы имеет решающее значение для вашего приложения.

Ответ 7

  • Если вы уже знакомы с мониторингом приложений New Relics, то вы, вероятно, знаете об агентах New Relics, которые запускают внутрипроцессные веб-приложения, собирая и сообщая всевозможные сведения о том, что происходит в приложении. RUM использует агентов для динамического внедрения JavaScript в страницы по мере их создания. Внедренный JavaScript собирает информацию о времени в браузере и содержит сведения, которые идентифицируют конкретное приложение и веб-транзакцию, обработанную в бэкэнде, а также то, сколько времени было потрачено в приложении для каждого запроса. Когда страница завершает загрузку в браузере конечных пользователей, информация отправляется обратно в New Relic асинхронно, поэтому это не влияет на время загрузки страницы.

    Вы можете включить/выключить RUM через настройки приложения в New Relic. Также вы можете включить/выключить RUM через файл конфигурации агентов (newrelic.yml - введен флаг 'browser_monitoring auto_instrument).

    Агенты были улучшены для автоматического внедрения JavaScript в HTML-страницы, поэтому использовать RUM так же просто, как установить флажок на панели управления New Relic. Однако, если вы предпочитаете больший контроль, вы можете использовать API-интерфейс New Relics Agent для генерации JavaScript и, таким образом, точно контролировать, когда и где включены сценарии верхнего и нижнего колонтитула.