diff --git a/packages/grafana-runtime/src/services/EchoSrv.ts b/packages/grafana-runtime/src/services/EchoSrv.ts index 3bfa36576de..2804574af85 100644 --- a/packages/grafana-runtime/src/services/EchoSrv.ts +++ b/packages/grafana-runtime/src/services/EchoSrv.ts @@ -120,6 +120,13 @@ let singletonInstance: EchoSrv; * @internal */ export function setEchoSrv(instance: EchoSrv) { + // Check if there were any events reported to the FakeEchoSrv (before the main EchoSrv was initialized), and track them + if (singletonInstance instanceof FakeEchoSrv) { + for (const item of singletonInstance.buffer) { + instance.addEvent(item.event, item.meta); + } + } + singletonInstance = instance; } @@ -148,15 +155,15 @@ export const registerEchoBackend = (backend: EchoBackend) => { }; export class FakeEchoSrv implements EchoSrv { - events: Array> = []; + buffer: Array<{ event: Omit; meta?: {} | undefined }> = []; flush(): void { - this.events = []; + this.buffer = []; } addBackend(backend: EchoBackend): void {} addEvent(event: Omit, meta?: {} | undefined): void { - this.events.push(event); + this.buffer.push({ event, meta }); } }