![]() ![]() ![]() ![]() |
![]() This explains (without the sales hype and repetition) how to install and use HP (previous Mercury) diagnostics, with comparison with similar tools (Wily Introscope within SAP Solution Manager). The wisdom here are based on lessons learned through experience.
| Topics this page: |
|
HP Diagnostics at HP:
product page
classes and certification
When HP bought Mecury in 2006, it kept the name
BTO (Business Technology Optimization)
to group various products from HP.
Diagnostics falls into the middle ground between Quality Assurance and Operations Performance Validation.
For developers, having Diagnostics means that tracing code doesn't have to be added and removed. This is a big side effect of why diags can improve performance.
The Launcher's Diagnostics tab reads:
Diagnostics is the science of pinpointing the root cause of
a problem. LoadRunner is the first load testing
tool to provide a set of Diagnostics modules that trace,
time, and troubleshoot end-user transactions across
all tiers
of the system. These modules extend LoadRunner to
provide a unified view of both end-user experience and
application component (method, SQL) level performance.
The intuitive visual interface allows the user to drill down
from a problematic business process all the way to the
poorly performing component. This granularity of results
ensures that every load test provides development
with actionable results, thus reducing the cost and time
required to optimize J2EE/.NET applications.
Mouse over the Launcher's "Diagnostics for J2EE/.NET" for
Diagnostics for J2EE/.NET provides complete visibility into the transaction performance of J2EE/.NET- based applications. Users can drill-down from a poorly performing end user transaction and view JNDI, web, EJB, and JDBC performance. Having identified the top-time layer, users can further drill-down to the Method or SQL level and pinpoint the slow SQL query or method impacting the end-user. This granularity of results data ensures that every load test provides development with actionable results thus reducing the cost and time required to optimize J2EE/.NET applications.
The busy "diagnostics world map" below shows, in one diagram, how all the diagnostics pieces from HP relate to one another.
My MS-PowerPoint 2003 file
makes this easier to understand (with narration)
by revealing just one box at a time and you can click on each box for more info.
Make a donation of $20 or more and I will send it to you.
|
Task | AD LoadRunner | Tuning | Profiler | Deep Diag. | AM BAC |
---|---|---|---|---|---|
Define options | Controller | Tuning Console | Profiler | Diagnostic Console | |
Run-time options | Scenarios, Schedules | Session Step | Profiler | Diagnostic Console Plans | |
Collect raw metrics ![]() | mdrv Agent | Agent | Probe | Probe | Agent |
Emulate clients making requests | Load Generator | Console | n/a | Commander | |
Receive raw metrics ![]() | Controller | Mediator | Diagnostic Server | ||
Calculate and graph results statistics | Analysis | Analysis | Probe | Diagnostic Console |
Note:The LoadRunner Controller cannot run a load test scenario during a Tuning Console session.
As of this writing, HP has not purged the word "Mercury" from its installers.
Product | Ver. | Installed on Path | Image | VM Size |
---|---|---|---|---|
LoadRunner | 9.0 | C:\Program Files\Mercury\LoadRunner\bin | - | - |
HP Diagnostics J2EE Probe | 7.0 | C:\MercuryDiagnostics\JAVAProbe\bin | systemmetrics.exe | 4,716 K |
HP Diagnostics Server | 7.0 | C:\MercuryDiagnostics\Server | javaw.exe | 171,332 K |
SAP Jco | 2.1 | C:\MercuryDiagnostics\SAPJCo | - | - |
HP Diagnostics Collector | 7.0 | C:\MercuryDiagnostics\Collector | javaw.exe | 110,769 K |
Here is a quick reference of the ports on each machine.
Machine | Process | Port Name | Port Type | Default Port # | Ours |
---|---|---|---|---|---|
SUT | J2EE/.NET Probe (Profiler) | Commander | static | 2006 | |
Mediator | static | 2612 (System Health Monitor) | |||
Sync | static | 35000 = Web Port Min; 35100 = Web Port Max | |||
DD Agent | CORBA | dynamic | system assigned from CORBA port range | ||
Log file transporting | static | 49235 | |||
JVM Capture | Agent | static | 30003+ (one for each instrumented JVM process) | ||
Diagnostic Servers | Mediator | Event Listener in | static | 2612 | |
Listener | dynamic | 35001 | |||
Commander | Aggregate out | dynamic | 2006 | ||
Probe Sync | ? | ? | |||
Commander HTTP | static | 54345 | |||
Commander | dynamic | 80 | |||
DD Agent | Agent | CORBA | dynamic | system assigned from CORBA port range | |
Log file transporting | static | 49235 | |||
Server Process | Server Process | dynamic | system assigned from CORBA port range | ||
Time Server | static | 30020 | |||
Name Server | static | 20001 | |||
Data Collector | dynamic | system assigned from CORBA port range | |||
Post Processing | dynamic | system assigned from CORBA port range for each (1-n) dynamic workload | |||
Database | MS-SQL | static | 1433 | ||
Oracle | static | 1521 | |||
DD Console | Agent | CORBA | dynamic | system assigned from CORBA port range | |
Log file transporting | static | 49235 | |||
Console Process | dynamic | system assigned from CORBA port range | |||
LR Controller | Diagnostics Commander | static | 2006 |
These settings are stored in server.properties and RegistrarPersistence.xml files within the etc folder under C:\MercuryDiagnostics\Server or C:\MercuryDiagnostics\JavaProbe.
To change the port:
Note: Entry debug.qa.messages = true turns on verbose debugging on the application server’s startup console.
Diagnostics Stand-alone does not report transaction-level metrics.
On Windows, both probes and Diagnostics Server invoke an instance of site__.exe visible on
Task List
Diagnostics 8.1 was tested with Diagnostics 6.6.
Diagnostics 9.0 was tested with Diagnostics 7.0.
BAC 6.2 works with SiteScope 8.2 and 8.1.2.
BAC has its own version of Diagnostics Probes which you can downloaded from within BAC.
Deep Diagnostics for J2EE & .NET v3.5 has been deprecated by HP. Its Light Weight Memory Diagnostics (LWMD) probes have been incorporated into Diagnostic probes for use by LoadRunner, Light Weight Memory Diagnostics (LWMD) is applicable to AD mode only.
|
![]() ![]() |
|
Version | Platform | Additional Hard Disk Space on Install | Additional RAM to run |
---|---|---|---|
v4 | J2EE | 200 MB | 50 MB |
.NET | 200 MB | 60 MB |
Probe Installer steps by admin (not as Unix root operator):
(KB 38840) Probes can be configured from the loadrunner \util\bin folder config.cmd (Windows) or config.sh (Unix) shell scripts.
The .NET Probe hooks into applications through two modules (KB 46307):
The second module uses the ADSI .NET API to recognize the applications running on the CLR. It looks for virtual directories and files with the ASP.NET extension, then places hooks there.
In addition to .NET "common" points files (asp.net.points, WebServices.points, lwmd.points), .NET automatically creates a custom points file with the name of the .NET app domain.
|
![]() | Open Diagnostics ![]() |
![]() |
![]() ![]() | ||
![]() | Advanced Options |
![]() |
![]() | ||
inst = Instrumentation Utilities |
![]() | |
![]() | ||
files |
![]() | |
![]() | security = Manage Authorization and Authentication |
![]() is redirected (on a new window) to the Diag. Server if one exists. |
http://localhost:2006 retrieves the Diagnostics Server management app:
![]() | Open Diagnostics |
![]() This is the same Java Applet GUI as the LoadRunner Controller "Diagnostics for J2EE/.NET" tab. |
![]() | Configure Diagnostics
(System Health Graph ![]() |
![]() ![]() ![]() ![]() |
![]() | Manage Authorization and Authentication |
![]() |
http://localhost:2612 should not be accessed. It retrieves the Mediator app:
On UNIX:
Both the Controller and Mediator sends (HTTP protocol) de/activation instructions to the Probe through port 2005. The Mediator also sends synchronization instructions to the Probe.
Because of their tight hand shaking, both the Mediator and the probe need to have the same logical LAN ID (e.g. LAN1, LAN2, or "DefaultLAN" if there is only one LAN).
When a Diagnostics Server is deployed in Commander mode, it has both commanding and mediating responsbilities. This separation is needed to accomodate large system landscapes with many servers, The Mediator pre-processes, filters, and aggregates real-time data before sending it to the Diagnostics server/LR Agent every 30 seconds (by default).
LoadRunner's Agent process connects with the Mediator. The LoadRunner UpdateService is installed on a Windows 200X machine (separate from the Controller) with "J2EE Mediator Installation" in Start > All Programs.
Probes continuously send raw performance data (using a proprietary protocol) to the Mediator listening port.
If several application servers (and their JVMs) are monitored by a single Mediator, that Mediator should reside on a separate mediator host machine. Each Diagnostics Mediator can process a limited number of probes. The readme file has these recommendations:
Item | Platform | Total Number of Probes | ||
---|---|---|---|---|
up to 10 | up to 20 | up to 30 | ||
Machines | Windows | 1 x 1 GHz | 1 x 2 GHz | 2 x 2.4 GHz |
Solaris | 1 x Ultrasparc 2 | 2 x Ultrasparc 2 | 2 x Ultrasparc 3 | |
Memory | Windows | 768 MB | 1 GB | 2 GB |
Solaris | 1 GB | 1.5 GB | 2 GB | |
Java Heap | 350 MB | 700 MB | 1400 MB |
The Java heap
-xmx setting should be less than 75% of physical memory
(e.g., -xmx768m for a machine with 1GB of RAM installed).
The installer sets up the HP Diagnostics Server
service to start automatically
upon start-up from
C:\MercuryDiagnostcs\Server\nanny\windows\bin\magentservice.exe.
Alternately, this can be manually started or stopped from
This service needs to be stopped before you can run the installer again, or you'll get
this error message
The Diagnostics Server uses rhttp -- revershe HTTP -- to query metrics
from J2EE probes.
|
![]() ![]() |
|
![]() ![]() |
|
![]() ![]() |
|
![]() ![]() |
|
Layer | Sub Layer(s) | Protocol | Description |
---|---|---|---|
1. Client | HTTP/ HTTPS | requests to/from presentation layer web servers. | |
Portal | SAP | - | SAP Portal Core Components![]() |
Web Tier | Session | HTML | javax.servlet.http.HttpServletRequest |
Servlet | - | javax.servlet.http.HttpServlet javax.servlet.Filter | - |
JSP | - | javax.servlet.jsp.HttpJspPage | |
SAP | - | SAP Portal Web Service Components![]() | |
Spring | - | - | |
Struts | - | - | |
Application | Spring | - | keyword = soapfault |
XML | SAX | - | org.xml.sax.XMLFilter |
DOM | - | (expensive!) | |
Web Services | Generic | SOAP/ REST | requests handled by web servers. keyword = soapfault |
SAP | SOAP | com.sap.engine.services.webservices. ...
...runtime.ProtocolChainProcessor ...jaxrpc.wsdl2java.soapbinding.MimeHttpBinding | |
SAP-RFC | RFC | keyword = saprfc | |
Directory Service | LDAP |
JNDI![]() | |
JSP (Java Server Pages) | markup | - | |
Messaging | JMS | - | keyword = jms-client javax.jms.Connection, MessageConsumer, MessageListener, QueueSender |
(Java Mail Services) requests sent to email servers. | keyword = jms-server javax.jms.TopicPublisher | ||
JTA (Java Transaction API)![]() | - | - | |
Database | JDBC | SQL | java.sql.Connection & Execute
via Oracle Net![]() |
JDBC-SQL | SQL | keyword = jdbcsql | |
RMI (Remote Method Invocation) | RMI | - | |
RPC (Remote Procedure Call) | RPC | - | |
Logging | Log4j | - | javax.resource.cci.Connection |
Logging | Log4j | - | org.apache.log4j.Logger Method: trace |
JMX![]() | JMX | javax.management |
|
![]() ![]() |
|
![]() ![]() |
|
View | Entity | Metric |
---|---|---|
Standard Views |
Server Summary - Status, Aggregate Request
Aggregate Requests - Latency Application Metrics - Latency Dependent Service - Latency Hosts - CPU Load Outbound calls (none) Probes - VM Heap SQL Statements - Latency Server Requests - Latency Topology Transactions - Latency Trended Methods - Latency | - |
Portals | Server Summary - Portal Requests & Portal Components
Portal Components - Latency | - |
"Web services" (HTTP/SOAP or HTTPS/SOAP-RPC calls to/from remote components via internet) | Outboud / Consumer | - |
Inbound / Provider (aggregating multiple consumer IPs) | - | |
Inbound / Provider by Consumer IPs of origination listed in JavaProbe/log/probe_name_addr.properties file (up to max.tracked.addresses.per.probe in JavaProbe\etc\dispatcher.properties) | - | |
SAP | NetWeaver Summary (Requests & Threads)
R/3 Summary - NetWeaver Requests - HTTP Requests/Sec NetWeaver Threads - Application Threads/Active Threads R/3 Probes - Latency R/3 Server Requests - Latency | - |
Oracle | Summary -
Probes Wait Time ![]() | - |
BEA Weblogic | Summary
EJB Pooled Resource Connection JDBC Connection Status JDBC Resource Contention Server Threads | - |
IBM WebSphere | - | - |
CICS | - | - |
The Probe captures the call stack for the 3 slowest instances of each server request. It also captures a call stack representing all call instances for a type of service request and calculates the aggregated latency.
The default BEA Weblogic contains:
|
![]() ![]() |
|
![]() ![]() |
|
Vu Aggregation Period | bucket.lr.trend.duration = 5s |
server request aggregation period | bucket.lr.offline.sr.duration=5s |
Business Availability Center (Topaz) BPM Aggregation Period (must be multiple of Summary Trend duration) | bucket.tz.vu.duration=30s |
The J2EE Transaction Breakdown Diagnostics Module includes the following components:
|
![]() ![]() |
The Summary Report is titled "Diagnostics Usage"
|
![]() ![]() |
|
|
![]() ![]() ![]() |
|
BAC Version | Diag. Version | Date | OS Support | App Server | Database | Web Server |
---|---|---|---|---|---|---|
6.3 (VuGen 8.1) | 4.1 | 8/06 | Windows 2000 Server/Advanced Server (SP4), Windows 2003 Standard/Enterprise Server (SP1) Solaris 8, 9, 10 | WebLogic 8.0 | Oracle 10.2.0.1, SQL Server 2000 Enterprise SP4 | IIS 5,6; Apache 2.0.49; Sun Java System Web Server 6 SP 7 |
6.2 (VuGen 8.1) | 4.1 | 6/06 | Windows 2000 Server/Advanced Server (SP4), Windows 2003 Standard/Enterprise Server (SP1) Solaris 8, 9, 10 | WebLogic 8.0 | Oracle 10.2.0.1, SQL Server 2000 Enterprise SP4 | IIS 5,6; Apache 2.0.49; Sun Java System Web Server 6 SP 7 |
6.1 (VuGen 8.1) | 4.0 SP1 | - | - | WebLogic 8.0 | Oracle 10.2.0.1 | Sun iPlanet |
6.0 (VuGen 8.1) | 4.0 SP1 | - | - | WebLogic 8.0 | Oracle 10.2.0.1 | Sun iPlanet |
5.1 (VuGen 8.0) | 3.5 | 6/14/05 | Solaris 10, Windows 2000 Server, Windows 2003 Server (all editions) | WebLogic 7.0 SP6 | ||
5.0 | 3.3 | 11/12/04 | Solaris 9, Windows 2000 Server SP4, Windows 2003 Standard Edition | - |
The types of monitors managed by BAC are classified by this hierarchy:
System monitors:
Business items include:
The BAC dashboard is a portal that presents HTML aggregated after consuming one or more portlets on WSRP (Web Services for Remote Portlets) service producers which publish WSDL to a WSRP Registry using UDDI and invoked using SOA, like other XML services. WSRP was first approved at OASIS standard 1.0 on September, 2003. v1.1 was approved May, 2004.
Monitors generate "samples" of activity data carried over a "bus".
Business Logic Engine (BLE) matches (filters) samples against the model of
CIs (Configuration Items) stored in the CMDB (Configuration Management DataBase) central repository.
Matched samples that fit the model light up the "dashboard" of real-time calcuations and status.
The Alert Engine handles alerts associated with KPIs (Key Processor Indicators)
Deep Diagnostics setup (file DeepDiag3.3.11.2VM.exe dated 11/24/2004) is a Java SWT app. It installs by default to folder "C:\MercuryDiagnostics". By default it installs MSDE 2000 and MDAC 2.7.
The Diagnostics Management database is not needed since v3.5.
With v3.3, if the Diagnostics management database is on a different machine than the machine hosting Diagnostics server,
they both need to be set to the same time zone.
The database is configured in Start > Programs > Mercury Diagnostics Server > Administration > Connect to Database
With v3.5, diagnostics components "can" store data from over 72 hours of runs with 20 SUT's running load tests for both .NET and J2EE probes. However, The System Health Monitor will not report an error condition on the graph when the Diagnostics components are out of disk space.
An open-source web server is installed using file jakarta-tomcat-3.2.3.tar.gz in the shared\third-party folder of installation CDs.
"Select the Web Server type you want Application Management to work with."
The Diagnostics application only works with IE6 browsers, with privacy settings set to "Always accept cookies from this site."
The SMTP server name needs to be specified during installation. Its Sender Name is by default MercuryAM_Alert_Manager.
Run JRE Instrumenter
BAC Diagnostic breakdowns need to be enabled for each BAC Business Process Transaction Monitor.
In each server's startup script, add (after the JIT option) a -Xbootclasspath Java command line parameter reference to the <probe_install_dir>\classes/boot
Also add to the CLASSPATH=%CLASSPATH%;%J2EE probe installation directory%\dat
With LR7.8SP1, from the J2EE Transaction Breakdown Home Directory\lib directory, run the Initializer
This puts ClassLoader.class under directory Probe Home Directory/classes/boot/java/lang.
Each probe writes to a <probe_id>.log file in the <probe_install_dir>/log folder.
The probe of each server must be enabled before it can monitor events.
Lastly, run the System Health Check to view the component's configuration information and performance metrics.
The Profile database stores transaction breakdown summary information in its event_meter table, em_download_data_size, em_s_network_fb_time, and em_s_connection_time columns for each transaction.
|
![]() ![]() |
|
![]() ![]() |
![]() |
| ![]() ![]() |
| ||
![]() |
![]()
| Your first name: Your family name: Your location (city, country): Your Email address: |
Top of Page ![]() Thank you!
Human verify: |