dynaTrace software GmbH
Login Contact Deutsch
 
Skip Navigation Links

dynaTrace Diagnostics - a fresh pain reliever for software and performance problems in distributed Java and .NET systems under load

Source: theserverside.com

Isolating software and performance problems in distributed systems under load is a daunting task. dynaTrace software GmbH – a high tech company focused completely on diagnostics of distributed and heterogeneous Java and .NET Systems – has taken a fresh approach to relieve it: dynaTrace Diagnostics 1.6.1 enables software engineers, quality and operating staff to trace and measure the exact flow of user transactions from the UI to the database, across all Java/.NET layers and tiers, providing deep insight into what is regarded as “black boxes” by “traditional” tools and approaches.

The motivation

“We have been studying 3 gigs of log files produced by our client software, the presentation server, our application server, our data access layer and the database server. Every night for the last three weeks. Every Thursday and Friday the business logic layer of our system seems to cause a problem. Our monitoring tool gives us early warnings when the system performance starts do degrade and memory consumption increases. From that moment we can merely watch our servers fade out and restart them.”
Sounds familiar?

A fresh approach

There is a fast and efficient relieve for this kind of trouble now: dynaTrace – a high tech company focused completely on diagnostics of distributed and heterogeneous Java and .NET Systems - has taken a new approach: dynaTrace Diagnostics enables software engineers, quality and operating staff to trace and measure the exact flow of user transactions under load. From the UI to the database, across all Java/.NET layers and tiers, providing deep insight into what is regarded as “black boxes” by “traditional” tools and approaches. Before, the pain for the problem searcher has come from the fact that he had to use several tools, each of which looks at the “black boxes” either from the outside or the inside:

  • Developer tools like profiler and debuggers provide us with a great detail of “inside” information. But they can – of course – only be used in a development environment and on one virtual machine.
  • Active monitoring or load test tools look at the black boxes from the outside, through certain façades: HTTP requests in case of typical web applications, web-service calls in case of web service oriented systems, RMI, Session or Message Driven Beans in case of EJB-style systems.
  • Passive monitoring can look at the black boxes from the inside: Via a management/performance API or agents that sniff what is going on. It provides us with statistical data like number of components instantiated, memory consumption, number of interface methods called etc.
  • Tracing: Tracing is placed into the source code by the developers, either by explicit source-level statements (such as log4j) or by AOP. It is clearly an “inside” view of the black boxes. It is fundamentally different from the other options because it provides the concrete transaction flow within one VM. That’s why operating and developers must study gigs of trace/log files when it comes to find a concrete problem and not a statistical one.

dynaTrace Diagnostics is putting it all together

dynaTrace Diagnostics – as mentioned above – provides the complete transaction trace across layers and tiers, it combines the “inside and outside views”. It achieves that by not gathering gigs of log information and by not correlating them afterwards by certain criteria (such as timestamps or network protocol information) but by recording only the events along the relevant transaction traces (“PurePaths”) as the basis information of diagnostics in real time. You can configure via point and click how much detail (which packages, classes, methods, interfaces, servlets, parameters, return values etc.) you need to trace exactly. And: You don’t have to modify your source code in any way, neither directly nor via AOP. It’s a kind of magic.
By additionally recording context information with each of these PurePaths (such as method calls including their consumed execution time or pure CPU time, method parameters, SQL statements including bind parameters, remoting details, virtual machine memory allocation) it allows the problem searcher to exactly reproduce the root cause of a problem and to finally solve it.
dynaTrace Diagnostics analyzes PurePaths efficiently in two directions:

  • “Top down”, e.g. starting from “slow” web pages, tracking them down to the calls in the web layer (e.g. servlets), the method calls in the business layer, the data access methods in the O/R mapper down to the SQL statement via JDBC or ADO.
  • “Bottom up”, e.g. starting from an exception within the business layer, dynaTrace Diagnostics is again capable of reproducing the complete error causing user transaction from the UI down to the exception. This is a kind of “double slit” challenge: After the problem has happened, you want to go back in time and find out what had caused it.
Various out of the box diagnostics views provide drill downs, drill ups, filters, correlations and aggregations to narrow down problems in a speed never known before. They analyze data access (e.g. JDBC, Hibernate, TopLink) , web pages (e.g. servlets, JSPs, Struts), enterprise frameworks (e.g. EJB, Spring), transactions (JTA, XA), remoting and web services, logging, exceptions, memory leaks, synchronisation issues, and any self-implemented or bought third party framework.

And it works under load?

Yes. By measuring only the events along the relevant PurePaths, by allowing you to exactly restrict (via point and click) which events should be measured and by providing a completely new diagnostics architecture (the systems under diagnostics is not burdened with calculation and aggregation tasks) dynaTrace Diagnostics is perfectly suited to run in load test or even production systems.

A tool for the whole family

dynaTrace Diagnostics supports the complete software lifecycle:

  • Architects and developers: By helping them evaluate and validate executable architectures (prototypes) in early stages of development. Furthermore, the architects can (again via point and click) prepare and define the information they need in case of a problem during production.
  • Quality assurance: DTD provides valuable insights into applications under load tests: top down and bottom up analysis.
  • Production: DTD observes the production system: It observers thresholds on vital PurePath events (such as complete transaction duration, database statement, remoting calls, interface call to third party or legacy systems), it creates notifications in case of threshold violations, it records the complete transaction trace which has caused a violation, it correlates the traces with system information such as memory usage, garbage collection and much more. This is the basis for a server side service level management.
And: All the information gathered by the different teams can be easily exchanged with other teams. If thresholds are violated in the production system, the operating can simply dump the erroneous PurePaths and send it over to the development team instead of gigs of log files. The developers can check and reproduce every detail of the transactions using the dynaTrace offline client.

Go beyond monitoring, take action

dynaTrace Diagnostics is much more than monitoring, it provides you with an in-depth radiograph of what is exactly going on and thereby enables you to take action immediately.

Article at www.theserverside.com

back
Questions?



© dynaTrace software® 2008