Top Banner
Ericsson Canada TC team: Simon Delisle, Bernd Hufmann, Matthew Khouzam, Patrick Tasse Polytechnique: Geneviève Bastien, Michel Dagenais (presenter) A New Flexible Architecture for Trace Compass
17

A New Flexible Architecture for Trace Compass

May 04, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A New Flexible Architecture for Trace Compass

Ericsson Canada TC team: Simon Delisle, Bernd Hufmann, Matthew Khouzam, Patrick Tasse

Polytechnique: Geneviève Bastien, Michel Dagenais (presenter)

A New Flexible Architecture for Trace Compass

Page 2: A New Flexible Architecture for Trace Compass

2

Summary

● What is Trace Compass and Theia

● Trace Compass evolution

● Trace Server Protocol

● Trace Compass on Theia

● Scripting with Ease

● Conclusion

Some of this work was performed as part of a Collaborative Research and Development project at Polytechnique Montreal with Ericsson, Ciena and EfficiOS, with funding from NSERC, Prompt, Ericsson, Ciena, Google and EfficiOS.

Page 3: A New Flexible Architecture for Trace Compass

3

● Trace● Series of events over time● Event collected at tracepoints during program

execution● Each event has a type and payload

● Use the events as input for analysis● Create visualization graphs with these analysis● Tracing use cases

● Profile application● Find long executions● Investigate real-time deadlines● Find memory or load issues● Investigate concurrency problems

Trace Compass: an open source trace analysis tool to solve performance and reliability problems

Page 4: A New Flexible Architecture for Trace Compass

4

● Cloud and desktop IDE● Modules in different langages accessed through

protocols.● Based on several existing state-of-the-art modules :

● Monaco editor● Chromium● React.js● Language servers● Debug adapters● Visual Studio Code extensions

Theia: an extensible open-source framework to develop multi-language IDEs for the cloud and desktop using state-of-the-art web technologies

Page 5: A New Flexible Architecture for Trace Compass

5

Trace Compass architecture

Trace Compass Core

Trace Compass UI

Trace State

System

Segment

store

Trace Compass Core

Trace Compass UI

Trace State

System

Segment

store

Data Providers

Current (ongoing)

Page 6: A New Flexible Architecture for Trace Compass

6

Proposed Client-Server architecture

Trace Compass Core

Trace Compass UI

Trace State

System

Segment

store

Trace Compass Core

Theia

Trace State

System

Segment

store

Trace Server Protocol (REST or RPC)

Data Serializer

Data Providers

Presentation Layer

Business Layer

Data Layer

TraceServer

Data Providers

Page 7: A New Flexible Architecture for Trace Compass

7

Trace Server Protocol

Language Server

Debug Server

Trace Server

Trace Server Protocol (TSP)Debug Adapter Protocol (DAP)Language Server Protocol (LSP)

Page 8: A New Flexible Architecture for Trace Compass

8

● Protocol built to handle communication between backend and frontend of trace viewer, allowing traces to reside and be analysed on the backend.

● Exchange visualization data between a client and a server● Trace management● Server-side filtering and searching● https://github.com/theia-ide/trace-server-protocol● Integration with Theia using tsp-typescript-client

● TSP ready client to perform your requests● Abstract the technology used (REST, HTTP)● NPM package available● https://github.com/theia-ide/tsp-typescript-client

● Contributions and feedback are welcome

Trace Server Protocol (TSP)

Page 9: A New Flexible Architecture for Trace Compass

9

● Modular architecture (using modules in different langages leveraging LSP, DAP…).

● Thin UI client or scripted access.

● Leveraging modern UI technologies (React.js)

● Continuous integration (e.g. traces directly from Jenkins)

● Integration with bug report tools (e.g. open traces)

● Integration with workspace management (e.g. Eclipse Che)

● Higher scalability / Performance

● Security (traces in the cloud)

Opportunities

Page 10: A New Flexible Architecture for Trace Compass

10

Leveraging LSP and DAP

LSP to lookup source code

— DAP to get file and line number

— Then use LSP to lookup source code

Page 11: A New Flexible Architecture for Trace Compass

11

● Prepare workspace for trouble-shooting sessions

● Cloud IDE

● Get source code

● LSP

● Setup debuggers

● DAP

● Setup trace viewer

● TSP

● Share trouble-shooting sessions (workspaces)

Integration with workspace management

Browser

Workspace management server

Theia

Trace server

Language servers

Debug servers

Theia ext. (Trace viewer)

Page 12: A New Flexible Architecture for Trace Compass

12

● Enables micro-services

● Distributed architecture

● Parallel, distributed analysis

● Different traces

● Same traces, different analysis

● Analyze traces that exceed local disk space

Higher Scalability

Trace Server

Traces

Analysis 2

Analysis 1

TSP

Page 13: A New Flexible Architecture for Trace Compass

13

Theia frontend

● Theia based prototype using the TSP

● Prototype available on GitHub https://github.com/delislesim/theia-trace-extension/tree/theiaCompass

● Opportunity for a new UI/UX

● React

● Chart.js

● agGrid

● New time graph library

Page 14: A New Flexible Architecture for Trace Compass

14

Scripted Analyses with Ease

● Finite number of available analyses

● Some flexibility with XML analyses:

● Very verbose

● Hard to read

● Hard to debug

● But it works!

● Ultimate flexibility: scripting

Page 15: A New Flexible Architecture for Trace Compass

15

Provided by Trace Compass

EASE : Eclipse Advanced Scripting Environment

EASE Core:Integrates scripting

In Eclipse

Script engines

Nashorn+(js)

JRuby

Groovy

Jython*+(python)

Rhino*&(js)

* Engine supports debugging+ Tested and working& Some module functions have problems

supports

Modules

provides API for

Analysis Utils

FiltersDataProvider

View

Others

Page 16: A New Flexible Architecture for Trace Compass

16

Conclusion

● Functionality in Trace Compass migrated gradually to Data Providers

● Most new features are implemented in the backend and work on both frontends

● New views are added to Theia Trace Compass gradually

● Feature parity will not be reached for at least several months

● Some experimental views may be implemented in Theia first

● A new IDE for the Cloud with Theia and Trace Compass

Page 17: A New Flexible Architecture for Trace Compass

17

● Trace Compass: http://tracecompass.org

● Mailing list: [email protected]

● IRC: oftc.net #tracecompass

● Trace Server Protocol

● https://github.com/theia-ide/trace-server-protocol

● https://github.com/theia-ide/tsp-typescript-client

● Theia frontend prototype

● https://github.com/delislesim/theia-trace-extension/tree/theiaCompass

● Trace Compass scripting demo: http://versatic.net/tracingSummit2019.html

Reaching us