Как системы APM контролируют и собирают машинные взаимодействия?
Итак, я в целом понимаю, как такие вещи, как инструмент New Relic для приложения.NET - API CLR Profiler имеет смысл. Но я не могу понять, как такие вещи, как AppDynamics, понимают корреляции между серверами и инструментами, которые на самом деле не основаны на.NET. Может ли кто-нибудь пролить свет на то, как эти вещи работают внутри?
3 ответа
Then you also have non-intrusive monitoring that helps you proactively exercise your applications via recorded scripts and monitor response time to get alerted of problems and slow downs. Many APM tools in this space (Gomez now AppDynamics, Catchpoint, SolarWinds APM, Ipswitch APM, etc.).
Если у вас есть среда Citrix или Microsoft, в которой изображение приложения доставляется в пользовательский интерфейс клиента, вам следует поискать сценарии с возможностями распознавания изображений, использующими фактический пользовательский интерфейс подключения клиента. Затем мониторинг выполняется путем сравнения экрана с базовыми ответными изображениями, созданными во время разработки тестового сценария. Возможно, стоит взглянуть на http://www.tevron.com/load-testing-citratest-vu-load-testing-methodology.aspx
Продукты APM применяют каждый язык по-разному, они используют комбинацию API (таких как API профилирования), а также внедрение кода в приложение с использованием других методов. Это обеспечивает все виды метрик, и вы можете наблюдать соединения (точки входа и выхода) приложения, чтобы вы могли определить, подключается ли приложение где-то еще. Вы также можете перехватывать и хранить такие вещи, как вызовы SQL или HTTP и т. Д., Основываясь на расшифровке вашего протокола в коде.
Теперь на ваш главный вопрос, как работает AppDynamics. Каждый инструмент APM делает это по-своему, если он вообще это делает. Dynatrace и AppDynamics имеют разные модели трассировки. У каждого есть свои плюсы и минусы. AppDynamics внедряет идентификатор транзакции в полезную нагрузку протокола, это делается безобидным образом, но нисходящее соединение, если у него есть агент, может взять эти данные и сопоставить их с транзакцией. Если нет агента, это не сломает приложение. Dynatrace отправляет намного больше данных о своих трассировках в восходящий коллектор, который по-разному объединяет транзакцию. Один распределен (высокоуровневый, но сложный для обратного проектирования протоколов), а другой легче прошивать, но требует большой обработки и пропускной способности сети.
Мониторинг APM используется для измерения времени отклика. Все мы знаем из собственного опыта, что ничто не раздражает конечных пользователей больше, чем неожиданно медленное время отклика. На самом деле медлительность, возможно, является более серьезной проблемой, чем простои приложений и недоступность. Исследования на веб-сайтах электронной коммерции показывают, что замедления происходят в десять раз чаще, чем простои, и эти совокупные замедления в два раза больше влияют на прибыль интернет-магазина. Это означает, что важно убедиться, что ваше приложение запущено и работает, но этого недостаточно. Помимо базового мониторинга доступности, такого как тестирование IP-протоколов и сетевых служб с помощью автоматизированного программного обеспечения, которое может выдавать оповещения в режиме реального времени, как только функциональные возможности выходят из строя или опускаются ниже установленных пороговых значений, - комплексный подход к APM должен учитывать ряд дополнительных факторов. как указано в предыдущем разделе, чтобы повысить общую надежность и скорость работы вашего приложения. Я знаю приложения, использующие Selenium, чтобы проверить время отклика и получить информацию, когда транзакция неверна.