Add network metrics to RPC #5
Labels
enhancement
New feature or request
good first issue
Good for newcomers
help wanted
Contributions are welcome
We need a way to obtain network metrics of a virtual device via RPC.
RPC allows to fetch device info (
RvDeviceInfo
), which includes sender and receiver config:Similarly, we can add
NetworkMetrics
field, and fill it with sender/receiver metrics (depending on devices type), that are available from the streaming library. (Roc Toolkit 0.4 exports only e2e_latency and connection_count metrics; 0.5 will export more metrics).Related files:
rpc/driver_protocol.proto
- defines RPC interface andRvDeviceInfo
driver/device_defs.hpp
- defines C++ structs includingDeviceInfo
driver/rpc_serdes.cpp
- defines mapping between C++ structs and protobuf RPC messagesdriver/device.hpp
- defines object created for every device, it returns device info, and holds a reference toTransceiver
(a base class forSender
andReceiver
)driver/sender.hpp
- created for sender devices; holds a pointer toroc_sender
, from where we can obtain sender metrics (viaroc_sender_query()
)driver/receiver.hpp
- created for receiver devices; holds a pointer toroc_receiver
, from where we can obtain receiver metrics (viaroc_receiver_query()
)tool/print.cpp
- code that prints device info to console on the client side, we'll need to print metrics hereAfter updating these files, metrics should appear in the output of
roc-vad device list --detail
androc-vad device show
commands.See also:
The text was updated successfully, but these errors were encountered: