Analyzing and visualizing traces and logs of a system is a powerful and proven trouble-shooting technique to solve performance and reliability issues. Trace Compass is an open source trace visualizer that handles large traces of a single application, single computer or a distributed system. The Trace Compass project is currently on a journey towards a cloud-based trace analysis and visualization solution using Eclipse Theia.
It started with the re-architecture of Trace Compass that decoupled the core and UI components and allowed for a separate front-end and back-end. The trace server back-end fully consists of Trace Compass core components with all their rich set of features. A thin layer was added to be able to transport the trace data and computed results towards the trace client. The Trace Server Protocol (TSP) has been defined for the purpose of exchanging visualization data between a client and a server. Trace server backend and TSP then allowed the development of a new web-front-end using Eclipse Theia. Theia is an extensible open-source framework to develop applications (for example multi-language IDEs) for the cloud and desktop using state-of-the-art web technologies.
Having a layered architecture for trace visualization will allow the integration with web-based IDEs to support software design use cases. The IDE can leverage the Language Server Protocol (LSP) to get the source code files referenced in traces or use the Debug Adapter Protocol (DAP) to resolve symbols from binaries.
This new architecture also allows better integration with other web-services like continuous integration (CI), trouble-reporting tools, or workspace management solutions like Eclipse Che. For example, after running their nightly builds, users will be able to open the trace analysis results directly from their Jenkins instance.
In this session, we will go over the Trace Compass journey towards a client-server application and show what has been done so far to make trace visualization on top of Theia a reality. I will also highlight new opportunities outside of traditional IDE features.