Coder Social home page Coder Social logo

intellij-apm-plugin's Introduction

Java Application Performance Monitoring Plugin for Intellij

Company Company

Plugin Description

This is a Java Application Performance Monitoring Plugin for Intellij, that tracks every detail of the JVM (CPU, thread, memory, garbage collection, etc) and also monitors applications live in production environments.

The Plugin was built using gradle with the Intellij Platform SDk.

In addition, this plugin uses the NewRelic JFR Daemon to do the application profiling. You can also find more information about NewRelic profiling here.

Features

Metrics

With the New Relic's real-time profiling for Java using Java Flight Recorder (JFR) metrics, you can run steadily, always-on profiling of your Java code in production environments. This Plugin uses NewRelic JFR Daemon gain insight into the JVM and its operations, such as analysis from the ThreadLocal Allocation Buffer (TLAB) that can pinpoint which threads are allocating which object types. This can often be used in connection with garbage collection analysis to reveal not only what is being thrown away, but also where it is coming from.

It includes the following metrics:

  - Flight Recorder
  - Java Application
  - Java Virtual Machine
  - Operating System

Events

The JFR daemon serves as a transporter for JFR events and allows you to control the ability of the New Relic One platform for visualizing your JVM's behavior.

It includes the following events:

  - JVM Information
  - JFR Compilation
  - JFR Method Sample
  - Java Monitor Wait

Graphs & Charts

Flame Graph

plugin

CPU Load Metric

plugin

Installation

Procedure To install Plugin from Disk

  • Manually:

    Download the latest release and install it manually using Settings/Preferences > Plugins > โš™๏ธ > Install plugin from disk...

    Installing Plugin from Disk

    plugin

  • Navigate to the downloaded jar from the previous step and click on OK

  • A preview of the NewRelic Profiler will show on the right side, then you click Apply and OK. Afterwards the NewRelic profiler window will be seen at the lower toolbar as displayed below.

    plugin

    Supported IntelliJ Version

    • This plugin currently supports the intelliJ versions 2020.1.* up to the current version.

Required IntelliJ Setup

Building Your Own Artifact.

  • Steps To Follow

    • Go to: File > Project Structure

    • Select Artifacts > + > Jar > From Modules With dependencies

      plugin

    • Choose the main class and click on OK.

      plugin

    • Ensure to check the "Include in project build", afterwards click on Apply and OK.

      plugin

    • Go to: Build Menu > Build Artifacts... > Select your application jar > Build

    • After building, the project's jar will be generated into the directory out > artifacts as shown in the image below

      plugin

    Notice

    • Ensure that the name of the jar generated and its directory have the same name as the name of your application as shown in the image above.

To Run with profiler

Notice

  • Before you run your application with the profiler, open the New Relic Java Profiler tool window to activate its local server. Only open the tool window in the project you wish to profile.
  • Profiling can be done multiple times on the same project once the server is still active.
  • After profiling, close the project window entirely to deactivate the local server.
  • The same process can be repeated for another project.

Steps to follow

  • To Run with profiler: Goto Run > Run with NewRelic Profiler

  • A pop-up will appear which will require that you set your main class as depicted in the image below.

    plugin

  • For gradle projects, the module has to be set to the location of the main class before the main class can be found and set. For example in the image below, the main class (GradleSpringTestProjectApplication) is located in the "main" module before the project's root module. Therefore, the module will be set to the option highlighted below. plugin

  • Click on Run

  • Subsequently, the NewRelic run configuration will be saved and added to the run configuration list

  • The results below indicates that your application is about to be profiled plugin

  • You can then view the data in the tool window

Caution:
  - Do not tamper with the Vm options and Environment variables unless you know what you are doing.
  - Ensure you stop NewRelic profiler from running when you are done profiling your application in order to avoid getting full heap error or warnings.

Other Tools Used

  • Spiermar's D3.js Flame Graph Library was used to develop the flame graph
  • Spiermar's Burn Library was used to help convert the profiled data into the required format needed for the flame graph. The Burn Library is originally in GoLang and aspects of it was converted to Java for the purpose of this plugin.
  • D3.js Library for the Metric Graphs

intellij-apm-plugin's People

Contributors

zanetatt avatar knocksto avatar linocks avatar justturn avatar phelim54 avatar yaa-providence-design avatar phel54 avatar providence-design avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.