Skip to Content
Understanding your dataLog file format (v3)

Log file format (v3)

YANL captures upload logs as JSONL — one JSON object per line. Current app builds use schema_version: 3.

Record types

Line typePurpose
session_startOpens the session — device info, schema_version, session_id
radio_sampleOne 1 Hz tick — all metrics for that moment
eventAsync network events (handover, RAT change, etc.)
gapMarks missed ticks when the scheduler couldn’t run on time
session_endCloses the session

Replay time on the web uses derived_wallclock_ms from each radio_sample (UTC epoch milliseconds).

Metric value types

Every metric key has a fixed JSON type for the whole session:

TypeIn the logExample keys
Numbernumber or nullwifi.rssi, radio.rsrp, traffic.total_dl
Textstring or nullsensor.accelerometer, radio.carrier
StructuredArray of labelled rowswifi.status, sim.status, iperf.status

null means no reading — Wi‑Fi off, aeroplane mode, or the hardware didn’t report. It is never coerced to zero.

Structured metrics use a plain row array (no wrapper object). When a summary line exists, the first row is {"Status": "…"} — used heavily by iPerf tiles.

Cellular radio (flat block)

Serving-cell data is stored as flat keys, not a single composite object:

  • Signal: radio.rsrp, radio.rsrq, radio.sinr, radio.signal_dbm
  • Identity: radio.pci, radio.earfcn, radio.cell_id, radio.tac, radio.rat, radio.mcc_mnc, radio.carrier, radio.bandwidth_khz, …
  • Each value has a freshness sibling: radio.rsrp_state, radio.pci_state, … (FRESH, STALE, HELD_STALE, MISSING, INVALID)
  • Neighbours: radio.neighbours (array) and radio.neighbour_count (same length)

The web Serving Cell tile assembles these flat keys for display. Line charts skip non-FRESH radio points so stale modem readings don’t look live.

Legacy v1 composite keys such as radio.serving_cell with embedded list data are not emitted in current captures.

Wi‑Fi

  • wifi.rssi is always a number or null — the RSSI chart uses this key only.
  • wifi.status is structured (SSID, band, channel, …).
  • wifi.neighbours is a scan list for the radar view, not the RSSI trend line.

If an upload fails with “corrupted or invalid”, re-capture on a current app build and include the Reference when contacting support.

See also

Last updated on