[JAVA] Make jstat logs available for immediate viewing in Excel

When I was doing a memory-related survey, I was told that I really wanted to use Excel for aggregation, so I tried it for the time being.

The usual jstat log appears as follows.

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
512.0  512.0   0.0    0.0   124928.0  6358.9   83968.0    42417.6   65064.0 58754.0 9256.0 7392.2  15501   94.212 15488 1702.193 1796.405

For the time being, if the date and comma can be separated, it seems that it can be read in Excel as it is, so I tried using sed and awk. Since the running application is a Windows environment, install it in advance so that sed and awk can be executed. When I tried it on Mac, I got angry if there was no awk strftime, so I installed gawk.

awk: calling undefined function strftime

So, I tried various things and it became as follows.

 jstat -gc <process id> 10s | gawk '{print strftime("%Y/%m/%d-%H:%M:%S"), $0; fflush();}' | sed -e 's/^  *//g; s/  */,/g' >> jstat.csv

Now the output will be as follows.

2018/04/28-23:28:46,S0C,S1C,S0U,S1U,EC,EU,OC,OU,MC,MU,CCSC,CCSU,YGC,YGCT,FGC,FGCT,GCT,
2018/04/28-23:28:46,512.0,512.0,0.0,0.0,124928.0,4831.7,83968.0,42283.1,65064.0,58754.0,9256.0,7392.2,15507,94.412,15494,1703.366,1797.778
2018/04/28-23:28:47,512.0,512.0,0.0,0.0,124928.0,4831.7,83968.0,42283.1,65064.0,58754.0,9256.0,7392.2,15507,94.412,15494,1703.366,1797.778

The header will also have a date, but that's a compromise.

Recommended Posts

Make jstat logs available for immediate viewing in Excel
Make html available in Vapor
Make a snippet for Thymeleaf in VS Code