Fenxi is a pluggable Java-based post-processing performance analysis tool. For a brief overview on Fenxi, please read Neel's blog.
So what is all this talk about Fenxi, where do I get it and how do I use it?
Fenxi is a post-processing tool and does not collect the metrics. It has built-in parsers for handling the output from tools such as mpstat, iostat, vmstat, etc. (Refer to user-manual for complete list.) and publishes the processed results in HTML format.
Fenxi has been published on Java.Net and is available as a binary or via CVS from http://fenxi.dev.java.net.
Download the latest fenxi binary package and untar the package as follows:
gzcat fenxi-latest.tar.gz | tar xvf -
Make sure that you have Java 1.5 or above and Perl 5.6 or greater installed.
To run a simple test on Fenxi, here's what you do.
  1. Create a directory, say Fenxi_Test.
  2. Generate mpstat and vmstat outputs and store them as mpstat.out, vmstat.out respectively:
    mpstat 1 10 > Fenxi_Test/mpstat.out
    vmstat 1 10 > Fenxi_Test/vmstat.out
  3. Now that you have your performance data, we can go ahead and process them. To process it with Fenxi, run:
    fenxi process Fenxi_Test Fenxi_Test/html Run1
  4. This generates and output like:
        Creating database ...                            4.34s
        Parsing raw files ...                            2.25s
        Loading create statements from txt
        Loading vmstat_out                               ...+..+..+..OK
        Loading mpstat_out                               ...+..+..+..OK
        Processing profile default_profile               ...OK
        | Generating section   39/39       0 errors
        Query Execute took                               5.86s
        HTML Generation took                             2.03s
    
  5. The processed HTML files are new available in Fenxi_Test/html directory and can be viewed in a browser. If there are any errors in the format of the file, it would show the number of errors, and we can drill down using fenxi.log. For any database errors, we can look into derby.log for further details.
Fenxi can also be used to compare two or more runs.
  1. Create directory Fenxi_Test2 and redo the steps in simple test, replacing Fenxi_Test with Fenxi_Test2. This will generate the mpstat.out and vmstat.out files and have them processed using:
    fenxi process Fenxi_Test2 Fenxi_Test2/html Run2
  2. Compare the two runs using:
    fenxi compare Fenxi_Test/html Fenxi_Test2/html Fenxi_compare
  3. The output can be viewed on a browser via the index.html file created in the Fenxi_compare directory.
Expect future blogs on the various features of Fenxi and how to customize it.
Comments:

Looks like fenxi .class files were compiled by javac 1.6 not 1.5

$ javap -verbose FenxiProcess | grep version
minor version: 0
major version: 50

It makes impossible to run fenxi on stock Solaris 10 :-(

Posted by Ilya Voronin on January 07, 2008 at 12:11 PM PST #

Looks great, maybe good to substitute RichSe / Orca
?

Posted by Thorleif Wiik on January 07, 2008 at 02:49 PM PST #

Thanks for pointing out the java version issue Ilya.
Have updated the site with the 1.5 java binary.

Posted by Muralidharan Raghavan (MurLEE) on January 07, 2008 at 05:42 PM PST #

Hi,

When trying to process vmstat output , we get the following error from the fenxi.log file

Error executing create table vmstat (Time integer, r integer, b integer, w integer, swap integer, free integer, re integer, mf integer, pi integer, po intege
r, fr integer, de integer, sr integer, cd integer, cd integer, cd integer, f0 integer, intr integer, sysc integer, cs integer, us integer, sy integer, id int
eger)
ERROR 42X12: Column name 'CD' appears more than once in the CREATE TABLE statement.

Posted by anonymous on January 08, 2008 at 01:07 PM PST #

can fenxi extrapolate data from explorer's output dir (mostly text) ?
tried:
./fenxi process/opt/SUNWexplo/output/run1/sysconfig
explorer_sysconfig_html Run5
and comes back incomplete.

thx

Posted by vlaho on January 24, 2008 at 01:38 PM PST #

This tool works great. Wanted to know the name and extension which can be used for the various log files Fenxi can process.

Posted by Jerry on February 18, 2008 at 03:53 AM PST #

Hi-
Great work so far... I would like to extend it to parse/process Grinder log files and/or other data inputs... where should I start?

Thanks

Posted by Charlie Weiblen on March 03, 2008 at 08:26 AM PST #

Post a Comment:
  • HTML Syntax: NOT allowed

This blog copyright 2008 by murlee