Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
jazzy

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
kilted

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
rolling

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

rosgraph_monitor package from graph_monitor repo

rmw_stats_shim rosgraph_monitor rosgraph_monitor_msgs

ROS Distro
humble

Package Summary

Tags No category tags.
Version 0.1.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros-tooling/graph-monitor.git
VCS Type git
VCS Version main
Last Updated 2025-07-17
Dev Status DEVELOPED
Released RELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Monitors the ROS graph to detect error conditions

Additional Links

No additional links.

Maintainers

  • Emerson Knapp
  • Troy Gibb

Authors

  • Emerson Knapp on behalf of Bonsai Robotics
  • Troy Gibb
  • Joshua Whitley

Rosgraph Monitor

Provides a C++ library rosgraph_monitor with main class rosgraph_monitor::RosgraphMonitor, which watches the entire ROS application to create an up-to-date graph representation, running analyses to check whether it meets certain “healthy” criteria.

The library may be used directly by application code, or run standalone as a parameter-configurable ROS Node rosgraph_monitor_node.

Either way it’s used, the Graph Monitor provides a set of diagnostic_msgs/DiagnosticStatus summarizing the graph health. These Diagnostics are provided in a friendly format for DiagnosticAggregator to interpret as a toplevel health status.

A convenience launch file is provided which starts the graph monitor node and a properly configured diagnostic aggregator, and can be used directly or as an example for usage pattern.

Graph Representation

The monitor keeps track of the following entities and their relationships:

  • Node
    • name
  • Publisher
    • node
    • name
    • type
    • QoS profile
  • Subscription
    • node
    • name
    • type
    • QoS profile

Health Checks

These health criteria are provided:

  • Node Liveness: Report errors for nodes that were once present but are no longer in the graph
  • Graph Continuity: report warnings for publishers or subscriptions that don’t have anything listening/sending on the other end
  • Topic Frequencies: interpret /topic_statistics to determine whether certain topics aren’t going at the expected rate. See following section for more information.

This also provides a rosgraph_monitor_node for standalone use, for users who do not need custom integration of the RosgraphMonitor class.

Frequency Checks

To set expectations for Topic Statistics Diagnostics, you must:

  1. Enable /topic_statistics, see rmw_stats_shim for how to do this
  2. Set the Deadline QoS policy on Publishers that should be sending at a fixed period (inverse of frequency)
  3. You do not need to set Deadline on Subscription or use DeadlineMissed callbacks. Repeat - Subscriptions do not need any special treatment.

Usage

API

See RosGraphMonitor

Node

Recommended: run the provided launchfile

ros2 launch rosgraph_monitor monitor_launch.yaml

But you can also just run the standalone node, if you want to perform separate diagnostics aggregation

ros2 run rosgraph_monitor rosgraph_monitor_node

Configuration

See params_decl.yaml for the full parameters for the rosgraph_monitor Node.

These parameters mirror the structure rosgraph_monitor::GraphMonitorConfiguration, for those using the class directly instead of in the wrapping Node.

Implementation Tidbits

The RosgraphMonitor class is built to not initiate any ROS communications, which means it can be used in any preexisting program or node. It is passed a NodeGraphInterface abstract class pointer to make queries about the graph structure, and is passed TopicStatistics messages

The RosgraphMonitor receives a shared pointer to a node’s NodeGraphInterface and receives /topic_statistics to monitor the ROS computation graph and produce /diagnostics (DiagnosticArray) about issues in the graph:

CHANGELOG

Changelog for package rosgraph_monitor

0.1.2 (2025-05-12)

  • Kilted support (#6)
  • Contributors: Emerson Knapp

0.1.1 (2025-04-09)

  • Remove telegraf bridge and update some language
  • RAII initialization of RosgraphMonitor (#12)
  • Fix build issues with latest generate_parameter_library (#11)
  • Action CI - support Humble, Jazzy, Rolling (#1)
  • Initial package setup
  • Contributors: Emerson Knapp, Troy Gibb, Joshua Whitley

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rosgraph_monitor at Robotics Stack Exchange