|
The patented Aprobe technology is designed to monitor the
execution of an application, collect data, and modify the application’s
behavior in production and near-production environments. Aprobe-based tools
can be used to accomplish a wide range of post-development activities.
PERFORMANCE
Improve performance
Measure time spent in any section of the code, no matter how small. Since it
works at runtime, Aprobe gives you access to all components of the
application, including native code, dynamic and shared libraries,
application servers, Java Virtual Machines, compilers, Web browsers, and
code stored on the client or generated dynamically. Aprobe can cross JNI
boundaries to work on C/C++ and Java components.
Trace transactions
Monitor customer transactions end-to-end, tracing execution paths and response time for real transactions. Drill down to examine the transaction components to determine where the system is spending time when it is slow.
APPLICATION MONITORING
Monitor systems
You need visibility into a complex system to verify that it is operating
correctly and to do initial diagnosis for problem determination. First,
define the aspects of the system that need to be monitored, then use Aprobe
to instrument the system and observe those aspects.
Integrate any application with monitoring systems
Bring virtually any application into the domain of Unicenter, Tivoli,
Patrol, NetIQ, or another system monitoring tool. Use Aprobe to instrument
the application without making any changes to application files. The
integration can be accomplished in weeks instead of months, and at a
fraction of the normal cost.
Monitor health metrics
Health metrics typically include such observations as response time,
throughput, resource usage, and application-detected errors. These metrics
can be monitored in real-time and trend-analysis mode. Virtually any desired
health metrics can be collected with Aprobe.
Monitor end-user response time
Response time for a system is often the largest customer-facing issue.
Instrumentation can identify what the response time is, breaking it into
small segments to provide information to improve response-time performance
and eliminate finger-pointing when performance issues involve more than one
group.
Verify SLA compliance
Verify that you have met your service-level agreements and qualify for award fees. Use outlier and anomaly reports to target areas for improvement.
Monitor resource usage
What volume of resources is used by a specific application or system? Is it
within reasonable bounds? What new resources would be needed to increase
system throughput? Which applications can coexist on the same computer
because they use different resources? All of this information can be
acquired with probes.
Manage applications
The next step beyond monitoring applications is managing them. For example, Aprobe can add a throttle to slow applications, thereby speeding others, as
business priorities change in real time.
DEBUGGING
Speed debugging
Aprobe can easily handle highly complex networked or distributed systems, as
well as multi-threaded applications. Aprobe’s advantages over interactive
debuggers include:
-
Probes induce minimal overhead, can be left in your application.
-
The application runs at full machine speeds; you don’t have to single-step
through the code.
-
You can run through the entire program and examine results offline when
and if an error occurs.
Debug remotely
Ftp probes to customer sites to help debug problems remotely. Probes can
trace the execution of the application and collect data about memory usage,
timing, data and variable values, interactions with other systems, and more.
After the application has run with the probes for a while, the user can ftp
the collected data back for root cause analysis.
Add a flight recorder
Monitor critical applications with a "flight recorder" that traces the
execution of the application as it runs. When a problem occurs, technical
support staff can step through the execution line by line, and perform root
cause analysis without reproducing the problem.
TESTING & INTEGRATION
Speed testing & integration
No other tool allows you to test every part of an application, even
third-party code and components that are added dynamically. Aprobe can work
on the actual deliverable, so there's no need to use special testing builds.
Log
application-specific data
Developers and system engineers want application-specific data to further
understand the dynamics of a system. Debugging, performance tuning, and
capacity planning require an understanding of the software that goes beyond
normal views; it is necessary to see what is happening inside the
application.
Test fixes
Once a problem has been diagnosed, a fix can be tested using probes (without
rebuilding the software). If the fix works, the probes can be left in place
so the software functions properly until a new build can be installed.
Inject faults
To have full test coverage, you need to induce errors. With Aprobe, you can
simulate virtually any kind of fault, error or overload condition.
Verify requirements
Up to half of all requirements can be collected and verified with probes,
making it easier to "sell off" the system. Even more can be verified if the
software authors include probes as they design the software.
Insert assertions
Software can be written to be self-checking. Assertions verify that the
state of the application is correct, and notify the user/operator if the
assertion fails; i.e., if the state of the application is not correct or is
dubious. Well-designed assertions can detect an application anomaly long
before the application fails, and save time diagnosing a small problem
before it cascades to a more serious one. With Aprobe, you can add and
remove assertions without changing the application at all.
Perform white-box testing
Functional (or black-box) testing tools ensure that, for a given set of
inputs, outputs will be appropriate. They do not verify that the output was
derived correctly. White-box testing examines these internal processes.
Typical white-box tests include test coverage, timing, tracing, and fault
injection. Aprobe allows you to incorporate white-box tests into your
regression analysis, uncovering errors that might otherwise be missed.
AND MORE
Perform capacity planning
Obtain the resource usage data that you need to feed into your capacity planning model. With knowledge about how much CPU, memory, network and disk I/O your system uses, you can better plan for your future needs.
Manage betas
Probes can be included in beta software to monitor the functioning in the
user’s environment, speed debugging, and gather information about the way
beta testers use the software. If a feature has not been tested by beta
testers, you will need to test it yourself. You may also need better beta
usersor perhaps you don’t really need the feature.
Improve software
comprehension
Ongoing staff turnover is a problem for any application. Tracing probes help
developers acquire an understanding of the dynamics of a complex
application, so maintenance and software enhancement planning become less
risky.
Add new capabilities to your software
If you sell software products or services, Aprobe may provide the technology
needed to turbo your solution into new markets. You’ll be impressed with how
quickly we can build in new functionality. Contact us at
to discuss your product ideas.
|