Coder Social home page Coder Social logo

ksar's Introduction

kSar

Build Status

Quick Start

ksar is a sar graphing tool that can graph for now linux, maOS and solaris sar output. sar statistics graph can be output to a pdf file. This is a fork of http://sourceforge.net/projects/ksar/

Prerequisite:

  • Java 8 or later

Download a pre-built jar from GitHub releases page.

$ java -jar ksar-5.2.4-all.jar

Building from source

Prerequisite:

  • JDK 8 or later

The following command would build and launch kSar from sources:

$ ./gradlew runShadow

or

$ ./gradlew shadowJar
$ java -jar build/libs/ksar-5.2.4-SNAPSHOT-all.jar

ksar's People

Contributors

elkrieg avatar masatake avatar peterpitterling avatar pitterling avatar renovate-bot avatar scr34m avatar tschoening avatar vest avatar vlsi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ksar's Issues

kSar not reading sar file

We have three identical servers that produce daily sar reports and when loaded into kSar the information is blank. I have attached an example sar file from 09-28-16 for you to verify these findings.

OS - RHEL 6.5
Kernel - 2.6.32-431.el6.x86_64
sysstat - 9.0.4-22.el6_5.1

sar28.txt

use Gradle 2.1 or higher ?

cancelation of a DEBUG session gives me this error message

image

although a newer version of gradle is in my repository directory .. it seems it takes the one under my user directory .. is this because of this definition in the gradle-wrapper.properties?

.\ksar-java\gradle\wrapper\gradle-wrapper.properties

#Wed Apr 27 22:26:08 JST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-bin.zip

DD/MM/YY 12:59:59 format

DD/MM/YY 12:59:59 format is not supported.
See below
This is 04-August-2017

Linux 2.6.32-504.el6.x86_64 (hidden) 	04/08/17 	_x86_64_	(2 CPU)

00:00:01        CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest     %idle
00:10:01        all      1.30      0.00      0.50      0.06      0.00      0.00      0.01      0.00     98.13

How to specify "Plot ordering" ?

Plots are ordered alphabetically and not by XML definition

image

Would it be possible to specify the ordering of Plots ? e.g. tps, sector, service ...

add gitignore file

i used GitHubs .gitgnore file for NetBeans projects as basis, i would propose:

kSar/nbproject/private/
kSar/build/
kSar/nbbuild/
kSar/dist/
kSar/nbdist/
kSar/nbactions.xml
kSar/.nb-gradle/

kSar/distrib/

Implement Logging - SLF4J?

currently System.out.println and System.err.println statements and a few Logger.getLogger(My class.getName()).log(Level.SEVERE, null, ex) statements are used for logging purpose.

ToDo: implement consistent logging facility

I never used the Java Logging options, but what i read so far - SLF4J - seems to be a good choice.

What do you think ?

QUESTION: Documentation for XML Graph Syntax available?

is somewhere documentation available what "type, format base, factor" mean?

            <Graph name="KMEM2" Title="KMem" type="unique">
                <Plot Title="KMem">
                    <cols>kbmemfree kbmemused kbbuffers kbcached kbcommit kbactive kbinact kbdirty</cols>
                    <format base="1024" factor="1024"></format>
                </Plot>
                <Plot Title="%">
                    <cols>%memused %commit</cols>
                </Plot>
            </Graph>

NPE during file parsing with MM/DD/YYYY AM|PM date

unable to parse date 09/15/2016
Exception in thread "Thread-6" java.lang.NullPointerException: date
        at java.util.Objects.requireNonNull(Objects.java:228)
        at java.time.LocalDateTime.of(LocalDateTime.java:374)
        at net.atomique.ksar.Parser.Linux.parse(Linux.java:102)
        at net.atomique.ksar.kSar.parse(kSar.java:145)
        at net.atomique.ksar.FileRead.run(FileRead.java:78)

devsp105cn_14_09_2016.txt

Support new sysstat 11.6 outputs

SLES15 will be delivered with sysstat 11.6*

implement new outputs
[x] - memory - more fields
[x] - block device - new fields
[x] - usb - new field product

Global Ordering of Stack + Plot charts should follow XML definition

  • while ordering of series within Stacks and Plots are now defined by XML.

Stack Charts will always be displayed before Plot Charts - e.g. CPU chart
image

Plots and Stacks are handled in different lists --> GraphConfig.java
later on Graph->makegraph will always render Stack graphs before Plot graphs.

for (StackConfig tmp : graphconfig.getStacklist().values()) {
...
for (PlotConfig tmp : graphconfig.getPlotlist().values()) {

TODO
XML definition should define not only ordering of series but also chart types

Timezone in Window title is wrong - showing local timezone

DateTime is shown in the window title.

In this example .. data has been collected on system with GMT timezone

image

AllParser.java --> setDate is just calling SimpleDateFormat, which is using the current LOCALE, if nothing is specified.

            dateSimple1 = new SimpleDateFormat(dateFormat).parse(s);            
            cal.setTime(dateSimple1);
            day=cal.get(cal.DAY_OF_MONTH);
            month=cal.get(cal.MONTH)+1;
            year=cal.get(cal.YEAR);
            dateSimple2 = new SimpleDateFormat(dateFormat).parse(sarStartDate);
            dateSimple3 = new SimpleDateFormat(dateFormat).parse(sarEndDate);

Timezone, LOCALE information could not be extracted from the SAR data, therefore the time should just be represented as is, without any timezone information.

NPE on click About menu

Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
        at net.atomique.ksar.UI.AboutBox.initComponents(AboutBox.java:60)
        at net.atomique.ksar.UI.AboutBox.(AboutBox.java:26)
        at net.atomique.ksar.UI.Desktop.AboutMenuActionPerformed(Desktop.java:255)
        at net.atomique.ksar.UI.Desktop.access$700(Desktop.java:29)
        at net.atomique.ksar.UI.Desktop$8.actionPerformed(Desktop.java:234)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
        at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
        at java.awt.Component.processMouseEvent(Component.java:6525)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
        at java.awt.Component.processEvent(Component.java:6290)
        at java.awt.Container.processEvent(Container.java:2234)
        at java.awt.Component.dispatchEventImpl(Component.java:4881)
        at java.awt.Container.dispatchEventImpl(Container.java:2292)
        at java.awt.Component.dispatchEvent(Component.java:4703)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
        at java.awt.Container.dispatchEventImpl(Container.java:2278)
        at java.awt.Window.dispatchEventImpl(Window.java:2750)
        at java.awt.Component.dispatchEvent(Component.java:4703)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.awt.EventQueue$4.run(EventQueue.java:731)
        at java.awt.EventQueue$4.run(EventQueue.java:729)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.NullPointerException
        at java.io.Reader.(Reader.java:78)
        at java.io.InputStreamReader.(InputStreamReader.java:72)
        at net.atomique.ksar.VersionNumber.(VersionNumber.java:30)
        at net.atomique.ksar.VersionNumber.(VersionNumber.java:19)
        ... 43 more

There is a mismatch on interface traffic chart

There is a mismatch on interface traffic chart. In sar data, rxkB/s=791.50 but the chart show 791.50/1000.

00:00:01 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
00:10:02 lo 1507.50 1507.50 791.50 791.50 0.00 0.00 0.00
00:10:02 eth0 225.45 212.00 65.82 63.06 0.00 0.00 0.02

Clarify which Linux sar (sysstat) versions should be supported

Some definitions and codings are only valid for ancient versions of Linux sysstat

e.g. only valid up to sysstat-4.0.7 (2001 !!)

        //00:20:01     CPU  i000/s  i001/s  i002/s  i008/s  i009/s  i010/s  i011/s  i012/s  i014/s
        if ("CPU".equals(columns[firstdatacolumn]) && line.matches(".*i([0-9]+)/s.*")) {
            currentStat = "IGNORE";
            return 1;
        }

The latest available version on the sysstat download page is 5.0.5 (2004)

kSar.version missing in artifact 5.2.0

Hello,

A small typo in this jar which breaks pdf export:

https://github.com/vlsi/ksar/releases/download/v5.2.0/ksar-5.2.0-all.jar

C:\temp\sar-gamma>java -jar ksar-5.2.0-all.jar
exit
Exception in thread "Thread-4" java.lang.ExceptionInInitializerError
at net.atomique.ksar.Export.FilePDF.run(FilePDF.java:96)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at java.io.Reader.(Unknown Source)
at java.io.InputStreamReader.(Unknown Source)
at net.atomique.ksar.VersionNumber.(VersionNumber.java:30)
at net.atomique.ksar.VersionNumber.(VersionNumber.java:19)
... 2 more

I had to use this older version due to other issues.

Best regards,
Francois

Top level does not show system information

In v5.0.6 information about the system was included, this is not present in v5.2.2. This was also included in PDF export and made identifying the system the report was for easier.

Example:

kSar Info:

OS Type: Linux (automatically detected)
Kernel Release: 2.6.32-642.15.1.el6.x86_64
Hostname: test1
Start of SAR: 03/19/17
End of SAR: 03/19/17

Time range information:
First data point: Sun Mar 19 00:00:02 CDT 2017
Last data point: Sun Mar 19 19:20:01 CDT 2017

Graph range:
First data point: Sun Mar 19 00:00:02 CDT 2017
Last data point: Sun Mar 19 19:20:01 CDT 2017

Detected bottlenecks:
CPU all usr over 25.0
CPU 1 idle under 0.0
CPU 1 usr over 25.0
CPU 2 idle under 0.0
CPU 3 usr over 25.0
CPU 0 idle under 0.0
CPU all idle under 0.0
CPU 2 usr over 25.0
CPU 2 wio over 25.0
CPU 3 idle under 0.0
CPU 0 usr over 25.0
CPU 0 wio over 25.0

add Support for hugepage statistics (-H) added to 9.1.6

sysstat 9.1.6 added hugepages utilization statistics to sar (switch -H). If you run the fullblown collection (-A) it also collects -H statistics.

16:08:50 kbswpfree kbswpused %swpused kbswpcad %swpcad
16:09:00 33554428 0 0.00 0 0.00

16:08:50 kbhugfree kbhugused %hugused
16:09:00 0 0 0.00

16:08:50 dentunusd file-nr inode-nr pty-nr
16:09:00 219610 6336 280180 1

ksar runs into an Exception

[Stat change from KMEM2 to KSWAP
KSwap kbhugfree is NaN
Exception in thread "Thread-2" java.lang.ArrayIndexOutOfBoundsException: 4
at net.atomique.ksar.Graph.Graph.parse_line(Graph.java:108)
at net.atomique.ksar.Parser.Linux.parse(Linux.java:196)
at net.atomique.ksar.kSar.parse(kSar.java:145)
at net.atomique.ksar.FileRead.run(FileRead.java:78)]

cpu parsing on AIX error

5.0.6 parsed AIX CPU well, but in latest versions tables like

00:00:00 %usr %sys %wio %idle physc %entc
00:01:00 9 1 1 89 1.00 16.7

Are not recognized as CPU

Java9 runtime - SAX Parser IO Exception java.net.MalformedURLException: null

2018-01-27 00:07:07.439 [main] ERROR net.atomique.ksar.XMLConfig - SAX Parser IO Exception
java.net.MalformedURLException: null
	at java.net.URL.<init>(Unknown Source) ~[?:?]
	at java.net.URL.<init>(Unknown Source) ~[?:?]
	at java.net.URL.<init>(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) ~[?:?]
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source) ~[?:?]
	at javax.xml.parsers.SAXParser.parse(Unknown Source) ~[?:?]
	at net.atomique.ksar.XMLConfig.load_config(XMLConfig.java:65) [ksar-5.2.4-SNAPSHOT-all.jar:5.2.4-SNAPSHOT]
	at net.atomique.ksar.XMLConfig.<init>(XMLConfig.java:40) [ksar-5.2.4-SNAPSHOT-all.jar:5.2.4-SNAPSHOT]
	at net.atomique.ksar.GlobalOptions.<init>(GlobalOptions.java:58) [ksar-5.2.4-SNAPSHOT-all.jar:5.2.4-SNAPSHOT]
	at net.atomique.ksar.GlobalOptions.<clinit>(GlobalOptions.java:30) [ksar-5.2.4-SNAPSHOT-all.jar:5.2.4-SNAPSHOT]
	at net.atomique.ksar.Main.main(Main.java:79) [ksar-5.2.4-SNAPSHOT-all.jar:5.2.4-SNAPSHOT]
Caused by: java.lang.NullPointerException
	... 24 more

ERROR net.atomique.ksar.parser.HPUX - unable to parse time

Hi,

when I want to load sar from hp-ux server I'm getting following error:

11:12:55.946 [main] TRACE net.atomique.ksar.Main - main - Start
11:12:55.949 [main] TRACE net.atomique.ksar.Main - Java runtime Version : 1.8.0_151-8u151-b12-1-b12
11:12:55.950 [main] TRACE net.atomique.ksar.Main - ksar Version : 5.2.4
11:12:55.952 [main] TRACE net.atomique.ksar.GlobalOptions - load Config
11:12:56.067 [main] TRACE net.atomique.ksar.GlobalOptions - load GlobalOptions
11:12:56.112 [main] TRACE net.atomique.ksar.Main - MainScreen
11:12:56.178 [AWT-EventQueue-1] TRACE net.atomique.ksar.ui.Desktop - screen [0] boundaries: java.awt.Rectangle[x=
0,y=0,width=1680,height=1050]
11:12:56.179 [AWT-EventQueue-1] TRACE net.atomique.ksar.ui.Desktop - screen [1] boundaries: java.awt.Rectangle[x=
1680,y=0,width=1680,height=1050]
11:12:56.237 [AWT-EventQueue-1] TRACE net.atomique.ksar.ui.Desktop - desktop window boundaries: java.awt.Rectangl
e[x=90,y=60,width=1500,height=930]
11:12:56.393 [Thread-3] ERROR net.atomique.ksar.parser.HPUX - unable to parse time 00:00:01
java.time.format.DateTimeParseException: Text '00:00:01' could not be parsed: Unable to obtain LocalTime from Tem
poralAccessor: {NanoOfSecond=10000000, HourOfDay=0, MinuteOfHour=0},ISO of type java.time.format.Parsed
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920) ~[?:1.8.0_151]
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1855) ~[?:1.8.0_151]
at java.time.LocalTime.parse(LocalTime.java:441) ~[?:1.8.0_151]
at net.atomique.ksar.parser.HPUX.parse(HPUX.java:64) [ksar-5.2.4-SNAPSHOT-all.jar:5.2.4-SNAPSHOT]
at net.atomique.ksar.kSar.parse(kSar.java:145) [ksar-5.2.4-SNAPSHOT-all.jar:5.2.4-SNAPSHOT]
at net.atomique.ksar.FileRead.run(FileRead.java:78) [ksar-5.2.4-SNAPSHOT-all.jar:5.2.4-SNAPSHOT]
Caused by: java.time.DateTimeException: Unable to obtain LocalTime from TemporalAccessor: {NanoOfSecond=10000000,
HourOfDay=0, MinuteOfHour=0},ISO of type java.time.format.Parse

Colour vision deficiency issues

Hi,

Really love the tool, going to help a great deal when performing tests. However I have one slight issue, maybe a quick way round maybe not.

I'm colour blind with Red, Green and Blue and struggle with similar colours quite badly and as you can imagine the graphs are very hard to decipher which colour matches the line on the graph.

If there is no option (I can't see anything set anywhere), it's something I will look into contributing as I know it'll help out many users.

Thanks!

About Box: showing outdated information

@vlsi

  • we should adjust the values, right?
  • is the BSD license still applicable?
        urllabel.setText("website: http://sourceforge.net/projects/ksar/");
        jPanel2.add(urllabel);

        authorlabel.setText("Author: xavier cherif");
        jPanel2.add(authorlabel);

        licencelabel.setText("License: BSD (see LICENCE file)");
        jPanel2.add(licencelabel);

        tipslabel.setText("ARS LONGA, VITA BREVIS");

Window doesn't respect placement

When launched, at least under KDE 5, the splash and main window do not respect KDE's placement and will appear in odd places in multi monitor setups. On my desktop with 4 monitors the main window appears almost entirely off screen and is sized to be very big. I know it's nit picky but every time I launch the application I have to move it so it can be used. Would be nice if it would open with a respectable size (fits on one monitor) and is at least centered on one monitor, preferably where the mouse is. If not there then on the primary monitor, and in the worst case, just centered on whatever monitor.

Change disk names

Feature Request.

Currently the disk related graphics (Devices) show usage per device showing the direct device name i.e (dev253-2)

Is it possible to add an option to change those names to the mount points for a better understanding and visualization. To get the actual mount point of each device, I see that there could be 2 options

  1. asking the user to put the real name
  2. asking the user to put the output of a lsblk command, and getting the real names from that output.

command line feature for generating reports in PNG and PDF

I am trying out run kSar from commandline in a Jenkins job. I wish to produce PDF graphs from sar reports without using GUI manually. I am running sar with the following command:

java -jar /opt/ksar/ksar-5.2.2-all.jar -input "${WORKSPACE}/report.txt" -outputPDF ${BUILD_NUMBER}-${ENVIRONMENT}/${ENVIRONMENT}${day}.${d}${formatstarttime}-${formatendtime}.pdf

Instead of generating a PDF, the process is running, but produces no output. I just cancel it manually without obtaining the PDF that I need. How to run ksar from commandline to generate PDF with graphs?

Process multiple sar files from command line

It seems that in older versions it was possible to open multiple sar files and they all remained in sync (i.e. selecting/showing CPU on one display would open CPU on all other displays).

This was a handy feature : https://sourceforge.net/p/ksar/support-requests/13/

With the new version even -help is broken:
vvl@dhws029> java -jar ksar-5.2.3-all.jar -help
ksar Version : 5.2.3

The old version help used to show:
-input : argument must be either ssh://user@host/command or cmd://command or file://path/to/file or just /path/to/file

I hope these regressions are non-intentional and are still available.

ERROR net.atomique.ksar.kSar - unknown parser (maybe due to Japanese time?)

I just installed and configured sar, then compiled and ran kSar.

In kSar, after I open my /var/log/sysstat/sa26 file I just see this:

screenshot from 2018-03-26 18-29-00

This appears in the log:

$ java -jar build/libs/ksar-5.2.4-SNAPSHOT-all.jar
18:18:35.895 [main] TRACE net.atomique.ksar.Main - main - Start
18:18:35.897 [main] TRACE net.atomique.ksar.Main - Java runtime Version : 1.8.0_151-8u151-b12-1-b12
18:18:35.899 [main] TRACE net.atomique.ksar.Main - ksar Version : 5.2.4
18:18:36.089 [main] TRACE net.atomique.ksar.GlobalOptions - load Config
18:18:37.819 [main] TRACE net.atomique.ksar.GlobalOptions - load GlobalOptions
18:18:37.952 [main] TRACE net.atomique.ksar.Main - MainScreen
18:18:38.012 [AWT-EventQueue-1] TRACE net.atomique.ksar.ui.Desktop - screen [0] boundaries: java.awt.Rectangle[x=0,y=0,width=2880,height=1620]
18:18:38.524 [AWT-EventQueue-1] TRACE net.atomique.ksar.ui.Desktop - desktop window boundaries: java.awt.Rectangle[x=90,y=60,width=2700,height=1500]
18:19:48.592 [Thread-4] ERROR net.atomique.ksar.kSar - unknown parser

Some sar data:

$ sar
Linux 4.13.0-25-generic (nico)  2018年03月26日  _x86_64_        (4 CPU)

17時45分02秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
17時47分01秒     all      7.14      0.00      2.13      1.61      0.00     89.12
17時48分01秒     all     12.49      0.00      3.44      1.89      0.00     82.19
17時49分01秒     all      7.89      0.00      2.22      1.61      0.00     88.28
17時50分01秒     all      9.84      0.00      2.78      1.87      0.00     85.51
17時51分01秒     all     10.04      0.00      2.59      1.57      0.00     85.81
17時52分01秒     all      4.58      0.00      1.88      1.78      0.00     91.75
17時53分01秒     all      3.95      0.00      1.92      1.44      0.00     92.69
17時54分01秒     all      5.42      0.00      2.20      1.83      0.00     90.54
17時55分01秒     all      8.11      0.00      2.28      1.41      0.00     88.20
17時56分01秒     all      9.37      0.00      2.62      1.58      0.00     86.44
17時57分01秒     all      6.26      0.00      2.28      2.00      0.00     89.46
17時58分01秒     all      7.59      0.00      2.59      1.50      0.00     88.31
17時59分01秒     all     12.22      0.00      3.11      1.93      0.00     82.75
18時00分01秒     all      6.68      0.00      2.31      1.69      0.00     89.32
18時01分01秒     all      7.42      0.00      2.46      1.56      0.00     88.55
18時02分01秒     all      5.83      0.00      2.10      1.75      0.00     90.32
18時03分01秒     all     12.46      0.00      2.92      1.68      0.00     82.94
18時04分01秒     all      9.39      0.00      2.74      2.33      0.00     85.54
18時05分01秒     all      8.90      0.00      2.50      1.87      0.00     86.74
18時06分01秒     all      6.98      0.00      2.11      1.56      0.00     89.35
18時07分01秒     all      7.14      0.00      2.27      1.43      0.00     89.17
18時08分01秒     all      4.82      0.00      2.04      1.40      0.00     91.74
18時09分01秒     all      5.60      0.00      1.99      1.55      0.00     90.86
18時10分01秒     all      5.18      0.00      2.03      1.46      0.00     91.32
18時11分01秒     all     14.23      0.00      3.10      2.39      0.00     80.29
18時12分01秒     all     11.72      0.00      3.21      1.49      0.00     83.58
18時13分01秒     all     11.58      0.00      3.01      1.49      0.00     83.92
18時14分01秒     all     11.41      0.00      2.90      1.89      0.00     83.80
18時15分01秒     all     11.48      0.01      3.13      2.27      0.00     83.11
18時16分01秒     all     14.10      0.00      3.83      1.93      0.00     80.14
18時17分01秒     all      7.87      0.00      2.45      3.37      0.00     86.31
18時18分01秒     all     20.06      0.00      4.34     20.96      0.00     54.63
18時19分01秒     all     15.36      0.00      2.62      4.10      0.00     77.92
18時20分01秒     all      6.99      0.00      2.15      2.57      0.00     88.29
18時21分01秒     all     11.87      0.00      2.74      1.93      0.00     83.46
18時22分01秒     all      7.13      0.00      2.34      2.36      0.00     88.18
18時23分01秒     all      9.62      0.00      2.58      1.98      0.00     85.82
18時24分01秒     all     10.37      0.00      2.88      1.92      0.00     84.83
18時25分01秒     all      7.01      0.00      2.12      1.73      0.00     89.15
18時26分01秒     all      9.61      0.00      2.60      2.16      0.00     85.62
18時27分01秒     all     10.33      0.00      2.84      2.38      0.00     84.45
18時28分01秒     all      6.42      0.00      2.06      1.42      0.00     90.10
18時29分01秒     all      9.10      0.00      2.36      1.71      0.00     86.83
Average:        all      9.06      0.00      2.57      2.32      0.00     86.05

missing Fixes from ynamikis fork of ksar

@ynamiki, before you started to contribute to this fork, you had a couple of more fixes within your direct fork of ksar which are missing now here:

  • Fix SimpleDateFormat parse with AM/PM format
  • Fix #1, non-effective assignment at PlotConfig#setSize(String)
  • Cleanup + Generics

Is this something you want to apply here as well?

Managing Version Number in a Simple Way

A version number is defined in two locations:

  • build.gradle -- for an artifact (a file name etc.)
  • src/main/resources/kSar.version -- for AboutBox (only "x.y.z" format is accepted, no -SNAPSHOT)

The version should be defined in only one place.

Linux: IO chart is reporting bytes, were data is reported as sector

Hi, the IO chart is showing bread/s and bwrtn/s in the legend and also the chart axis title is byte.
In fact the data delivered by sar is in sector .. bread/s = sector/s = 512 byte

image

Report I/O and transfer rate statistics. The following values are displayed:
tps
Total number of transfers per second that were issued to physical devices. A transfer is an I/O request to a physical device. Multiple logical requests can be combined into a single I/O request to the device. A transfer is of indeterminate size.

rtps
Total number of read requests per second issued to physical devices.

wtps
Total number of write requests per second issued to physical devices.

bread/s
Total amount of data read from the devices in blocks per second. Blocks are equivalent to sectors with 2.4 kernels and newer and therefore have a size of 512 bytes. With older kernels, a block is of indeterminate size.

bwrtn/s
Total amount of data written to devices in blocks per second.

handle files crossing midnight correctly

spans are not handled correctly - the date change is not reflected.
it is added to the chart with the old wrong date. It is not shown originally, because the plot is adjusted to a different time window. Once you zoom out, you see the other data as well.

Adding data from different days without any span is handled correctly.

Standard sar historical could be easily handled, because all information for one KPI is printed consecutively --> all CPU, all IO, all KMem, etc

performance data collected, e.g. "sar -A 10 180" is printing out interval based ... CPU1, IO1, KMem1, ..., CPU2, IO2, KMem2, ... etc

the second format is not easy not handle

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.