APM Interoperability with OPEN.xtrace: Overview and Lessons learned

When a system receives a request, it invokes a method calling further methods to provide the information for which the user asked for. Every step between the request and the response from the system takes time and resources to compute. An Application Performance Management (APM) tool tracks these steps and records the time and resources each method call requires and builds a so-called execution trace from it [1].

In research and industrial practice, execution traces serve as an important basis for model-based and measurement-based performance evaluation, e.g., for application performance monitoring (APM), extraction of descriptive and prescriptive models, as well as problem detection and diagnosis. A number of commercial and open-source APM tools that allow the capturing of execution traces within distributed software systems is available.

However, the amount of information and the structure of a trace varies by different APM tools. On one hand, some of the results of different tools can overlap and contain the same performance measurements. On the other hand, some of these measurements may not be needed for analyzing the performance of a system. We recently presented the Open Execution Trace Exchange (OPEN.xtrace) format to enable data interoperability and exchange between APM tools and software performance engineering (SPE) approaches [2]. The intention of OPEN.xtrace is to create a universal data format which can contain data from different APM tools. This allows the interchange and interoperability between APM tools. Particularly, this enables SPE researchers to develop their approaches in a tool-agnostic and comparable manner, e.g., diagnoseIT [3].

We investigated well-known APM tools from the Gartner APM report [4] and compared the data that is available in these tools. The goal was to improve the OPEN.xtrace format on the basis of the information collected during our investigation. In this talk we will present the current state of our overview of the data available in the tools.

The second part of our talk will focus on how to convert the monitoring data obtained from selected tools (Dynatrace, CA APM, Kieker, inspectIT) into OPEN.xtrace. Since all the tools have their own format for the data representation, we will present how this data can be harvested. We will present the lessons learned from investigating the available tools, the procedures and required steps on how to obtain the data, as well as how to convert it to OPEN.xtrace. For some of the tools we have developed the adapters, but the procedure to get the data is often not straightforward. Other than adapters, we will present the tooling support which allows easier use of the format. All of the artifacts are available as open source.

OPEN.xtrace is a community effort as part of the overall goal to increase interoperability of SPE/APM techniques and tools. It is being developed under the umbrella of SPEC RG [5]. One major goal of our talk is to engage the community, including researchers and APM vendors, to influence and get involved into the further development of the OPEN.xtrace.

[1] Canfora, G., Penta, M.D., Cerulo, L.: Achievements and challenges in software reverse engineering. Communications of the ACM 54(4), pp. 142–151. 2011.
[2] Okanović, D., van Hoorn, A., Heger, C., Wert, A. and Siegl, S.: Towards Performance Tooling Interoperability: An Open Format for Representing Execution Traces. 13th European Workshop on Performance Engineering (EPEW '16), Chios, Greece. 2016. (to appear)
[3] Heger, C., van Hoorn, A., Okanović, D., Siegl, S. and Wert, A.: Expert-Guided Automatic Diagnosis of Performance Problems in Enterprise Applications. 12th European Dependable Computing Conference (EDCC '16), Gothenburg, Sweden. 2016. (to appear)
[4] Kowall, J., Cappelli, W.: Magic quadrant for application performance monitoring. 2014.
[5] SPEC Research Group: OPEN — APM interoperability initiative. research.spec.org/apm-interoperability/ (2016)