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

Support

For issues or feature requests: