Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Translates Mozilla buildbot pulse messages into a standardized format for easier consumption
Branch: master


The pulsetranslator script consumes Mozilla buildbot pulse messages and then re-publishes them in a normalized format. It does this because native buildbot messages do not share any consistent structure, and change frequently and without warning. Consuming them directly is therefore error-prone and subject to frequent failure.

The normalized messages are published to the exchange "exchange/build/normalized".

Installing, Configuring, and Running

Install pulsetranslator as any regular Python package:

python install

You'll need to create a ini-style config file with information on the Pulse accounts. It should have both [publisher] and [consumer] sections, and both must contain at least "user" and "password" options. They can also include any of the standard mozillapulse configuration options.

The minimum command line to run pulsetranslator is

runtranslator --pulse-cfg=<path to config file>

You can get help on other options by running

runtranslator -h

To test specific buildbot pulse messages, you can push a locally stored JSON file into the translator. It's recommended to use the --display-only option, to only log the final normalized message to the console.

runtranslator --display-only --push-message <path_to_json_file>

Please keep in mind that in case of errors, details can be found in the specific log files under "logs" sub directory.

Routing Keys

For unittests:


For example,


For talos tests, the same format applies, except that the first part of the key is 'talos' instead of 'unittest'. For example:


For builds:


For example:


For simple uses, you may be able to consume messages directly from the "exchange/build/normalized" exchange. For more complex uses, you may find it easier to use pulsebuildmonitor, which can filter messages for you based on a number of criteria. See the pulsebuildmonitor README for more details.

Something went wrong with that request. Please try again.