Automated Inference of Execution Traces with Stack Trace Sampling

Motivation

In the last decade, application performance management (APM) solutions have been developed supporting enterprises with monitoring capabilities and early detection of performance problems. Leading application APM solutions mostly support only alerting and visualization of performance-relevant measures. The configuration of the software instrumentation, the diagnosis of performance problems, and the isolation of the concrete root cause(s) often remain error-prone and frustrating manual tasks. To this day, these tasks are performed by costly and rare performance experts. In order to improve this situation, NovaTec Consulting GmbH and the University of Stuttgart (Reliable Software Systems Group) launched the collaborative research project diagnoseIT on "Expert-guided Automatic Diagnosis of Performance Problems in Enterprise Applications". Hereby, the core idea is to formalize APM expert knowledge to automatically execute recurring APM tasks such as the configuration of a meaningful software instrumentation and the diagnosis of performance problems to isolate their root cause. By delegating the described tasks to diagnoseIT, experts do not have to deal with similar problems over and over again. Instead, the expert can focus on more challenging (and interesting) tasks.

Problem

The automated diagnosis analyzes traces, individual or as a stream provided by monitoring capabilities of APM solutions. Many APM solutions such as Kieker and inspectIT create a trace from the monitoring information instrumented and executed methods of an application. The instrumentation requires a-priori knowledge about the source code to define a meaningful instrumentation. If this a-priori knowledge is not available it is difficult to decide what other methods are executed but not instrumented and are relevant for the diagnosis. A different approach to collect data is stack trace sampling. To make use of stack trace sampling as monitoring method, traces for diagnoseIT have to be inferred based on stack trace samples.

Tasks

  • Development of a concept to infer traces from stack trace samples
  • Prototyping of the concept
  • Impact evaluation of stack trace sampling on performance and scalability
  • Evaluation of the concept in a case study

Challenges

  • Determination of method execution times from stack trace samples
  • Inference of traces that correspond to user requests

Locations

  • Stuttgart (preferred)
  • Frankfurt (remote supervision)
  • Munich (remote supervision)
  • Berlin (remote supervision)

Contact