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).
Примечания
- ↑ java.lang.instrument (Java 2 Platform SE 5.0). docs.oracle.com. Дата обращения: 26 апреля 2017. Архивировано 15 августа 2025 года.
- ↑ Java Platform SE 6. docs.oracle.com. Дата обращения: 26 апреля 2017. Архивировано 2 апреля 2024 года.
Ссылки
- https://www.inspectit.rocks/ — официальный сайт
- https://inspectit-performance.atlassian.net/wiki — документация
- http://www.novatec-gmbh.de — сайт разработчика