@backtrace/sdk-core
Version:
Backtrace-JavaScript SDK core library
59 lines (58 loc) • 2.4 kB
TypeScript
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;
}