UNPKG

@backtrace/sdk-core

Version:
59 lines (58 loc) 2.4 kB
import { BacktraceMetricsOptions } from '../../model/configuration/BacktraceConfiguration.js'; import { AttributeType } from '../../model/data/BacktraceData.js'; import { AttributeManager } from '../attribute/AttributeManager.js'; import { BacktraceModule } from '../BacktraceModule.js'; import { BacktraceSessionProvider } from './BacktraceSessionProvider.js'; import { MetricsQueue } from './MetricsQueue.js'; import { SummedEvent } from './model/SummedEvent.js'; import { UniqueEvent } from './model/UniqueEvent.js'; export declare class BacktraceMetrics implements BacktraceModule { private readonly _options; private readonly _sessionProvider; private readonly _attributeManager; private readonly _summedEventsSubmissionQueue; private readonly _uniqueEventsSubmissionQueue; /** * Returns current session id. */ get sessionId(): string; /** * Default metrics submission interval. The variable defines how often metrics will be sent to metrics system. */ readonly DEFAULT_UPDATE_INTERVAL: number; readonly DEFAULT_SERVER_URL = "https://events.backtrace.io"; readonly metricsHost: string; private readonly _updateInterval; private _updateIntervalId?; private readonly _abortController; constructor(_options: BacktraceMetricsOptions, _sessionProvider: BacktraceSessionProvider, _attributeManager: AttributeManager, _summedEventsSubmissionQueue: MetricsQueue<SummedEvent>, _uniqueEventsSubmissionQueue: MetricsQueue<UniqueEvent>); /** * Starts metrics submission. */ initialize(): void; /** * Returns total number of events in the submission queue. */ count(): number; /** * Add summed event to next Backtrace Metrics request. * @param metricName Summed event name. * @param eventAttributes event attributes. */ addSummedEvent(metricName: string, eventAttributes?: Record<string, AttributeType>): boolean; /** * Sends event to the metrics system. */ send(abortSignal?: AbortSignal): Promise<boolean>; /** * Cleans up metrics interface. */ dispose(): void; private sendUniqueEvent; /** * Event aggregators expecting to retrieve attributes in a string format. They also * don't expect to retrieve null/undefined as attribute values. */ private convertAttributes; private handleAbort; }