JTLviz
JTLviz is a pure Java re-implementation of TLViz.
TLViz is a Microsoft® Windows program to visualize timeline data.
It was developed (in Visual Basic, using TeeChart software as
its graphics engine) by the Performance Group in OpenVMS
Engineering, originally for internal use.
Timeline data is generated on OpenVMS systems by the
Total Timeline Tracking Tool (T4)
and stored in a CSV file using the Timeline Collaboration (TLC) format.
JTLviz extends TLViz' concept in that it allows to also visualize data from
CSV files that are written by the
Enterprise Capacity Planner (ECP)
data collector and the
Performance Data Collector (TDC)
V2 software.
JTLviz is still work-in-progress, but should have reached the point where it is usable.
It has been developed on Microsoft Windows XP using SUN's Java2 SDK 1.4.2, the
JFreeChart and JCommon 1.0.0 libraries,
and NetBeans IDE 4.1.
It has been tested to run with
Java2 SDK 1.4.2-04.p2 Fast VM on
HP OpenVMS Alpha 7.3-2.
On an AlphaServer 4000 (2 CPUs, 1GB RAM) it's a bit slower
than on Windows. but not too slow to not be useful.
To run it, you'll need the
JFreeChart and JCommon libraries, version 1.0.0.
Just drop JTLviz.jar, jfreechart-1.0.0.jar, and jcommon-1.0.0.jar into some directory and start it by
$ java -jar JTLviz.jar [csv-file [...]]
You can download the current JAR file as well as the
sources. New versions will be published when
enough changes have occured to justify a new version. Feedback is appreciated.
Thanks to the Performance Group in OpenVMS Engineering for developing and
making available T4 and TLViz (even though it's a Windows program ;-).
Enjoy!
Martin Vorländer, 25-Apr-2006
Options
When the system property JTLviz.useIndividualTimestamps is defined,
the timestamps from each file loaded are used as-is.
When the system property JTLViz.useAllTimestamps is defined,
and the system property JTLviz.useIndividualTimestamps is not defined,
all timestamps are read from a TLC file (and not just the timestamps in column 0).
Timestampes are identified by a column header that contains the string "Sample Time".
When the system property JTLviz.memDebug is defined, three items measuring
the free, used, and total memory of the Java Virtual Machine (JVM) are inserted into the
item list.
Using the switch -Xverify:none has been seen to boost performance.
TODOs
- Implement a table of items
(consisting of the columns PerfDataItem, SortKey, Median, OrigIndex)
instead of a list of item names.
- Implement the difference between primary and secondary charts
(measured vs. calculated values).
- Identify the algorithm used and implement candle charts.
- Identify the algorithm used and implement smoothed charts.
- Implement "Print Preview".
- Implement lots and lots of things in the "Edit Chart Properties" dialog
(re-implement TeeChart? ;-).
- Fix Printing (Chart, Correlation Chart, Correlation List -
I'm still learning in the area of Java's PrintServices).
- Change the time axis labels to show the time and date on two lines.
- Make the checkboxes in the legend work (to select visibility of a line).
- Implement timestamp mapping like in TLViz.
- Implement correlation of items from different data collections.
- Check the program's behavior when TLC and ECP/TDC files are mixed.
Implementation details that differ from TLViz
- Use a default line width of 1
(I don't like those thick lines of width 3).
- Use OpenVMS timestamp format in outputs
(e.g. chart tooltips, correlation chart title, generated TLC files).
- Use the description given in the ECP user manual
for tooltips of list items from an ECP/TDC collection.
- Use the description from relevant OpenVMS manuals
for tooltips of list items from a TLC collection (that I was able to identify).
- Loading of timestamps is not yet quite like TLViz.
- Optionally use (and save to TLC format) all timestamps provided in the file.
- Sorting of the item list is not yet quite like TLViz
(especially the items' median calculation is not yet clear to me).
Resources
OpenVMS Technical Journal V3:
TimeLine-Driven Collaboration with T4 and Friends: A Timesaving Approach to OpenVMS Performance
ECP Collector and ECP Analyzer - User Guide for OpenVMS (V5.5A, March 2005);
Chapter 5: ECP Performance Data Description
OpenVMS System Management Utilities Reference Manual (V7.3-2, January 2005);
Chapter 15: Monitor Utility
History
- Stoneage
first versions, based on TLViz 1.3 & 1.4
- 24-Oct-2005 - Version 0.42
- 16-Nov-2005
Announcement on
openvms.org
- 26-Nov-2005
Mention on comp.os.vms (msgid:4388188e.524144494f47414741@radiogaga.harz.de)
- 3-Dec-2005 - Version 0.43
- Based on TLViz 1.6.
- Implemented "Save As".
- Implemented "Save Correlation List".
- Implemented a rough progress monitor when loading files.
- Implemented tooltips on the item list.
- Implemented "Values are STACKED" string.
- Integrated footer string into chart.
- Moved file loading into a thread of its own.
- Fixed the dragging of a chart (directions and scaling).
- Takes multiple filenames from the command line to load at startup.
- Remembers the directory for open and save operations.
- 16-Dec-2005 - Version 0.44
- TLC items: Integrated descriptions from MONITOR manual into item tooltips.
- Implemented OpenVMS timestamps in chart tooltips.
- Moved strings to a ResourceBundle file.
- Reworked/Fixed the inner workings of functions modifying the item list.
- Fixed the moving average calculations (previously led to "out of memory").
- Fixed an exception when switching dual charts to stacked mode.
- (switched from Java2 SDK 1.4.2-08 to 1.4.2-10 on Windows).
- (switched from JFreeChart/JCommon 1.0.0-rc1 to 1.0.0).
- 19-Dec-2005 - Version 0.45
- Removed the properties popup from the correlation chart.
- Implemented TLC Type 2 file format, used e.g. by the FC data collector
(thanks to Marty Skinner for pointing me to it).
- 03-Jan-2006 - Version 0.46
- Implemented selective "Save As", i.e. only those items are saved that
a) are shown in the list, and b) come from the last file loaded.
- Included integer values from ECP/TDC files.
- Fixed the file load progress bar.
- Cleaned up chart mouse handling.
- Fixed an exception when choosing Dual Y Axis or Dual Chart.
- Fixed the omission of "Process Name" in ECP's VMSPRC record.
- Fixed parsing of VMS timestamps where the month has lower case characters.
- Some code changes based on profiling
(using HPjmeter - nice program. Thanks, HP!).
- Added a JVM memory usage chart (grabbed from the JFreeChart demo)
For this to be shown, property MEM_DEBUG must be set to true
in de/pdv_systeme/JTLviz/ResourceBundle.properties.
- 19-Jan-2006 - Version 0.47
- Implemented the (alphabetical, ascending, descending, original index)
sort orders of the item list.
- Implemented the ability to enter numeric values
in the "Add New Item to List Box" dialog.
- Implemented interrupting of a file load (Cancel button on the progress bar).
- More code changes based on profiling.
- Moved resources MEM_DEBUG and USE_ALL_TIMESTAMPS from the resource file
to system properties JTLviz.memDebug and JTLviz.useAllTimestamps, respectively.
- 09-Feb-2006 - Version 0.48
- Fixed a bug in parsing dates that have trailing blanks.
- T4 files: Check for and skip those pesky "Column Average" rows.
- TLC items: Added descriptions for SCS items.
- 25-Apr-2006 - Version 0.49
- Restored proper sorting of the correlation items list.
- Implemented TLViz' behaviour to load all files with the first file's timestamps
(if the number of lines in the files match; TLC only).
The individual files' timestamps are used if the system property
JTLviz.useIndividualTimestamps is defined.
- Implemented the items alphabetical sort start position dialog.
- Implemented the item list sort by median
(for now, bound to the system property JTLviz.withMedian because of performance issues).
- Reworked the chart properties data table.
- Separated sort direction (ascending, descending) from sort style
(alphabetically, median, original index).
- Fixed a bug where dual axis/chart could not be selected when one item was
selected with two data collections loaded.
- Fixed an exception when the first line of a TLC file consisted only of the nodename
(i.e. had no comma; TLViz regards these as invalid, BTW).