Industrial & robotics

Every sensor, at full rate.

Plant historians and time‑series stacks survive high tag counts by throwing data away — averaging to the minute, keeping one sample in N. Oliver keeps the full‑rate signal queryable, so the transient that explains a failure is still there when someone goes looking for it.

Sparkplug B / OPC UA ROS 2 & CAN millions of tags
The problem

The fault is a transient. The average erased it.

A failing bearing, a marginal actuator, a bus fault — these show up as short excursions in a high‑rate signal. Roll that signal up to a per‑minute average and the excursion disappears into the mean. Teams then diagnose from the summary that survived, and the one sample that would have explained the failure was discarded weeks before anyone asked.

How Oliver solves it

Full‑rate signal in. Answers per tag out.

Ingests the Sparkplug B, OPC UA, ROS 2 and CAN standards.
telemetry

Sparkplug B and OPC UA, natively shaped

The group / node / device / metric hierarchy maps straight onto columns, so per‑tag rollups and percentile sketches exist from the first sample rather than being built later.

fleet

CAN signals, decoded and queryable

DBC‑decoded frames land in the ASAM MDF shape — one row per signal sample, keyed by vehicle and trip — so a fleet‑wide question and a single‑trip drill‑down run on the same table.

robotics

ROS 2 topics as observation rows

Joints, odometry, and IMU streams flatten into observation rows with the topic and frame preserved, so a run can be replayed analytically instead of only from a bag file.

cardinality

Millions of tags without a redesign

High tag counts are the normal case, not the failure case: per‑signal percentiles and grouped aggregates stay interactive as the tag space grows, and cells absorb the volume without a sharding project.

Proof

The excursion is still in the data.

Keep the signal. Not just its average.