Files
lingniu-vehicle-ingest/docs/operations/jt808-daily-mileage-runbook.md

1.5 KiB

JT808 Daily Mileage Streaming

Scope

The analytics app can calculate daily mileage from JT808 telemetry only. It consumes vehicle.event.jt808.v1 and saves the current daily result into the common vehicle-stat metric repository.

Storage

There is no separate JT808 daily-mileage table and no Redis mileage state. The derived value is stored as one daily_mileage_km metric row in the common JDBC/MySQL table vehicle_stat_metric; the first and latest GPS total mileage values are kept on that same row as calculation source columns.

The JT808 daily-mileage value is calculated from the GPS total mileage reported in location additional information:

daily_mileage_km = last_total_mileage_km - first_total_mileage_km
calculation_method = JT808_TOTAL_MILEAGE_DIFF

The first valid JT808 location point for a vehicle and local day stores the day start total on the metric row and writes daily_mileage_km=0.0. Later ordered points update the latest total on the same row and rewrite the derived daily_mileage_km. If a later total mileage is lower than the stored latest total, the previous latest total remains.

Runtime Settings

Set these in Portainer or Nacos, without committing secrets:

KAFKA_TOPIC_JT808_EVENT=vehicle.event.jt808.v1
VEHICLE_STAT_JT808_MILEAGE_ENABLED=true
MYSQL_JDBC_URL=<jdbc-url>
MYSQL_USERNAME=<user>
MYSQL_PASSWORD=<password>

Algorithm defaults use the Asia/Shanghai daily boundary. Restart recovery reads the same daily_mileage_km metric row, so no separate mileage state store is required.