Metrics Analysis
A new Metric mode has been added within the console
that provides a high level view of the last 60
minutes of JVM and JDBC activity. The JVM counters
such as waiting and blocking relate to all activity
within the VM including non-JDBC work. The information
visualizations associated with the mode allow
for visual comparison and correlation of a large
multiple of JVM/JDBC counters. It is relatively
easy to correlate across metrics via the spark-line
bar charts graphics in the table view. Patterns
of behaviour over time are equally visible complimenting
the correlation efficiencies.
JXInsight Distributed eXtensible Tracing
The JVMPI profiler has been augmented to allow
users to profile applications at various levels
(methods, user transactions, workflows, framework
interceptions points, and AOP point cuts). The
new Trace API (com.jinspired.jdbinsight.trace.Tracer
– jdbidriver.jar) provides flexible instrumentation
and measurement capabilities allowing for specific
individual code blocks to be profiled in terms
of object allocation, thread waiting and blocking,
GC and CPU and wall clock times. It is even possible
to profile a thread call stack sequence –
a trace can be started in a higher calling method
and stopped in a called method.
Traces can be nested and transferred between client
and server processes allowing for distributed
trace correlation and JVM statistic aggregation.
All traces are associated with the calling thread.
The traces started and stopped can be accessed
from within the JDBInsight/JXInsight console by
creating a server, selecting the profile mode
and then switching to the Traces perspective.
To profile a particular code block surround it
with the following code template
try {
Tracer.start(“mytraceid”);
// code block to be profiled
}
finally {
Tracer.stop();
}
JXInsight 1.0 offers two extensions for distributed
tracing and profiling. The
VisiBroker
trace extension allows for tracing of
remote calls from a CORBA client to a CORBA server
as well as profiling the time and resource consumption
of inbound CORBA server requests. Neither JVMs
need to be JDBC clients. The Tracer class will
start a server profiler within both JVM’s
allowing for JDBInsight consoles to connect and
extract tracing and profiling information. By
creating a JDBInsight cluster containing both
client and server processes the console will be
able to associate client traces sent over the
wire with server traces this can be further extended
by the trace console reconciliation engine to
link a particular client trace with a SQL operation
on a database table or column.
The
Servlet/JSP extension enables
the profiling and tracing of servlet service requests.
Again there is no requirement for any code within
the container to execute JDBC work. By adding
the trace filter to the web.xml of a J2EE application
users can have high level profiling of inbound
http service requests. Statistics for clock, CPU,
blocking and waiting, GC and object allocations
can be captured and aggregated at various levels
via the flexible trace identifiers configuration.
In the event that JDBC work is initiated during
the scope of a trace transaction paths and interceptions
will be associated. The association can then be
navigated within the console for a load profile
model.
Additional Console Commands
• Dump Profile Dumps the current profile
model to the servers local file system.
• JVM Properties Displays the JVM System
properties including those set by the JDBInsight
mode.
• JVM Threads Displays the current thread
groups and threads within the server JVM process.
• Recording Provides a dialog that automates
the reset, snapshot and export actions for use
case testing.
• Shutdown Calls System.exit(0) in the remote
JVM process.
Java Source Code Viewer Integrated Into
Console
The console now provides the ability to view the
source of frames on the call stack of intercepted
methods. The first step in integrating the source
viewing is to mount the source directory within
the console. The source directory mounted should
be the parent of the first package directory.
Right mouse clicking on the source directory and
selecting the Add to Source Path will place all
the directory's sub-directories on the search
path for Java sources. Jar and Zip files containing
Java sources can also be added to the source path.
All immediate directories will be searched. The
JDBInsight console can browse inside zip or jar
files viewing source files or directories. It
is possible to add nested directories within a
zip or jar file to the consoles source path if
the zip/jar file has been packaged with higher
parent directories.
Annotations of Exported Snapshots
It is now possible to attach notes to individual
attribute values within a snapshot. Currently
this functionality is available via the table
view menus Attach Note, Open Note and Delete Note.
This reduces the need to create separate textual
documents noting observations found within snapshots.
Now different users can collaborate in the performance
engineering exercise by adding notes into the
snapshot and exchanging snapshots via email.
Notes are stored in a separate file than the snapshot.
The notes file is simply the snapshot full filename
with a ".notes" extension. This means
it is also possible to restrict the viewing of
notes by not sending the “.notes file. The
notes file is automatically loaded into the snapshot
on load within the console. The notes file must
be placed in the same directory of the snapshot.
Notes are indicated by a red box in the top left
hand corner of the cell value. In the future notes
will also be visible from within tree views and
other visualizations. Nearly all attribute values
can be annotated with text.
Statistical Distributions and Improved
Transaction / SQL Analysis
• The distribution related columns (Median,
Mode, Inter-quartile, Semi-quartile, Lower-quartile,
Upper-quartile, Standard Deviation, and Coefficient
of Variance) can help determine whether the average
values reported are not affected by outliners.
The Average column has a “Sparkline”
graphic showing a compressed bar chart for the
distribution. There is also a variation of the
Box and Wisker Plot graphic showing graphical
the values of the distribution related columns.
• The SQL analysis related columns (Columns
(*), Tables (*)) help quickly identify transaction
paths that select a from a large number of tables
and columns. There are counts for columns and
tables based on access type: Select, Insert, Update,
Delete and Query.
• The row retrieval counts and total columns
help quickly identify transaction paths processing
large amounts of data.
Code Sources and JXInsight Traces added
to Call Trace Analysis
The view now includes the option of displaying
Java packages and Code Sources across the various
Java related partitions (Presentation, Process,
and Persistence). This can help consolidate call
statistics into more meaningful application units.
Call dependencies can also be determined via this
view. Selecting a code source (typically a jar)
or Java package, results in the displaying of
all interceptions with a direct or indirect association
with the code source or package. The view also
includes a new partition, Traces, that contains
JXInsight traces. Lines are drawn from traces
to database objects (tables and columns) based
on the active trace stack during the interception
of JDBC method calls.
Increased OS Platform Coverage
• Mac OSX
• AIX
Additional Terminal Commands
The terminal add-on now permits the displaying
of metric information, this is a high level view
of the last 60 minutes of JVM and JDBC activity.
The information provides crucial information related
to transactions, jdbc, threads amongst others.
The metrics command has the ability to output
this high level summary categorized by type and
value. The –repeat option allows the metric
information to be re-displayed or output to a
file after a period of time, specified in seconds.
Additional Call Stack Classifications
• iBatis
• Java Swing
• JMS
Improved and Extended Documentation
The Install Guide has more driver and container
examples. The User Guide has new chapters as well
as additional tips.Each platform installer includes
native agents for Windows, Linux, Solaris, AIX
and HP-UX platforms.