feat(go): add 100k ingest hardening baseline

This commit is contained in:
lingniu
2026-07-03 17:55:22 +08:00
parent 378a5d5e57
commit 79e591f864
20 changed files with 1360 additions and 2 deletions

View File

@@ -134,6 +134,35 @@ func TestAsyncSecondaryRealtimeUpdaterDoesNotBlockPrimaryPath(t *testing.T) {
}
}
func TestAsyncSecondaryQueueDropDoesNotFailPrimaryUpdate(t *testing.T) {
env := envelope.FrameEnvelope{Protocol: envelope.ProtocolJT808, VIN: "VIN001"}
primary := &contextCheckingRealtimeUpdater{}
registry := metrics.NewRegistry()
updater := &asyncSecondaryRealtimeUpdater{
primary: primary,
secondary: &contextCheckingRealtimeUpdater{},
queue: make(chan envelope.FrameEnvelope, 1),
registry: registry,
}
updater.queue <- envelope.FrameEnvelope{Protocol: envelope.ProtocolJT808, VIN: "VIN000"}
if err := updater.Update(context.Background(), env); err != nil {
t.Fatalf("Update() error = %v", err)
}
if primary.count != 1 {
t.Fatalf("primary updates = %d, want 1", primary.count)
}
text := registry.Render()
for _, want := range []string{
`vehicle_realtime_async_queue_total{protocol="JT808",status="dropped",store="mysql"} 1`,
`vehicle_realtime_async_queue_depth{protocol="JT808",store="mysql"} 1`,
} {
if !strings.Contains(text, want) {
t.Fatalf("async queue drop metric missing %s:\n%s", want, text)
}
}
}
func TestStoreMetricUpdaterRecordsStoreUpdateResults(t *testing.T) {
registry := metrics.NewRegistry()
env := envelope.FrameEnvelope{Protocol: envelope.ProtocolJT808, VIN: "VIN001"}