Skip to content
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
07e1327
Adding GUI features for alerts
emiliocuestaf Sep 16, 2025
15c216f
Refs #23615 #23616, more changes to GUI and icons
emiliocuestaf Sep 16, 2025
cbbd333
Add more GUI components and prepare callbacks to bind with backend
emiliocuestaf Sep 16, 2025
65566fb
Alert request reaches controller
emiliocuestaf Sep 16, 2025
cd01ccb
More advances, probably not compiling yet
emiliocuestaf Sep 17, 2025
20ae03a
Advancing towards alerts
emiliocuestaf Sep 18, 2025
389735c
Refs #23615, simplyfing interface to show alert messages
emiliocuestaf Sep 19, 2025
fc6f230
Adjusting left panel alert view
emiliocuestaf Sep 19, 2025
dbad82a
Refs #23615, full alert pipe ready
emiliocuestaf Sep 21, 2025
7b58620
Changing on_alert_reported by triggered
emiliocuestaf Sep 22, 2025
623e080
Display does not collapse now
emiliocuestaf Sep 26, 2025
89ed3c4
Adding new AlertList/Item models
emiliocuestaf Sep 29, 2025
33b8fd0
Refs #23719: Alert List, Alert Data and Alert Messages are being corr…
emiliocuestaf Sep 30, 2025
0b58a7d
Refs #23719: Uncrustify and remove of unwanted logs and comments
emiliocuestaf Sep 30, 2025
0746651
Removing unwanted logs
emiliocuestaf Oct 1, 2025
c2c0b1e
Remove log
emiliocuestaf Oct 1, 2025
d41d6cf
Fixing compilation errors after backend rebase
emiliocuestaf Oct 2, 2025
8484f46
Simplifying add_alert menu
emiliocuestaf Oct 6, 2025
47826dc
WIP
emiliocuestaf Oct 7, 2025
9387ec0
WIP, no warnings
emiliocuestaf Oct 7, 2025
9b120fc
WIP
emiliocuestaf Oct 7, 2025
321c3ad
Background check of alerts apparently working
emiliocuestaf Oct 7, 2025
0810d44
WIP
emiliocuestaf Oct 7, 2025
99fea86
Changing double to long double due to Windows complain
emiliocuestaf Oct 8, 2025
8d628b8
Uncrustify
emiliocuestaf Oct 8, 2025
13cdb94
Minor changes
emiliocuestaf Oct 8, 2025
36f7ba3
Adding remove alert functionality
emiliocuestaf Oct 8, 2025
9299c1c
Uncrustify and removing copyright
emiliocuestaf Oct 8, 2025
8e519fa
Applying review
emiliocuestaf Oct 8, 2025
3ee4328
Add documentation
emiliocuestaf Oct 8, 2025
708f3dc
Update docs/rst/getting_started/tutorial.rst
emiliocuestaf Oct 9, 2025
654eb39
Update docs/rst/user_manual/alert_messages_panel.rst
emiliocuestaf Oct 9, 2025
e7ba191
Fix precision lost issue on Windows
emiliocuestaf Oct 10, 2025
79fbb73
Remove summary when removing alert
emiliocuestaf Oct 10, 2025
0c574a5
Fixinf build issue when complex_mock is on
emiliocuestaf Oct 10, 2025
aa97ca2
Fix minor issues
emiliocuestaf Oct 12, 2025
94c48bc
Trying to fix docu issue
emiliocuestaf Oct 12, 2025
fe7b249
Attempt to fix more issues
emiliocuestaf Oct 13, 2025
e57f37d
WIP, trying to fix weird windows compilation issue
emiliocuestaf Oct 13, 2025
8723f61
Refactor alerts enums to be more explicit so there are no collisions
emiliocuestaf Oct 13, 2025
52d9a19
Revert .repos to reference main in backend
emiliocuestaf Oct 13, 2025
9509bd9
Fixing typo in .repos
emiliocuestaf Oct 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,8 @@ set(PROJECT_HEADERS
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/Engine.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/io/csv.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/io/ClipboardHandler.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/alerts/AlertListItem.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/alerts/AlertListModel.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/dds/EndpointModelItem.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/dds/LocatorModelItem.h
${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/model/dds/ParticipantModelItem.h
Expand Down Expand Up @@ -256,6 +258,8 @@ set(PROJECT_SOURCES_NO_MAIN
${PROJECT_SOURCE_DIR}/src/Engine.cpp
${PROJECT_SOURCE_DIR}/src/io/csv.cpp
${PROJECT_SOURCE_DIR}/src/io/ClipboardHandler.cpp
${PROJECT_SOURCE_DIR}/src/model/alerts/AlertListItem.cpp
${PROJECT_SOURCE_DIR}/src/model/alerts/AlertListModel.cpp
${PROJECT_SOURCE_DIR}/src/model/dds/EndpointModelItem.cpp
${PROJECT_SOURCE_DIR}/src/model/dds/ParticipantModelItem.cpp
${PROJECT_SOURCE_DIR}/src/model/info/InfoModel.cpp
Expand Down
4 changes: 4 additions & 0 deletions docs/rst/exports/alias.include
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
:width: 20
:alt: Clear Issues

.. |create_alert| image:: /rst/../../resources/images/icons/alert/alert_black.svg
:width: 20
:alt: Create Alert

.. |resize| image:: /rst/../../resources/images/icons/resize/resize_grey.svg
:width: 20
:alt: Reset Chart Zoom
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/rst/figures/screenshots/alert_panel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions docs/rst/getting_started/tutorial.rst
Original file line number Diff line number Diff line change
Expand Up @@ -391,3 +391,33 @@ As you can see, the :code:`MEAN`, :code:`MAX` and :code:`MIN` in each interval a
It is worth mentioning that dynamic series can be configurable, just like historic series.
The label and color of each series is mutable, and the chart could zoom in and out and move along the axis
while paused.

Set alert to watch events
============================

This section describes how to create alerts to watch specific events in the monitored DDS network. First, click on
the *Alerts* tab, that with the bell icon, in the left panel to open the Alerts view. In this tab, you can see a list
of all the defined alerts.

.. thumbnail:: /rst/figures/screenshots/usage_example/alert_panel_pre.png
:align: center

Click on the *+* button to create a new alert. This will open a dialog where you can configure the alert.

.. thumbnail:: /rst/figures/screenshots/usage_example/alert_dialog.png
:align: center

In this dialog, you can set the name of the alert, its type, the domain to monitor and the conditions for triggering the alert.

If the alert type is *NEW_DATA*, the alert will be triggered when a positive `DATA_COUNT` is received from any entity that matches the fields
`host`, `user` and `topic`. Note that the statistics must be enabled for the entities to be able to trigger alerts.

If the alert type is *NO_DATA*, the alert will be triggered when a `PUBLICATION_THROUGHPUT` message is received from any entity that matches
the fields `host`, `user` and `topic` and its value is lower than `threshold`.

Once the alert is set up, it will appear in the list of alerts and its metadata will be shown below when clicked.

.. thumbnail:: /rst/figures/screenshots/usage_example/alert_panel_post.png
:align: center

To remove an alert, just right-click on it and choose the `Remove` option.`
12 changes: 12 additions & 0 deletions docs/rst/user_manual/alert_messages_panel.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
.. include:: ../exports/alias.include
.. include:: ../exports/roles.include

.. _alert_messages_panel:

####################
Alert Messages Panel
####################

This panel lists the alert messages of the application in a tree structure, where the messages
are grouped by the name of the alert that triggered them. In addition to the message, the
timestamp of when the alert was triggered is also shown.
26 changes: 26 additions & 0 deletions docs/rst/user_manual/alerts_panel.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
.. include:: ../exports/alias.include
.. include:: ../exports/roles.include

.. _alerts_panel:

############
Alerts Panel
############

The alerts panel is located on the left side of the application window and is divided into two main sections:

.. _alerts_list_panel:

Alerts List
===========

This panel displays the list of alerts that have been triggered based on the conditions defined by the user.
When selected, the alert will be highlighted, and its details will be shown in the :ref:`alert_info_panel`.

.. _alert_info_panel:

Alert Info
==========

This panel displays the specific information of the alert that is currently **selected**

43 changes: 43 additions & 0 deletions docs/rst/user_manual/layout.rst
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,38 @@ This panel shows a summary of the main statistical data related with the last en

For the explanation of this information refer to the section :ref:`statistics_panel`.

.. _alerts_panel_layout:

Alerts Panel
============

This panel shows the different alerts created by the user to monitor specific events in the DDS network.

.. figure:: /rst/figures/screenshots/alert_panel.png
:align: center

For the explanation of this information refer to the section :ref:`alerts_panel`.

.. _alert_list_layout:

Alert List
----------

This panel lists the alerts created by the user to monitor specific events in the DDS network.
These alerts are created by clicking on the |create_alert| button in the Shortcuts Bar or in the
*+* symbol in the upper right corner of the panel.
Once created, the alerts will be listed in this panel, and the user can remove them by clicking
on the |remove| button.

.. _alert_data_layout:

Alert Data
----------

This panel shows the configuration values of the alert selected in the *Alert List*, including the
alert name, its domain, the values of host, user and topic of the monitored entitities, its threshold
or the duration of the alert.

.. _monitor_status_panel_layout:

Monitor Status Panel
Expand Down Expand Up @@ -208,6 +240,17 @@ The events that the application reacts to in the current version are:

For a thorough explanation of this information refer to the section :ref:`issues_panel`.

.. _alert_messages_panel_layout:

Alert Messages Panel
====================

This panel lists the alert events that the application has detected based on the alerts created by the user.
These alerts are shown in a tree structure, where the most recent alerts are shown at the bottom.

.. figure:: /rst/figures/screenshots/alert_messages_panel.png
:align: center

.. _main_panel_layout:

Main Panel
Expand Down
1 change: 1 addition & 0 deletions docs/rst/user_manual/shortcuts_bar.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ The meaning of each of the icons available in the shortcut bar is explained belo
* |refresh| - Refresh Fast DDS Monitor.
* |clear_log| - Clear the list of logs.
* |clear_issues| - Clear the issues panel.
* |create_alert| - Open the create alerts panel.

This bar can be hidden (or revealed in case it is already hidden) from the menu *View->Hide/Show Shortcuts Toolbar*.
It is also possible to configure the shortcuts displayed from *View->Customize Shortcuts Toolbar*.
2 changes: 2 additions & 0 deletions fastdds_monitor.pro
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ SOURCES += \
src/Engine.cpp \
src/io/csv.cpp \
src/main.cpp \
src/model/alerts/AlertListModel.cpp \
src/model/alerts/AlertListItem.cpp \
src/model/dds/EndpointModelItem.cpp \
src/model/dds/ParticipantModelItem.cpp \
src/model/info/InfoModel.cpp \
Expand Down
21 changes: 21 additions & 0 deletions include/fastdds_monitor/Controller.h
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,9 @@ public slots:
//! Slot called when a Locator entity is pressed
void locator_click(
QString id);
//! Slot called when an Alert entity is pressed
void alert_click(
QString id);

//! Slot called when refresh button is pressed
void refresh_click();
Expand Down Expand Up @@ -229,6 +232,21 @@ public slots:
QString new_alias,
QString entity_kind);

//! Adds a new alert
void set_alert(
QString alert_name,
QString domain_name,
QString host_name,
QString user_name,
QString topic_name,
QString alert_type,
double threshold,
int time_between_triggers);

//! Removes an alert
void remove_alert(
QString id);

//! Give a string with the name of the unit magnitud in which each DataKind is measured
QString get_data_kind_units(
QString data_kind);
Expand Down Expand Up @@ -274,6 +292,9 @@ public slots:
//! Retrive a string list containing the available data kinds.
QStringList get_data_kinds();

//! Retrive a string list containing the available alert kinds.
QStringList get_alert_kinds();

//! Returns whether the data kind entered requires a target entity to be defined.
bool data_kind_has_target(
const QString& data_kind);
Expand Down
Loading
Loading