InspectIT

inspectIT — это открытый инструмент управления производительностью приложений (APM), который служит для диагностики, анализа и мониторинга приложений на Java. Разработка проводится компанией NovaTec Consulting GmbH (ИТ-консалтинг из Штутгарта, Германия) и сообществом inspectIT. С августа 2015 года проект распространяется как открытое программное обеспечение.

Общие сведения
inspectIT
Тип управление производительностью приложений
Разработчики NovaTec Consulting GmbH, сообщество inspectIT
Написана на Java
Операционная система мультиплатформенная
Последняя версия 1.7.11.94 (19 мая 2017)
Тестовая версия 1.8.4.98 (15 сентября 2017)
Репозиторий github.com/inspectIT/ins…
Лицензия Apache License, версия 2.0
Сайт inspectit.rocks

Возможности

inspectIT реализует подход, ориентированный на пользовательские транзакции, при котором анализируются конкретные запросы пользователя. Для каждого запроса к системе, отслеживаемой с помощью inspectIT, формируется подробное дерево вызовов, называемое «последовательностью вызовов». Эти последовательности содержат точное время выполнения всех вызовов инструментируемых методов. Благодаря этой информации можно проанализировать пользовательские запросы и выявить корневые причины возможных проблем. Также в последовательности входит информация о всех запросах к базам данных, что позволяет выявлять и устранять проблемы в уровне доступа к базе или отдельных запросах.

Начиная с версии 1.8.1, inspectIT поддерживает функции мониторинга реальных пользователей, фиксируя взаимодействие пользователей, например, с сайтом или веб-приложением.

Архитектура

Архитектура inspectIT состоит из трёх основных компонентов:

  • inspectIT Agent — интегрируется в контролируемую систему, собирает диагностическую информацию с заданных точек измерения и передаёт собранные данные на центральный сервер inspectIT Server. Агент спроектирован так, чтобы минимизировать дополнительную нагрузку (oверхед) на целевую систему по CPU и памяти.
  • inspectIT Server (также централизованное хранилище измерений, CMR) — принимает, обрабатывает и хранит диагностическую информацию от агент-процессов inspectIT и предоставляет её для пользовательского интерфейса.
  • inspectIT User Interface — приложение на основе Eclipse RPC, предназначенное для анализа диагностической информации, поступающей от сервера inspectIT Server.

Принцип работы

Во время загрузки классов JVM в процесс загрузки классов интегрируется агент на Java[1][2], который может перехватывать и модифицировать байт-код Java загружаемых классов. В отличие от профилировщиков, inspectIT внедряет точки измерения только в определённых местах, чтобы минимизировать нагрузку от измерений. Такой подход позволяет пользователю прозрачно внедрять метки в приложение без необходимости изменения его исходного кода.

История и название

Разработка inspectIT началась в 2005 году под названием NovaSpy как закрытое ПО. В 2008 году проект был переименован в inspectIT, а первый крупный релиз (версия 1.0) вышел в марте 2010 года. В дальнейшем регулярно выпускались новые версии.

Открытый исходный код

14 августа 2015 года inspectIT был открыт как свободное программное обеспечение по лицензии Apache License, версия 2.0 (ALv2).

Примечания

  1. java.lang.instrument (Java 2 Platform SE 5.0). docs.oracle.com. Дата обращения: 26 апреля 2017. Архивировано 15 августа 2025 года.
  2. Java Platform SE 6. docs.oracle.com. Дата обращения: 26 апреля 2017. Архивировано 2 апреля 2024 года.

Ссылки