EVOLUTION-MANAGER
Edit File: PerformanceBackend.ts
import { EchoBackend, EchoEvent, EchoEventType } from '@grafana/runtime'; export interface PerformanceEventPayload { metricName: string; duration: number; } export interface PerformanceEvent extends EchoEvent<EchoEventType.Performance, PerformanceEventPayload> {} export interface PerformanceBackendOptions { url?: string; } /** * Echo's performance metrics consumer * Reports performance metrics to given url (TODO) */ export class PerformanceBackend implements EchoBackend<PerformanceEvent, PerformanceBackendOptions> { private buffer: PerformanceEvent[] = []; supportedEvents = [EchoEventType.Performance]; constructor(public options: PerformanceBackendOptions) {} addEvent = (e: EchoEvent) => { this.buffer.push(e); }; flush = () => { if (this.buffer.length === 0) { return; } const result = { metrics: this.buffer, }; // Currently we don have API for sending the metrics hence loging to console in dev environment if (process.env.NODE_ENV === 'development') { console.log('PerformanceBackend flushing:', result); } this.buffer = []; // TODO: Enable backend request when we have metrics API // if (this.options.url) { // getBackendSrv().post(this.options.url, result); // } }; }