Using Observatory#

Observatory is a graphical listener for Constellation. This tutorial demonstrates how to use Observatory to listen to log message from multiple satellites and how to filter for specific log messages.

See also

It is recommend to read through the tutorial on how to use MissionControl first.

Starting Observatory#

Observatory is started using the Observatory command or by searching for it in the application overview if installed system-wide. On startup, the group name of the Constellation which should be controlled needs to be provided.

../../_images/qtgui_startup.png

Observatory startup window#

Hint

Alternatively, Observatory can be started with a group directly using the -g GROUP command line argument.

The main window of Observatory can be divided into three parts:

  • A filter section on top

  • A subscription section on the right

  • A list of all log messages

../../_images/observatory_empty.png

Observatory main window without log messages#

Initializing the Constellation#

In order to control satellites, some satellites need to be started as part of the same group. In this tutorial, two Sputnik satellites named One and Two, a RandomTransmitter named Sender and a EudaqNativeWriter named Receiver are started.

../../_images/observatory_new.png

Observatory main window after satellites are started#

To initialize the satellites, MissionControl can be used with the following configuration file:

[satellites.Sputnik.One]
unused_parameter = 1

[satellites.Sputnik.Two]

[satellites.RandomTransmitter.Sender]

[satellites.EudaqNativeWriter.Receiver]
output_directory = "/tmp/test"

Important

Make sure to create the output directory for the EudaqNativeWriter.

After the (failed) initialization, various log messages are shown. Log messages with log level STATUS are shown in green, log messages with log level WARNING in orange and log message with log level CRITICAL in red. Additionally, in the bottom right corner of the window a message counter is shown.

../../_images/observatory_init.png

Observatory main window after initialization#

To further inspect a log messages, it is possible to double-click on them to open details about the log message.

../../_images/observatory_message_detail.png

Log message details#

To fix this issue, the configuration file has to be adjusted:

[satellites.Sputnik.One]

[satellites.Sputnik.Two]

[satellites.RandomTransmitter.Sender]

[satellites.EudaqNativeWriter.Receiver]
_data_transmitters = ["RandomTransmitter.Sender"]
output_directory = "/tmp/test"

Existing messages can be cleared with the Clear Messages button. This helps to review the logs after initializing with the adjusted configuration.

Changing the Subscription Level#

For debugging purposes, it can be useful to increase the log level beyond the default INFO log level. The log level can be change by adjusting the Global Level combo box in the subscription section on the right. After the adjusting the subscription, new log messages can be generated by launching the satellites.

../../_images/observatory_debug.png

Observatory main window with debug messages#

Important

Only log messages with log level DEBUG emitted after changing the subscription are visible. It is not possible to view debug messages before that moment.

It is also possible to increase the verbosity for a specific log topic of a sender. For example, to see heartbeating in action it is possible to increase the verbosity of the CHP topic to TRACE for the Sputnik.One sender. This is achieved by clicking on the name of the sender in the subscription window on the right and the adjusting the log level for the topic.

../../_images/observatory_extra_subscription.png

Observatory main window with trace messages for heartbeating#

Important

The individual subscription only provide the possibility to set extra subscriptions. Setting a higher level than the global level does not result in filtering of messages for that specific topic.

Filtering Messages#

Observatory allows applying four filters:

  • Filtering by log level

  • Filtering by sender

  • Filtering by log topic

  • Filtering by text matching log messages

For example, to find the CHP messages referring to RandomTransmitter.Sender, messages can be filtered using text matching the name of that satellite.

../../_images/observatory_text_filter.png

Observatory main window with message filtering by matching text#

All filters can be reset by clicking the Reset button next to the text filter.

Filters can be applied simultaneously. For example, it is possible to filter for all log messages with level WARNING or higher from RandomTransmitter.Sender with the log topic FSM.

../../_images/observatory_multi_filter.png

Observatory main window with message filtering by log level, sender and log topic#