Repository Summary

Checkout URI https://gitlab.com/ros-tracing/tracetools_analysis.git
VCS Type git
VCS Version eloquent
Last Updated 2020-03-08
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
ros2trace_analysis 0.2.2
tracetools_analysis 0.2.2

README

tracetools_analysis

pipeline status

Analysis tools for ROS 2 tracing.

Setup

Install:

  • pandas
    $ sudo apt-get install python3-pandas
    

To display results, install:

Trace analysis

After generating a trace (see ros2_tracing), we can analyze it to extract useful execution data.

Commands

Since CTF traces (the output format of the LTTng tracer) are very slow to read, we first convert them into a single file which can be read much faster.

$ ros2 trace-analysis convert /path/to/trace/directory

Then we can process it to create a data model which could be queried for analysis.

$ ros2 trace-analysis process /path/to/trace/directory

Jupyter

The last command will process and output the raw data models, but to actually display results, process and analyze using a Jupyter Notebook.

$ jupyter notebook

Then navigate to the analysis/ directory, and select one of the provided notebooks, or create your own!

For example:

from tracetools_analysis import loading
from tracetools_analysis import processor
from tracetools_analysis import utils

# Load trace directory or converted trace file
events = loading.load_file('/path/to/trace/or/converted/file')

# Process
ros2_handler = processor.Ros2Handler()
cpu_handler = processor.CpuTimeHandler()

processor.Processor(ros2_handler, cpu_handler).process(events)

# Use data model utils to extract information
ros2_util = utils.ros2.Ros2DataModelUtil(ros2_handler.data)
cpu_util = utils.cpu_time.CpuTimeDataModelUtil(cpu_handler.data)

callback_durations = ros2_util.get_callback_durations()
time_per_thread = cpu_util.get_time_per_thread()
# ...

# Display, e.g. with bokeh or matplotlib
# ...

Design

See the ros2_tracing design document, especially the Goals and requirements and Analysis sections.

Repository Summary

Checkout URI https://gitlab.com/ros-tracing/tracetools_analysis.git
VCS Type git
VCS Version dashing
Last Updated 2020-03-08
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
ros2trace_analysis 0.2.2
tracetools_analysis 0.2.2

README

tracetools_analysis

pipeline status

Analysis tools for ROS 2 tracing.

Setup

Install:

  • pandas
    $ sudo apt-get install python3-pandas
    

To display results, install:

Trace analysis

After generating a trace (see ros2_tracing), we can analyze it to extract useful execution data.

Commands

Since CTF traces (the output format of the LTTng tracer) are very slow to read, we first convert them into a single file which can be read much faster.

$ ros2 trace-analysis convert /path/to/trace/directory

Then we can process it to create a data model which could be queried for analysis.

$ ros2 trace-analysis process /path/to/trace/directory

Jupyter

The last command will process and output the raw data models, but to actually display results, process and analyze using a Jupyter Notebook.

$ jupyter notebook

Then navigate to the analysis/ directory, and select one of the provided notebooks, or create your own!

For example:

from tracetools_analysis import loading
from tracetools_analysis import processor
from tracetools_analysis import utils

# Load trace directory or converted trace file
events = loading.load_file('/path/to/trace/or/converted/file')

# Process
ros2_handler = processor.Ros2Handler()
cpu_handler = processor.CpuTimeHandler()

processor.Processor(ros2_handler, cpu_handler).process(events)

# Use data model utils to extract information
ros2_util = utils.ros2.Ros2DataModelUtil(ros2_handler.data)
cpu_util = utils.cpu_time.CpuTimeDataModelUtil(cpu_handler.data)

callback_durations = ros2_util.get_callback_durations()
time_per_thread = cpu_util.get_time_per_thread()
# ...

# Display, e.g. with bokeh or matplotlib
# ...

Design

See the ros2_tracing design document, especially the Goals and requirements and Analysis sections.

Repository Summary

Checkout URI https://gitlab.com/ros-tracing/tracetools_analysis.git
VCS Type git
VCS Version galactic
Last Updated 2021-04-27
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
ros2trace_analysis 2.0.3
tracetools_analysis 2.0.3

README

tracetools_analysis

pipeline status codecov

Analysis tools for ROS 2 tracing.

Trace analysis

After generating a trace (see ros2_tracing), we can analyze it to extract useful execution data.

Commands

Since CTF traces (the output format of the LTTng tracer) are very slow to read, we first convert them into a single file which can be read much faster.

$ ros2 trace-analysis convert /path/to/trace/directory

Then we can process it to create a data model which could be queried for analysis.

$ ros2 trace-analysis process /path/to/trace/directory

Jupyter

The last command will process and output the raw data models, but to actually display results, process and analyze using a Jupyter Notebook.

$ jupyter notebook

Then navigate to the analysis/ directory, and select one of the provided notebooks, or create your own!

For example:

from tracetools_analysis import loading
from tracetools_analysis import processor
from tracetools_analysis import utils

# Load trace directory or converted trace file
events = loading.load_file('/path/to/trace/or/converted/file')

# Process
ros2_handler = processor.Ros2Handler()
cpu_handler = processor.CpuTimeHandler()

processor.Processor(ros2_handler, cpu_handler).process(events)

# Use data model utils to extract information
ros2_util = utils.ros2.Ros2DataModelUtil(ros2_handler.data)
cpu_util = utils.cpu_time.CpuTimeDataModelUtil(cpu_handler.data)

callback_durations = ros2_util.get_callback_durations()
time_per_thread = cpu_util.get_time_per_thread()
# ...

# Display, e.g. with bokeh or matplotlib
# ...

Note: bokeh has to be installed manually, e.g. with pip:

$ pip3 install bokeh

Design

See the ros2_tracing design document, especially the Goals and requirements and Analysis sections.

Packages

ros2trace_analysis

Package containing a ros2cli extension to perform trace analysis.

tracetools_analysis

Package containing tools for analyzing trace data.

See the API documentation.

Repository Summary

Checkout URI https://gitlab.com/ros-tracing/tracetools_analysis.git
VCS Type git
VCS Version foxy
Last Updated 2021-04-02
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
ros2trace_analysis 1.0.3
tracetools_analysis 1.0.3

README

tracetools_analysis

pipeline status

Analysis tools for ROS 2 tracing.

Trace analysis

After generating a trace (see ros2_tracing), we can analyze it to extract useful execution data.

Commands

Since CTF traces (the output format of the LTTng tracer) are very slow to read, we first convert them into a single file which can be read much faster.

$ ros2 trace-analysis convert /path/to/trace/directory

Then we can process it to create a data model which could be queried for analysis.

$ ros2 trace-analysis process /path/to/trace/directory

Jupyter

The last command will process and output the raw data models, but to actually display results, process and analyze using a Jupyter Notebook.

$ jupyter notebook

Then navigate to the analysis/ directory, and select one of the provided notebooks, or create your own!

For example:

from tracetools_analysis import loading
from tracetools_analysis import processor
from tracetools_analysis import utils

# Load trace directory or converted trace file
events = loading.load_file('/path/to/trace/or/converted/file')

# Process
ros2_handler = processor.Ros2Handler()
cpu_handler = processor.CpuTimeHandler()

processor.Processor(ros2_handler, cpu_handler).process(events)

# Use data model utils to extract information
ros2_util = utils.ros2.Ros2DataModelUtil(ros2_handler.data)
cpu_util = utils.cpu_time.CpuTimeDataModelUtil(cpu_handler.data)

callback_durations = ros2_util.get_callback_durations()
time_per_thread = cpu_util.get_time_per_thread()
# ...

# Display, e.g. with bokeh or matplotlib
# ...

Note: bokeh has to be installed manually, e.g. with pip:

$ pip3 install bokeh

Design

See the ros2_tracing design document, especially the Goals and requirements and Analysis sections.

Packages

ros2trace_analysis

Package containing a ros2cli extension to perform trace analysis.

tracetools_analysis

Package containing tools for analyzing trace data.

See the API documentation.