Доброго вам.
Мониторинг производительности приложений (Application Performance Monitoring, APM) решает задачи контроля, управления доступностью и непосредственно производительностью приложений.
На страницах Хабра уже освещались свободные АРМ Glowroot и MoSKito, а вот Pinpoint остался в тени.
К выбору АРМ с открытым исходным кодом, которые доступны сегодня в качестве альтернативы платным инструментам, я пришел исходя из специфики наших приложений и требований заказчика, где облачные решения абсолютно исключены. Ранее на одном из проектов я использовал ПО Dynatrace — одного из инноваторов и лидеров в сфере APM. Компания ранее давала возможность, пользоваться её продуктом легально после пробного периода.
Разработчики позиционируют Pinpoint как инструмент для высокомасштабируемых распределённых систем, который позволит вам:
- увидеть карту и топологии компонентов приложения
- осуществить мониторинг метрик в реальном времени
- видеть все транзакции
- установить Agents без правки кода ваших приложений
- получить менее 3% увеличения нагрузки на вашу систему при снятии метрик
На 1 апреля 2018г., анонсирована поддержка следующих модулей:
- JDK 6+
- Tomcat 6/7/8, Jetty 8/9, JBoss EAP 6, Resin 4, Websphere 6/7/8, Vertx 3.3/3.4/3.5
- Spring, Spring Boot (Embedded Tomcat, Jetty)
- Apache HTTP Client 3.x/4.x, JDK HttpConnector, GoogleHttpClient, OkHttpClient, NingAsyncHttpClient
- Thrift Client, Thrift Service, DUBBO PROVIDER, DUBBO CONSUMER
- ActiveMQ, RabbitMQ
- MySQL, Oracle, MSSQL, CUBRID,POSTGRESQL, MARIA
- Arcus, Memcached, Redis, CASSANDRA
- iBATIS, MyBatis
- DBCP, DBCP2, HIKARICP
- gson, Jackson, Json Lib
- log4j, Logback
Но я считаю, что и для standalone систем он подойдет как нельзя лучше, а в будущем останется возможность масштабирования вместе с ростом нагрузки на вашу систему.
Pinpoint состоит из шести основных компонентов:
- Apache HBase — как хранилище метрик
- Apache ZooKeeper — как сервис конфигурирования и синхронизации
- Apache Flink — потоковый движок
- Collector — агент приёма метрик
- WebUI- пользовательский интерфейс
- Agent — агент отправки метрик
Collector и WebUI это war контейнеры, Agent jar файл для профайлинга, который без каких-либо изменений кода вашего приложения добавляется в JAVA_OPTS. Опционально разработчики предлагают для WebUI использовать СУБД Mysql для конфигурирования пользователей, групп и оповещений.
Для простой установки имеется официальный pinpoint-docker репо.
Главная страница довольно наглядно отображает картину компонентов приложения.
Можно рассмотреть детально транзакции и найти узкое место.
Есть вариант вывода метрик в реальном времени.
Имеется возможность детально рассмотреть, что происходило в нужный момент времени.
Pinpoint — замечательный инструмент, который однозначно стоит иметь в своём арсенале.
С Днём системного администратора!
Автор: alexovchinnicov