How to debug Gstreamer pipeline performance?

Which tools are available to debug pipelines?

Gstreamer is a widely used open source platform and there are many tools to debug and profile Gstreamer’s performance.
More detailed explanation and examples can be found in TAPPAS debugging manual

Basic option: gst-top

The most simple one is gst-top from GitHub - kirushyk/gst-instruments: Easy-to-use profiler for GStreamer
This is already installed in your TAPPAS environment.
To run add gst-top-1.0 to your CLI Gstreamer pipeline or executable.
For example:
gst-top-1.0 gst-launch-1.0 videotestsrc ! autovideosink

This will create a gst-top.gsttrace file.
To read the file use:
gst-report-1.0 gst-top.gsttrace

Example output:

gst-report-1.0 gst-top.gsttrace
ELEMENT                              %CPU   %TIME   TIME
autovideosink0-actual-sink-xvimage     0.8   90.1   23.4 ms
videotestsrc0                          0.1    9.9   2.56 ms
pipeline0                              0.0    0.0      0 ns
autovideosink0                         0.0    0.0      0 ns

This will give you a rough understanding of which part of the pipeline is using most of your reasources.

Advanced option: Gst-Shark

RidgeRun implemented excellent tools and documentation for debugging Gstreamer.
See the link above for lots of useful information, it is a great resource.
It allows you to get graphic description for your pipeline with lots of additional graphs like: CPU usage, Framerate, Queue Level, InterLatency, Bitrate and more.

gst-shark is also pre-installed in you TAPPAS environment with shortcuts and scripts.
See TAPPAS debugging manual for more information.