An investigation with no starting point
- Replay the full MCAP or ROS2 log
- Search large topic sets manually
- Repeatedly align timestamps and message flows
- Only then begin root-cause investigation
Robotics Incident Triage · Local Evidence Engine
Velune Trace prioritizes timing evidence windows from MCAP and ROS2 logs. It gives engineers a focused starting range before full replay and detailed investigation.
Find the events. Engineers find the cause.
The Cost Before Investigation
When an autonomous robot issue occurs, replaying the full log, searching topics one by one, and repeatedly aligning timestamps consumes engineering time before the actual cause can even be examined.
As logs grow, this search cost returns with every incident. Failing to narrow the first review range is an expensive use of engineering time.
Ranked Evidence Windows
The default Quickstart returns the top five timing evidence
windows. For a broader investigation view, use
--top 10, --top 15, or
--top 30 to change the number of results
presented for review.
--top controls the number of evidence windows,
not their duration. Ranking orders review candidates using
observed timing evidence. It is not a root-cause probability
or safety-risk score.
Observable Timing Evidence
Velune Trace structures timing signals visible in the log. It does not conclude that a signal represents a defect or the cause of an incident.
Summarizes observed time gaps in message flows at the evidence-window level.
Observes timing variation in message arrival or timestamp intervals.
Structures observed message-count ratios across compared topics or windows.
Observes ordering differences between recorded sequences and timestamp flows.
Quick Test to Real Workflow
You can test the ranked evidence-window workflow without providing an internal log or raw MCAP file. After the sample run, replace only the input path to apply the same local workflow to your own MCAP.
git clone https://github.com/veluneos/velune-trace.git
cd velune-trace
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python3 tools/create_sample_mcap.py
./bin/velune validation-report examples/sample.mcap \
--export-dir velune_report \
--window-sec 1 \
--top 5 \
--allowed-lateness-sec 2
The command creates the following files locally without modifying the source log or uploading it to a Velune server.
./bin/velune validation-report /path/to/your-log.mcap \
--export-dir velune_report \
--window-sec 1 \
--top 10 \
--allowed-lateness-sec 2
Use --top 5 for a fast first review or
--top 10, --top 15, and
--top 30 for a broader investigation view.
Processing remains local. Velune Trace performs no automatic raw-log upload, telemetry, or Velune server call.
Pre-viewer Triage Layer
It is a pre-viewer triage layer that narrows the timestamps and topic ranges worth reviewing before opening Foxglove, PlotJuggler, or an existing analysis workflow.
Inspect prioritized evidence windows and observed topic signals in the Velune Trace report.
Choose the start time, end time, and topics relevant to the engineering question.
Replay the selected range in Foxglove or the existing engineering workflow and determine the final cause.
Core Bundle Comparison v1
Velune Trace compares two completed and verified Core Report Bundles locally. It structures observed differences in topic sets, timing profiles, and ranked evidence-window summaries so engineers can begin with what changed.
A completed Core Report Bundle selected by the user as the comparison reference
A completed Core Report Bundle selected after a change or as the comparison target
./bin/velune compare-bundles /path/to/reference_bundle /path/to/target_bundle --export-dir comparison_output
comparison_report.json
Machine-readable source of truth
comparison_summary.md
Bounded human-readable summary
Comparison does not require the original MCAP files. It operates from completed Core Report Bundles.
The original MCAP and a validation Target fixture with
20 removed /lidar_top messages were analyzed
with the same extraction settings.
Velune Trace derived the fully unobserved aligned range
between two adjacent observed timestamps as a
sparse_missing_interval and presented it as
the first Target review range. This is observed timing
evidence, not a determination of cause, failure, safety,
or regression.
A Reference Bundle is not ground truth or a definition of normality. The report presents observed differences only. It does not determine root cause, fault, safety risk, or regression. This is pairwise Core Bundle Comparison, not the complete Private Baseline workflow.
Measured Separately
In an internal large-scale expansion benchmark, the initial scan and indexing of a 10.7GB log containing 9,237,885 events took approximately 276 seconds. Retrieval of a selected evidence chain after indexing took approximately 0.002 seconds.
This was a synthetic large-scale expansion benchmark. Results depend on hardware, storage, compression, message structure, and dataset characteristics. Initial indexing time and post-index retrieval time are reported separately.
Evidence, Not Judgment
Velune Trace performs no automatic raw-log upload, telemetry, or Velune server call. Engineers with system and operational context make the final cause determination.
Private Validation
The validation question is deliberately narrow: does evidence-window ranking reduce the time engineers spend searching logs during real autonomous-robot incidents?
Private Validation does not require external upload of a raw MCAP or internal log. Validation can use results produced in the team's local environment and feedback on the existing investigation workflow.