DDS Discovery Recorder #217
ruffsl
started this conversation in
Show and tell
Replies: 1 comment
-
Any progress on that one? |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I'm working on a pure Rust CLI to record DDS discovery data for system profiling purposes, e.g. building a directional graph modeling the connectivity of participants within the DDS network after runtime.
Work in progress can be found here:
https://github.com/ruffsl/dds_recon
The CLI binary would be deployed to a target platform and network, then executed to record DDS discovery events for a specified domain, including discovered participants, topics, etc. For ease of use and log file introspection, recorded discovery data would be written to disk via a database interface, such as SQLite.
I’d like to reuse as much of the RustDDS library as possible, although from my initial experimenting, it seems the current DomainParticipant struct does not expose, and perhaps justifiably so, enough public interfaces to readily obtain domain level meta data such as discovered domain participants and associated data readers and writers with respective topic QoS info.
Given the intended abstraction layer the library is meant to provide, this is more than fine for conventional DDS applications, but I suspect my use case may necessitate reaching deep into the library and reimplementing
DomainParticipant
to appropriately intercept or redirect thead channel messages in order to gather an append only database of discoveries. Perhaps there may also be a simpler way to extend the currentDomainParticipant
struct to add a callback thread to trigger upon changes to existing internal data structures, such asdiscovery_db
field orDiscoveryDB
struct?Any suggestions on how best to approach this for development?
Beta Was this translation helpful? Give feedback.
All reactions