fix: 披露 Workbench Kafka 重放耗时
This commit is contained in:
@@ -758,17 +758,34 @@ async function handleKafkaRefreshReplayWorkbenchRealtimeHttp(request, response,
|
||||
liveBufferLimit: refreshReplay.liveBufferLimit,
|
||||
identityWindowLimit: refreshReplay.matchedEventLimit + refreshReplay.liveBufferLimit,
|
||||
subscribeLive: (listener) => bridge.subscribeLiveHwlabEvents(listener),
|
||||
queryRetention: ({ signal }) => bridge.queryHwlabEventRetention({
|
||||
sessionId: requestedSessionId,
|
||||
traceId: requestedTraceId,
|
||||
limit: refreshReplay.matchedEventLimit,
|
||||
scanLimit: refreshReplay.scanLimit,
|
||||
timeoutMs: refreshReplay.timeoutMs,
|
||||
groupIdPrefix: refreshReplay.groupIdPrefix,
|
||||
partitionKey: requestedSessionId,
|
||||
fromBeginning: true,
|
||||
signal
|
||||
}),
|
||||
queryRetention: async ({ signal }) => {
|
||||
const result = await bridge.queryHwlabEventRetention({
|
||||
sessionId: requestedSessionId,
|
||||
traceId: requestedTraceId,
|
||||
limit: refreshReplay.matchedEventLimit,
|
||||
scanLimit: refreshReplay.scanLimit,
|
||||
timeoutMs: refreshReplay.timeoutMs,
|
||||
groupIdPrefix: refreshReplay.groupIdPrefix,
|
||||
partitionKey: requestedSessionId,
|
||||
fromBeginning: true,
|
||||
signal
|
||||
});
|
||||
(options.logger ?? console).log(JSON.stringify({
|
||||
code: "workbench-kafka-refresh-query",
|
||||
component: "hwlab-workbench-realtime",
|
||||
sessionId: requestedSessionId,
|
||||
traceId: requestedTraceId,
|
||||
completionReason: result?.completionReason ?? null,
|
||||
complete: result?.completion?.complete === true,
|
||||
scannedCount: result?.scannedCount ?? null,
|
||||
matchedCount: result?.matchedCount ?? null,
|
||||
partitionKeyScoped: result?.partitionKeyScoped === true,
|
||||
targetPartition: result?.targetPartition ?? null,
|
||||
timing: result?.timing ?? null,
|
||||
valuesPrinted: false
|
||||
}));
|
||||
return result;
|
||||
},
|
||||
deliverEvent: (envelope, transport) => enqueueEvent("hwlab.event.v1", envelope, transport),
|
||||
deliverConnected: (summary) => enqueueEvent("workbench.connected", {
|
||||
type: "connected",
|
||||
|
||||
@@ -132,7 +132,20 @@ describe("Workbench native HTTP adapter", () => {
|
||||
], {});
|
||||
for (let index = 0; index < 20 && subscribers.size === 0; index += 1) await Bun.sleep(5);
|
||||
for (const listener of subscribers) listener({ schema: "hwlab.event.v1", sessionId: "ses_l0_sse", traceId: "trc_l0_sse", event: { type: "backend", eventType: "backend", label: "agentrun:backend:command-created" } });
|
||||
expect(await pending).toMatchObject({ ok: true, operation: "events.inspect", connected: true, eventCount: 1, eventTypes: ["backend"] });
|
||||
expect(await pending).toMatchObject({
|
||||
ok: true,
|
||||
operation: "events.inspect",
|
||||
connected: true,
|
||||
connectedContract: {
|
||||
deliverySemantics: "live-only",
|
||||
realtimeSource: "hwlab.event.v1",
|
||||
replay: false,
|
||||
liveOnly: true,
|
||||
refreshReplay: null
|
||||
},
|
||||
eventCount: 1,
|
||||
eventTypes: ["backend"]
|
||||
});
|
||||
} finally {
|
||||
server.stop(true);
|
||||
await app.close();
|
||||
|
||||
Reference in New Issue
Block a user