AstuteDDS Inspector Guide
Astute Inspect now has a dedicated documentation section with full feature coverage and screenshot-driven workflows.
Use the new pages:
For first-time users, start with the Overview page.
| Ctrl+Q | Quit |
| F1 | Show help |
| ↑/↓ | Navigate tree |
| Space | Expand/collapse selected |
| Enter | Select and show details |
Troubleshooting
Inspector shows no participants
- Check DDS domain is correct:
echo $ASTUTEDDS_DOMAIN - Verify applications are running on the same domain
- Check firewall allows multicast (UDP port 7400+)
- Verify SPDP discovery is working:
tcpdump -i lo -A "udp port 7400"
Missing topics or writers
- Ensure applications are fully started (discovery takes ~100ms)
- Increase refresh interval:
--interval 1000 - Check participant is not filtering discovery messages
- Verify topics match DDS naming conventions (avoid special chars)
QoS warnings not showing
- Incompatibilities only show when writer and reader are both discovered
- Check both endpoints exist in tree
- Hover over topic names for more info
High CPU usage
- Reduce refresh interval:
--interval 1000(default 500ms) - Minimize number of open details panels
- Disable verbose logging
Advanced Usage
Monitoring via Script
Export topology periodically:
#!/bin/bash
for i in {1..10}; do
echo "Snapshot $i..."
xdotool search --name "AstuteDDS Inspector" \
key "ctrl+e"
sleep 60
done
Headless Mode (Future)
./astutedds-inspect --headless --domain 1
# Writes JSON status to stdout every 500ms
Integration with Grafana (Future)
Export Prometheus metrics for dashboard:
./astutedds-inspect --prometheus-port 9090
Then add data source: http://localhost:9090
Performance Tips
- Tree Expansion: Keep tree collapsed until needed
- Refresh Rate: Increase interval for slow networks
- Details Panel: Viewing many details can slow updates
- Export: Exporting large topologies takes time
Known Limitations
- Single Domain: Can only inspect one domain at a time
- No Write Control: Inspector is read-only (no write/dispose)
- Limited History: Statistics are recent only (no trend analysis yet)
- No Remote Access: Must run on same machine as DDS applications
Keyboard Navigation
Arrow Keys: Navigate tree
Ctrl+Home: Go to root
Ctrl+End: Go to last visible
Enter: Select entity
Space: Expand/collapse
Delete: Remove from view (temporary)
UI Customization
Customize appearance via ~/.config/astutedds-inspect/settings.ini:
[appearance]
theme=dark # dark or light
font_size=11
refresh_interval_ms=500
[columns]
show_guid=true
show_entity_kind=true
show_qos_details=true
API Reference
- Main UI:
tools/inspect/src/main_window.hpp - Tree Model:
tools/inspect/src/tree_model.hpp - Details Panel:
tools/inspect/src/details_panel.hpp - DDS Discovery: Uses standard SPDP/SEDP discovery
Integration with CI/CD
Automated Topology Verification
#!/bin/bash
./astutedds-inspect --domain 0 &
INSPECT_PID=$!
sleep 5 # Wait for discovery
# Check topology JSON
if jq '.participants | length > 0' topology.json; then
echo "✓ Domain has participants"
else
echo "✗ No participants discovered"
kill $INSPECT_PID
exit 1
fi
kill $INSPECT_PID
Further Reading
- DDS Concepts — Understanding DDS
- Shapes Demo — Interactive topology testing
- Router Guide — Multi-domain scenarios
- QoS Usage — Detailed QoS policies
Support
For issues or feature requests:
- GitHub Issues: astutedds-cxx/issues
- GitHub Discussions: astutedds-cxx/discussions