Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ should help developers trying to add new capabilities (support for new trace
type, new analysis or views, etc.) to the framework. End-users, using the RCP
for example, should not have to worry about the concepts explained here.

= Trace Compass Server =

For development for `Trace Compass Trace Server` see the [https://github.com/eclipse-tracecompass/org.eclipse.tracecompass/blob/master/doc/trace-server/trace-server-dev-guide.md | Trace Server Developer Guide].

= Implementing a New Trace Type =

The framework can easily be extended to support more trace types. To make a new
Expand Down
73 changes: 71 additions & 2 deletions doc/trace-server/trace-server-dev-guide.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,74 @@
# Introduction
# Trace Compass Server Developer Guide
<!-- TOC START -->
- [Trace Compass Server Developer Guide](#trace-compass-server-developer-guide)
- [Introduction](#introduction)
- [Key Concepts](#key-concepts)
- [Analysis](#analysis)
- [Configuration](#configuration)
- [Configuration source](#configuration-source)
- [Configuration source type](#configuration-source-type)
- [Data Provider (Output)](#data-provider-output)
- [Data Provider Configurator](#data-provider-configurator)
- [Data Provider Factory](#data-provider-factory)
- [Data Provider Descriptor (Output Descriptor)](#data-provider-descriptor-output-descriptor)
- [Data Provider Manager](#data-provider-manager)
- [Data Provider Type](#data-provider-type)
- [Experiment](#experiment)
- [Generic State system](#generic-state-system)
- [Segment Store](#segment-store)
- [Trace](#trace)
- [Workspace](#workspace)
- [Trace Compass Server Workspace](#trace-compass-server-workspace)
- [Workspace Root](#workspace-root)
- [`.metadata` Folder](#metadata-folder)
- [`Tracing` Project folder](#tracing-project-folder)
- [`Traces` Folder](#traces-folder)
- [`Experiments` Folder](#experiments-folder)
- [Supplementary `.tracing` Folder](#supplementary-tracing-folder)
- [Finding the supplementary folder for a trace or experiment](#finding-the-supplementary-folder-for-a-trace-or-experiment)
- [Implementing a custom trace server](#implementing-a-custom-trace-server)
- [Implementing a new trace type](#implementing-a-new-trace-type)
- [Component interactions](#component-interactions)
- [Implementing a global configuration](#implementing-a-global-configuration)
- [Implementing a configuration source](#implementing-a-configuration-source)
- [Implementing an analysis module](#implementing-an-analysis-module)
- [Taking advantage of the Analysis Framework](#taking-advantage-of-the-analysis-framework)
- [Creating a data provider](#creating-a-data-provider)
- [Creating an XY Data Provider](#creating-an-xy-data-provider)
- [Supported query parameters](#supported-query-parameters)
- [Creating a Time Graph Data Provider](#creating-a-time-graph-data-provider)
- [Supported query parameters](#supported-query-parameters-1)
- [Creating a Data Tree Data Provider](#creating-a-data-tree-data-provider)
- [Supported query parameters](#supported-query-parameters-2)
- [Virtual Table](#virtual-table)
- [Supported query parameters](#supported-query-parameters-3)
- [Using the data provider manager to access data providers](#using-the-data-provider-manager-to-access-data-providers)
- [Implementing a Data Provider Factory](#implementing-a-data-provider-factory)
- [Extension point](#extension-point)
- [Using data provider factories with experiments](#using-data-provider-factories-with-experiments)
- [Utilities](#utilities)
- [Registering a data provider factory programmatically](#registering-a-data-provider-factory-programmatically)
- [Implementing a facotry for single-instance data providers](#implementing-a-facotry-for-single-instance-data-providers)
- [Implementing a facotry for multi-instance data providers](#implementing-a-facotry-for-multi-instance-data-providers)
- [Grouping of data providers](#grouping-of-data-providers)
- [Implementing a data provider without analysis module](#implementing-a-data-provider-without-analysis-module)
- [Implementing a configurable data provider](#implementing-a-configurable-data-provider)
- [Implementing a configuration source type](#implementing-a-configuration-source-type)
- [The configuration source type describes the input parameters to provide when to pass when creating a new data provider or global configuration.](#the-configuration-source-type-describes-the-input-parameters-to-provide-when-to-pass-when-creating-a-new-data-provider-or-global-configuration)
- [Implementing a configurable data provider without analysis module](#implementing-a-configurable-data-provider-without-analysis-module)
- [Implementing an `ITmfDataProviderConfigurator` without analysis module](#implementing-an-itmfdataproviderconfigurator-without-analysis-module)
- [Updating data provider factory for configurable data provider (without analysis module)](#updating-data-provider-factory-for-configurable-data-provider-without-analysis-module)
- [Updating data provider class for configurable data provider (without analysis module)](#updating-data-provider-class-for-configurable-data-provider-without-analysis-module)
- [Implementing a configurable data provider with an analysis module](#implementing-a-configurable-data-provider-with-an-analysis-module)
- [Implementing an `ITmfDataProviderConfigurator` with analysis module](#implementing-an-itmfdataproviderconfigurator-with-analysis-module)
- [Creating a configurable analysis module](#creating-a-configurable-analysis-module)
- [Updating data provider factory for configurable data provider (with analysis module)](#updating-data-provider-factory-for-configurable-data-provider-with-analysis-module)
- [Updating data provider class for configurable data provider (with analysis module)](#updating-data-provider-class-for-configurable-data-provider-with-analysis-module)
- [Future considerations](#future-considerations)
- [To Do](#to-do)
<!-- TOC END -->

## Introduction

The purpose of Trace Compass trace server is to facilitate the integration of trace analysis and visualization using client applications that implement the `Trace Server Protocol`, for example, the `vscode-trace-extension` or `tsp-python-client`.

Expand Down Expand Up @@ -3157,4 +3227,3 @@ Provide guides for other features relevant for developing a custom trace server
- Time graph filtering
- Details on creating a virtual table
- How to add a new data provider type

Loading