hdds-viewer Quickstart
Get started analyzing DDS traffic with hdds-viewer in minutes.
Installation
From Cargo
cargo install hdds-viewer
From Binary Release
# Linux x86_64
curl -LO https://github.com/skylab/hdds/releases/latest/download/hdds-viewer-linux-x86_64.tar.gz
tar xzf hdds-viewer-linux-x86_64.tar.gz
sudo mv hdds-viewer /usr/local/bin/
Build from Source
git clone https://github.com/skylab/hdds.git
cd hdds/tools/hdds-viewer
cargo build --release
Quick Start
View Live Traffic
Monitor DDS traffic on domain 0:
hdds-viewer --domain 0
Output:
HDDS Viewer v1.0.0 - Monitoring domain 0
[12:34:56.123] PARTICIPANT DISCOVERED
GUID: 01.0f.ab.cd.12.34.56.78|0.0.1.c1
Host: sensor-node-1
Process: sensor_publisher (PID 1234)
[12:34:56.456] TOPIC DISCOVERED
Name: SensorTopic
Type: sensors::SensorData
Writers: 1, Readers: 0
[12:34:57.001] DATA RECEIVED (SensorTopic)
sensor_id: 1
value: 25.5
timestamp: 1703847297001234567
Monitor Specific Topic
hdds-viewer --domain 0 --topic SensorTopic
Live Statistics
Show real-time statistics:
hdds-viewer --domain 0 --stats
Output:
┌─────────────────────────────────────────────────────────┐
│ HDDS Viewer - Domain 0 │
├─────────────────────────────────────────────────────────┤
│ Participants: 3 Topics: 5 Writers: 8 Readers: 12 │
├─────────────────────────────────────────────────────────┤
│ Topic │ Rate │ Bytes/s │ Writers │
├─────────────────────┼───────────┼───────────┼──────────┤
│ SensorTopic │ 100 Hz │ 4.8 KB/s │ 2 │
│ CommandTopic │ 10 Hz │ 320 B/s │ 1 │
│ StatusTopic │ 1 Hz │ 128 B/s │ 3 │
└─────────────────────────────────────────────────────────┘
Capture and Analyze
Record to File
Capture traffic to a file for later analysis:
hdds-viewer --domain 0 --record capture.hddscap
Analyze Capture
Analyze a recorded capture:
hdds-viewer --analyze capture.hddscap
Output:
Capture Analysis: capture.hddscap
Duration: 5m 23s
Samples: 32,456
Top Topics by Volume:
1. SensorTopic - 25,000 samples (77%)
2. TelemetryTopic - 5,456 samples (17%)
3. CommandTopic - 2,000 samples (6%)
Latency Statistics (SensorTopic):
Min: 0.12 ms
Max: 4.56 ms
Avg: 0.34 ms
P99: 1.23 ms
Export to PCAP
Convert capture to Wireshark-compatible format:
hdds-viewer --convert capture.hddscap --output capture.pcap
ML-Based Analysis
Anomaly Detection
Enable ML-powered anomaly detection:
hdds-viewer --domain 0 --ml-detect
Output:
[12:35:01.234] ANOMALY DETECTED
Topic: SensorTopic
Type: Latency Spike
Expected: 0.3 ms, Observed: 15.2 ms
Confidence: 98.7%
[12:35:02.567] ANOMALY DETECTED
Topic: CommandTopic
Type: Missing Samples
Expected rate: 10 Hz, Observed: 3 Hz
Confidence: 95.2%
Traffic Classification
Classify traffic patterns:
hdds-viewer --analyze capture.hddscap --classify
Output:
Traffic Classification Results:
Normal Operation: 94.2%
High Load: 4.1%
Degraded: 1.5%
Attack/Anomaly: 0.2%
Detected Patterns:
- Periodic sensor data (100 Hz)
- Request-response commands
- Heartbeat traffic
Common Use Cases
Debug Discovery Issues
Watch discovery traffic:
hdds-viewer --domain 0 --discovery-only
Monitor QoS Violations
Alert on QoS issues:
hdds-viewer --domain 0 --qos-alerts
Compare Before/After
Compare two captures:
hdds-viewer --diff before.hddscap after.hddscap
Output Formats
JSON Output
hdds-viewer --domain 0 --format json | jq '.'
CSV Export
hdds-viewer --analyze capture.hddscap --format csv > data.csv
Live Web Dashboard
Start web interface:
hdds-viewer --domain 0 --web --port 8080
Access at http://localhost:8080.
Filter Expressions
Filter by topic pattern:
hdds-viewer --domain 0 --filter "topic =~ 'Sensor.*'"
Filter by content:
hdds-viewer --domain 0 --filter "data.value > 100"
Combine filters:
hdds-viewer --domain 0 --filter "topic == 'SensorTopic' AND data.sensor_id == 1"
Configuration
Config File
Create ~/.config/hdds-viewer/config.toml:
[default]
domain = 0
format = "pretty"
color = true
[ml]
anomaly_threshold = 0.95
model_path = "~/.config/hdds-viewer/models/"
[capture]
max_size = "1GB"
rotate = true
Environment Variables
export HDDS_VIEWER_DOMAIN=0
export HDDS_VIEWER_LOG_LEVEL=debug
Next Steps
- CLI Reference - Full command reference
- ML Features - Advanced ML analysis
- Filtering - Filter expression syntax
- Capture Format - HDDSCAP file format