OpenSource APM Pinpoint

    continuous insights

    Good to you.

    Application Performance Monitoring (APM) monitors the tasks of monitoring, controlling the availability and directly performance of applications.
    On Habr's pages, free AWP Glowroot and MoSKito were already covered , but Pinpoint remained in the shadows.

    I chose the open source workstation, which are available today as an alternative to paid tools, based on the specifics of our applications and customer requirements, where cloud solutions are completely excluded. Earlier on one of the projects I used Dynatrace software - one of the innovators and leaders in the field of APM. The company previously gave the opportunity to use its product legally after a trial period.

    The developers are positioning Pinpoint as a tool for highly scalable distributed systems that will allow you to:

    • see the map and application component topologies
    • monitor real-time metrics
    • see all transactions
    • install Agents without editing the code of your applications
    • get less than 3% increase in load on your system when removing metrics

    On April 1, 2018, support for the following modules was announced:

    • 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

    But I believe that for standalone systems, it fits perfectly, and in the future there will be the possibility of scaling along with the increasing load on your system.

    Pinpoint consists of six main components:

    • Apache HBase - as a metrics store
    • Apache ZooKeeper - as a configuration and synchronization service
    • Apache Flink - streaming engine
    • Collector - agent receiving metrics
    • WebUI - user interface
    • Agent - Metrics Send Agent

    Collector and WebUI are war containers, Agent jar file for profiling, which without any changes to your application code is added to JAVA_OPTS. Optionally, developers suggest for WebUI to use the Mysql DBMS to configure users, groups and alerts.

    For easy installation, there is an official pinpoint-docker repo.

    The main page quite clearly displays a picture of the components of the application.

    image

    You can examine in detail the transaction and find a bottleneck.

    image

    There is an option to display metrics in real time.

    image

    It is possible to examine in detail what was happening at the right time.

    image

    Pinpoint is a great tool that is definitely worth having in your arsenal.

    Happy Day to the system administrator!

    Also popular now: