Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange

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

Package Summary

Version 0.7.0
License Apache-2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/selfpatch/ros2_medkit.git
VCS Type git
VCS Version main
Last Updated 2026-09-13
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Linux introspection plugins for ros2_medkit gateway - procfs, systemd, and container

Maintainers

  • bburda

Authors

No additional authors.

ros2_medkit_linux_introspection

Gateway discovery plugin that exposes Linux process-level diagnostics via vendor extension endpoints. Maps ROS 2 nodes to OS processes and reports CPU, memory, systemd unit status, and container context.

Plugins

Plugin Endpoint Data Source
procfs_plugin x-medkit-procfs /proc/[pid]/{stat,status,cmdline} - CPU time, memory, threads, FDs
systemd_plugin x-medkit-systemd D-Bus sd-bus API - unit state, resource usage
container_plugin x-medkit-container Cgroup hierarchy - container runtime, resource limits

Key Components

  • ProcReader - Parses procfs files for process metrics with configurable proc root
  • CgroupReader - Reads the unified (v2), legacy (v1) and hybrid cgroup hierarchies for container/service context, under both cgroup namespace modes. Each limit is reported together with the outcome of reading it, so “unlimited” and “could not be read” stay distinguishable. A container whose ID the cgroup namespace hides is recognised from the markers its runtime leaves behind
  • SystemdUtils - Queries systemd via D-Bus for service metadata
  • PidCache - TTL-based cache mapping ROS 2 node names to Linux PIDs

Configuration

Configure via gateway_params.yaml plugin parameters:

Each plugin is configured on its own. proc_root is the prefix that contains proc/ and sys/, so the default / is what a normal deployment wants; pointing it at /proc makes the plugin look for /proc/proc/<pid>.

plugins: ["procfs", "systemd", "container"]
plugins.procfs.path: "/path/to/libprocfs_introspection.so"
plugins.systemd.path: "/path/to/libsystemd_introspection.so"
plugins.container.path: "/path/to/libcontainer_introspection.so"
plugins.container.pid_cache_ttl_seconds: 30
plugins.container.proc_root: "/"

Documentation

License

Apache License 2.0

CHANGELOG

Changelog for package ros2_medkit_linux_introspection

0.7.0 (2026-08-27)

  • Container CPU and memory limits are reported on every common cgroup layout, not just one. The reader parses the cgroup v1 line format alongside v2, and resolves the limit files under both cgroupns=host and cgroupns=private - the latter being the Docker default, where the container sees its own cgroup mounted directly at /sys/fs/cgroup and the previously built path did not exist. A limit that could not be read is now distinguished from a container that genuinely has no limit, instead of both being reported as unlimited (#637, #604)
  • Limits are read from the cgroup that owns them rather than from the process's own leaf, a legacy controller's limit is no longer outranked by a hierarchy that does not set one, and a limit file is read to its end instead of to the first short read (#637)
  • Containers are detected per process rather than once for the whole node, and the ctest suite exercises every supported cgroup layout against synthetic hierarchies (#637)
  • Build and test only: the package is instrumented for coverage (#582), and its tests are opted out of DDS domain allocation, reading synthetic /proc and cgroup trees rather than creating a ROS node (#597)
  • Contributors: \@bburda

0.6.0 (2026-06-22)

  • No functional changes; version bump for the coordinated 0.6.0 release.
  • Contributors: \@bburda

0.5.0 (2026-06-08)

  • Migrated the introspection plugins to the get_routes() plugin API
  • Declared pkg-config as a buildtool_depend and fixed a route-separator bug
  • Build: adopt the centralized ROS2MedkitWarnings and ROS2MedkitSanitizers cmake modules
  • Contributors: \@bburda

0.4.0 (2026-03-20)

  • Initial release - Linux process introspection plugins for ros2_medkit gateway
  • procfs_plugin - process-level diagnostics via /proc filesystem (CPU, memory, threads, file descriptors)
  • systemd_plugin - systemd unit status and resource usage via D-Bus
  • container_plugin - container runtime detection and cgroup resource limits
  • PidCache with TTL-based refresh for efficient PID-to-node mapping
  • proc_reader and cgroup_reader utilities with configurable proc root
  • Cross-distro support for ROS 2 Humble, Jazzy, and Rolling
  • Contributors: \@bburda

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ros2_medkit_linux_introspection at Robotics Stack Exchange