Skip to content

YaSuenag/ulviewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UL Viewer CodeQL

UL Viewer is log parser for JEP 158: Unified JVM Logging and JEP 271: Unified GC Logging.

How to use

Start application

Linux x64

$ cd ulviewer-<version>-Linux-amd64/bin
$ ./ulviewer

Windows x64

  • Run ulviewer.bat
  • If your machine has WSL (Windows Subsystem for Linux), you can run ulviewer directly.
    • ulviewer is shell script.

Open log(s)

You can open several logs from [File] -> [Open Log] menu.

Log parser wizard

After selecting logs, Log parser wizard is shown.

You can choose log decorations for parsing. [Field value] column shows the value of decoration. You can choose decoration format on [Decoration] column. [Decoration] is ChoiceBox, so you can choose Unified JVM Logging official log decorations.

After that, you can push [OK] button.

Check your logs!

Your logs are shown in main window.

  • You can set filters through log decoration. You can choose decoration from ComboBox, and check on CheckBox.
  • If you want to search logs with some keywords, you can search it through search window.
  • Copy selected log entry when you press CTRL+C.

Drawing chart

If you want to draw chart(s), you have to add tag(s) which indicates time to -Xlog option as below:

  • time (t)
  • utctime (utc)
  • uptime (u)
  • timemillis (tm)
  • uptimemillis (um)
  • timenanos (tn)
  • uptimenanos (un)

In addition, you have to add tags (tg) to log tags.

Java heap chart

  • [Chart] -> [Memory] -> [Java heap]
  • You need to open info level log (gc=info).
  • You can check Java heap memory. This chart shows all STW collection (all major/minor GCs)
  • You can also check specific GC events when you click the plot on the chart.

GC pause time chart

  • [Chart] -> [Memory] -> [Pause time]
  • You need to open info level log (gc=info).
  • You can check GC STW time.
  • You can also check specific GC events when you click the plot on the chart.

Metaspace chart

  • [Chart] -> [Memory] -> [Metaspace]
  • You need to open info level log (gc+metaspace=info).
  • You can check Metaspace usage and capacity. This chart shows Metaspace GC event.

CodeCache chart

  • [Chart] -> [Memory] -> [CodeCache]
  • You need to open debug level log (compilation+codecache=debug).
  • You can check CodeCache usage. This chart stacks CodeCache usage by segments (non-profiled nmethods, profiled nmethods, non-nmethods).

Class histogram

  • [Chart] -> [Memory] -> [Class histogram]
  • You need to open trace level log (gc+classhisto*=trace).
  • You can check class histogram when Full GC is invoked.

VM Operations

  • [Chart] -> [VM Operations]
  • You need to open debug level log (vmoperation=debug).
  • You can check all VM operations.

Show data table

Class loading/unloading

  • [Table] -> [Class loading]
  • You need to open debug level log for class loading, and need to open info level log for class unloading (class+load=debug,class+unload=info).
  • You can check class loading / unloading information.

Age table

  • [Table] -> [Age table]
  • You need to open trace level log (gc+age=trace).
  • You can check age table when GC is invoked.

How to build

You have to use JDK 17 or later.

$ mvn package

License

The GNU Lesser General Public License, version 3.0