fix: use frame protocol for metrics timing
This commit is contained in:
@@ -63,7 +63,7 @@ public class IngestMetrics implements IngestInterceptor, Ordered {
|
|||||||
|
|
||||||
Timer.Sample s = ctx.attr(ATTR_TIMER_SAMPLE);
|
Timer.Sample s = ctx.attr(ATTR_TIMER_SAMPLE);
|
||||||
if (s != null) {
|
if (s != null) {
|
||||||
stopTimer(ctx, event.source() == null ? "unknown" : event.source().name());
|
stopTimer(ctx, protocolTag(ctx));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.lingniu.ingest.observability;
|
package com.lingniu.ingest.observability;
|
||||||
|
|
||||||
import com.lingniu.ingest.api.ProtocolId;
|
import com.lingniu.ingest.api.ProtocolId;
|
||||||
|
import com.lingniu.ingest.api.event.VehicleEvent;
|
||||||
import com.lingniu.ingest.api.pipeline.IngestContext;
|
import com.lingniu.ingest.api.pipeline.IngestContext;
|
||||||
import com.lingniu.ingest.api.pipeline.RawFrame;
|
import com.lingniu.ingest.api.pipeline.RawFrame;
|
||||||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||||
@@ -41,6 +42,28 @@ class IngestMetricsTest {
|
|||||||
.isEqualTo(1);
|
.isEqualTo(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void recordsFrameDurationAgainstTheFrameProtocolCapturedInBefore() {
|
||||||
|
SimpleMeterRegistry registry = new SimpleMeterRegistry();
|
||||||
|
IngestMetrics metrics = new IngestMetrics(registry);
|
||||||
|
IngestContext context = new IngestContext("trace-4");
|
||||||
|
|
||||||
|
metrics.before(frame(ProtocolId.JT808), context);
|
||||||
|
metrics.after(new VehicleEvent.Heartbeat(
|
||||||
|
"event-1",
|
||||||
|
"VIN001",
|
||||||
|
ProtocolId.UNKNOWN,
|
||||||
|
Instant.parse("2026-07-01T00:00:01Z"),
|
||||||
|
Instant.parse("2026-07-01T00:00:02Z"),
|
||||||
|
"trace-4",
|
||||||
|
Map.of()), context);
|
||||||
|
|
||||||
|
assertThat(registry.timer("ingest_frame_duration_seconds", "protocol", "JT808").count())
|
||||||
|
.isEqualTo(1);
|
||||||
|
assertThat(registry.find("ingest_frame_duration_seconds").tag("protocol", "unknown").timer())
|
||||||
|
.isNull();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void countsErrorsAsUnknownWhenThereIsNoFrameProtocolContext() {
|
void countsErrorsAsUnknownWhenThereIsNoFrameProtocolContext() {
|
||||||
SimpleMeterRegistry registry = new SimpleMeterRegistry();
|
SimpleMeterRegistry registry = new SimpleMeterRegistry();
|
||||||
|
|||||||
Reference in New Issue
Block a user