Bustle – someone's favourite D-Bus profiler

Bustle showing some D-Bus traffic

Bustle is a better dbus-monitor. It records and draws sequence diagrams of D-Bus activity, showing signal emissions, method calls and their corresponding returns, with timestamps for each individual event and the duration of each method call. This can help you check for unwanted D-Bus traffic, and pinpoint why your D-Bus-based application isn't performing as well as you like. It also provides statistics like signal frequencies and average method call times.


Using Bustle

With luck, Bustle itself should be self-explanatory: run it, click the button to record some D-Bus traffic, explore it, save or export the log.

If you want to record traffic without running the UI (maybe on an embedded platform which doesn't have Gtk+ and/or a Haskell compiler), you can use the stand-alone logger, which is just a C program:

bustle-pcap logfile.bustle

You can then open logfile.bustle in Bustle.

You can also get some ASCII-art version of the statistics shown in the UI:

bustle --count logfile.bustle
bustle --time logfile.bustle

Integration with other tools

  • DBus Test Runner has built-in support for recording a Bustle log of your tests' D-Bus traffic.


The canonical Git repository is at gitlab.freedesktop.org with a mirror on GitHub.

Please report bugs on gitlab.freedesktop.org.

You will need a C compiler, a Haskell compiler and many libraries. Try:

cabal sandbox init
cabal install alex happy gtk2hs-buildtools
cabal install

To just build the C-only bustle-pcap logger, run make.

In new code, try to follow this Haskell style guide.

Please send patches as merge requests.


Bustle is written and maintained by Will Thompson (originally courtesy of Collabora Ltd.), with contributions by Alex Merry, Arnaud Bonatti, Chris Lamb, Cosimo Alfarano, Dafydd Harries, Lennart Poettering, Marc Kleine-Budde, Philip Withnall, Sergei Trofimovich, Αποστολίδου Χρυσαφή, and Jonny Lamb. It was originally inspired by a similar tool by Alban Crequy.