|
| 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.
HP/Mercury Product Terminology
The terminology used by programs performing similar tasks are different in different products:
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.
Overall Installation Sequence
The recommended sequence of installation is this order: BAC > LoadRunner Diagnostics Add-in > Diagnostics Server > Probes > JRE Instrumenter > Diagnostics Collector
Unlike other HP/Mercury products, with the Diagnostics Server you can install a license .key file from HP during the initial installation from the CD rather than after installation. Before installation, close any LoadRunner programs and the Windows Control Panel Services window. With BAC 6.2, do not specify a password that contains an exclamation point (!). Otherwise, you cannot access functionality related to the Script Repository and transaction monitors in Monitor Administration. Verify installation and troubleshoot connectivity issues between Diagnostics components by using the Health-Check Monitor Java Applet. With v3.5, setup programs for Diagnostics Commander, Mediator, and Probe are downloaded from the BAC Admin > Diagnostics "Downloads" tab or http://Diag server/opal/stynamic/downloads.html The file downloaded is for the hostname and port number specified for the Diagnostic server. To install a J2EE Diagnostics server on a Windows 2000 Professional machine, to avoid the error "Mercury Diagnostics Server cannot be installed on this platform." (KB 36971):
On Solaris, installed are ~/vpd.properties and ~/vpd.patches, directories: /var/sadm/pkg/IS* and /var/sadm/pkg/MERQ.
|
|
Probes
Information from probes are displayed in: Probe InstallationDiagnostics for Profiler J2EE Installation and User's Guide (redirected from the URL printed in the manual).According to each version's ReadMe.htm file, each Diagnostics Probe takes:
Probe Installer steps by admin (not as Unix root operator):
Probe ConfigurationA built-in probe is created for host with a fully qualified domain name created by combining the %COMPUTER_NAME% (machine name) + the DNS Suffix Search List from running the "ipconfig /all".(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. |
|
Starting (Launching) Probes
startAgent.sh Internally, this invokes java with the -Xbootclasspath parameter that specifies \lib\probe.jar using "com.mercury.opal.capture.JavaProbe true". Disabling ProbesThere's reverse logic here, but if you want to stop profiler, set:in etc\probe.properties disable.profiler=true in etc\dispatcher.properties #ac.register.sink=false disables Profiler for method collection. ProfilerThe Profiler is a JETTY (Java-based open-source stand-alone) web server. It can be started from All Programs > HP Diagnostics J2EE Probe > Diagnostics Profiler for J2EE, which starts JavaProbe\bin\profiler.cmd http://localhost:35000 retrieves the probe management app: (the default user name and password is admin/admin). When an internet browser enters the site, several components are automatically downloaded.
Diagnostics Server
http://localhost:2006 retrieves the Diagnostics Server management app:
http://localhost:2612 should not be accessed. It retrieves the Mediator app:
Diagnostics Server InstallationSince v4, the Mediator and Commander are installed using the same "Diagnostic Server" software.Previously, in v3, mediator and commander were installed separately. 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:
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
Start > Settings > Control Panel > Administrative Services > Services 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. |
|
HP Diagnostic CollectorThe Diagnostic Collector collects metrics from SAP R/3, Oracle, and MQ series servers. Create SAP JCo files within the folder before starting the installer. Do not copy the librfc32.dll to windows/system32 unless it's a later version (6405.5.165.5297 vs. 7100.1.7.5371 from a more recent SAPGUI install).
Run
localhost:2006/security/EncryptPassword.jsp to encrypt the password,
which is pasted within file
Within file \etc\monitor.properties, set xml.filename=sapr3.metrics.xml From Start > HP Diagnostic Collector, Stop and start it again. |
|
Diagnostics System Health MonitorThe "System Health Monitor" is a web page (graphic Java Applet) at http://localhost:2016/registrar/health (and providing default username and password "admin").
An application must be running before that node turns from Inactive gray to active green. Activity level can be configured to be illustrated two ways after Right-clicking on the graph: "Show Load Using Circle" size or the default "Show Load Using Scale" length of the black line under the component.
|
|
Configure/Enable Reporting
To keep overhead low, by default several views are not shown or does not show all information. So they must be manually enabled. CPU Time Java is enabled in Transaction, Probes, and Call Profile views if:
probe\etc\dynamic.properties file cpu.timestamp.collection.method=
Profiler Light Weight Memory Diagnostics (LWMD) is used to identify the largest collections and the fastest growing collections within Java applications. Page 343 of the Diag. 7 User Guide says:
lwm.diagnostics.top.n=15 (to only show the top 10 collections by size or growth) lwmd.resource.replace (pattern replacement of code resources, as in uri.pattern.replace) Profiler Memory Analysis with Heap Walker (for JVM 1.5+) or Heap Breakdown (JVM 1.4) are used to identify objects that may be leaking. This doesn't work at all on IBM JVM (due to a defect on the IBM VM, per KB 40630).
Edit
Thread Waited and Blocked Time columns can be included in the Probe Threads Table by setting
To graph latency for a specific method (point), specify in the Probe\etc\auto_detect.points file layertype = trended_method for each point |
|
Points for ExplorationClasses and methods displayed on views are specified in the file by specifications in the points file.
Define separate points files for Dev, QA, and Prod.
Save a single points file and copy it to each it to each of several identical clustered machines using a custom batch file. Instead of directly editing the points file, click Profiler > Configuration for the screen on the right. Check Capture Class Map.
In Change Probe Instrumentation Plan > Shared Instrumentation,
click "Edit..." button for this GUI:
The red icon indicates that "active=false" is set in the Source for that point. Pressing the Source tab shows the points file at the point selected (appearing between [square brackets] at the bottom of the Source screen). "layer" properties for each point is the points file is the basis for the Layers shown in Load views. The points file is saved to the file after both OK and "Accept" are pressed. CrossVM > RMI correlates the call tree data from both calling and called virtual machines with this point specification. Notice that the keyword is displayed below the layer. [RMI] keyword = rmi layer = CrossVM active = true Instrumentation for OVTA (HP OpenView Transaction Analyzer) Java Servlet Filters and EJB local home methods are invoked by these points:
[Synchronization], when activated, identifies a common source of performance problems. Avoid creating a separate custom layer. Also, custom packages should ignore utility methods (get, set, is): [MyClass_Example_1] class = !com.MyCompany\... method = !.* ignore_method = !(set.*)|(get.*)|(is.*) signature = !.* layer = MyCompany/LOB/MyClasses The classes discovered during probe installation are specified in file lwmd.discovered.points within the probe\etc folder. ## In the absense of a ClassMap, this file contains all the classes which ## will be instrumented for light-weight memory detection, or were detected ## at runtime to be of interested to light-weight memory detection and will ## be instrumented next time the application is restarted ## Each class which should be tracked for light-weight memory diagnostics ## should be listed here, each on its own line. ## If you remove a collection to prevent it from being instrumented on a ## subsequent run, you need to add it to the lwm.diagnostics.filter.exclude ## property inside dynamic.properties in order to prevent the collection from ## being discovered & added back into this list when the probe next restarts. Other points file parameters: class = <class/package name/s to capture> ignore_cl = <classes to exclude> method = <method name/s to capture> ignore_method = <method prototypes to exclude> signature = <signature/s of method/s in javap symbolic encoding> layer = <layer name> active = <true, false> #Enabled: checked in GUI layerType = <layer type> deep_mode = <soft or hard mode> scope = <comma separated list of methods> ignoreScope = <comma separated list of methods to exclude> ignore_tree = args,caller,return <Exclude subclasses> detail = <args,caller,return> code-key = <key that you generate to secure the code snippet> tierDefinition = <hex_identifier> merge_classes = <class names> merge_url_to = <comma separated list of methods> [Leak] should be specified for only a single class. Do not simply activate it. |
|
LayersThe layers in HP Diagnostics Points files
|
|
System TiersThe flow of data Layers are illustrated here. Diagnostics group performance metrics by layers and sub-layers based upon the resources that the application invokes to perform the processing. These layers make it easier for you to isolate and identify the areas of the system that may be contributing to performance issues.
|
|
Allocations
[Leak] point |
|
Diagnostic Report Views
It takes several minutes for diagnostics to appear.
The default left pane has:
Alerting My Views 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:
|
|
Call Profile Graph from Instance Trees
This Call Profile Graph displays instances trees collected during the last 5 minutes. They different types are: To identify what methods take longer under load, compare graphs for Average versus Slowest method times Aggregate Trees keep all samples collected and combines multiple possible execution paths (instance trees) into a single tree, so it's more difficult to understand what the application is doing.
|
|
Tuning Console for LoadRunner
I am told that this product has been deprecated by HP. The ability to automatically invoke several runs of LoadRunner (with different configurations) is really helpful. Even more importantly, comparison of results across several runs is great to have. I've developed an internal tool to do this. |
|
Diagnostics LoadRunner Add-in for J2EE & .NET
Diagnostics for J2EE & .NET for LoadRunner Read Me
As the LoadRunner Diagnostics tab
initial screen
instructs,
Probes need to be enabled within LoadRunner's Diagnostics menu:
Check "Enable the following diagnostics" and adjust the "% of all the relevant Vusers in the current scenario" to 100 when you are exploring SAP. Within the "Offline Diagnostics" area, clicking the "Configure" button for "Web Page Diagnostics" retrieves this dialog . Clicking "Troubleshoot Diagnostics for J2EE/.NET connectivity" invokes a new internet browser window containing the System Health Monitor.
In the LoadRunner Launcher, when you select CONFIGURATION
Diagnostics for J2EE/.NET Setup
To create offline AM/Standalone datasets for LoadRunner Analysis to read, set Diagnostic Server > Configure Diagnostics > Configuration > Show Advanced Options > Online Cache to true (which automatically sets Server\etc\server.properties file parameter copy.ad.to.am = true). For a list of files and runs that are open and still collecting data, go to Diagnostic Server > Configure Diagnostics > Configuration > query. Within Diagnostic Server > Configuration > Aggregation modify LoadRunner Offline/Summary VU
|
|
LoadRunner Transaction Breakdown Diagnostics ModuleThe J2EE Transaction Breakdown Diagnostics Module includes the following components:
The J2EE Transaction Breakdown Diagnostics Module requires MSXML 3.0 or later (included in Internet Explorer 6.0) installed from this Microsoft MSDN Web page. Probes collect time spent only within J2EE/.NET application servers, so their timings do not include user think time, time spent traveling the network, nor time in the web server. For this reason: "J2EE/.NET - Transaction Response Time Server-Side Graph".
|
|
Diagnostics Usage Summary ReportThe Summary Report is titled "Diagnostics Usage"
There are two groups of J2EE & .NET Diagnostics graphs:
Rather than using automatic transactions specified in Runtime Settings, lr_start_transaction and lr_end_transaction statements must be inserted manually around each transaction in the Vuser script. "Elements" within each transaction and request are :
Filter values can be defined for these elements plus:
|
|
Transaction Chain of Calls and Call Stack
The most time consuming chain is shown in red. Click on a method and click the icon for the reverse bottom-up view of the Method Call Stack:
A view group is pre-defined for each type of server (WebLogic, WebSphere, etc.). Views can be by Load, Probe, and Server Requests. Drill down from a view group to detail views for each probe or host. The Metrics Inspector is like a properties GUI control used to specify the threshold values controlling whether each metric displays on the graph and detail table.
|
|
|
Business Availability Center (BAC) x.x Diagnostics for J2EE & .NET
Business Availability Center comes in several CD's:
BAC Performance (Dashboard) Customizing the KPI, Rules, parameters BAC Versions
Types of MonitorsThe types of monitors managed by BAC are classified by this hierarchy:
System monitors:
Business items include: BAC Workflow
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".
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) Diagnostics Management DatabaseDeep 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.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. Web serverAn 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. ConfigurationRun 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. |
|
RUM (Real User Monitor)Scripts for the Real User Monitor are developed by the VuGen software borrowed from the LoadRunner product. The installer creates file %WINDDIR%\vpd.properties which should be deleted before the product is re-installed (after a mandatory uninstall). |
|
Resources
|
|
|
| ||
|
| Your first name: Your family name: Your location (city, country): Your Email address: |
Top of Page
Thank you!
Human verify: |