OCS: How Can You Use Aprobe?
The patented Aprobe technology is designed to monitor the execution of an application, collect data, and modify the applications behavior in production and near-production environments. Aprobe-based tools can be used to accomplish a wide range of post-development activities.
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.
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.
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 your application monitoring and management system. 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.
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.
Aprobe can easily handle highly complex networked or distributed systems, as well as multi-threaded applications. Aprobes advantages over interactive debuggers include:
- Probes induce minimal overhead, can be left in your application.
- The application runs at full machine speeds; you dont have to single-step through the code.
- You can run through the entire program and examine results offline when and if an error occurs.
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.
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.
To have full test coverage, you need to induce errors. With Aprobe, you can simulate virtually any kind of fault, error or overload condition.
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.
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.
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.
Probes can be included in beta software to monitor the functioning in the users 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 users—or perhaps you dont 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. Youll be impressed with how quickly we can build in new functionality.