fix(stats): skip realtime mileage without source identity

This commit is contained in:
lingniu
2026-07-08 15:44:31 +08:00
parent e0ae57828e
commit 17937a1ad8
2 changed files with 50 additions and 25 deletions

View File

@@ -85,17 +85,18 @@ func (w *Writer) Append(ctx context.Context, env envelope.FrameEnvelope) error {
if w.seenSameMileage(sample) {
continue
}
if hasSource {
if err := UpsertDataSource(ctx, w.exec, identity, sample.EventTime); err != nil {
return err
}
candidate := SourceMileageSampleFromMetric(sample, identity)
if err := w.applyRealtimeBaseline(ctx, &candidate); err != nil {
return err
}
if err := UpsertSourceMileage(ctx, w.exec, candidate); err != nil {
return err
}
if !hasSource {
continue
}
if err := UpsertDataSource(ctx, w.exec, identity, sample.EventTime); err != nil {
return err
}
candidate := SourceMileageSampleFromMetric(sample, identity)
if err := w.applyRealtimeBaseline(ctx, &candidate); err != nil {
return err
}
if err := UpsertSourceMileage(ctx, w.exec, candidate); err != nil {
return err
}
if err := ProjectDailyMileage(ctx, w.exec, sample.VIN, sample.StatDate, sample.Protocol); err != nil {
return err