light-sentry-sdk/dist/core/Reporter.d.ts

44 lines
1.2 KiB
TypeScript

import type { DSNInfo, SentryEvent } from '../types';
export declare class Reporter {
private dsn;
private maxRetries;
private retryDelay;
private useShortFields;
constructor(dsn: DSNInfo, maxRetries: number, retryDelay: number);
report(events: SentryEvent[]): Promise<void>;
reportSync(events: SentryEvent[]): void;
/**
* 构建 Sentry Envelope
*
* 优化:
* 1. 批量元数据共享 - 同批次共享 release/environment/user
* 2. 字段短编码 - 常用字段名使用短码
* 3. 时间戳相对化 - 批次内后续事件用差值
*/
private buildEnvelope;
/**
* 时间戳相对化
*
* 批次内:
* - 第一个事件:完整时间戳
* - 后续事件:相对于第一个事件的毫秒差值(用 _dts 字段表示)
*
* 这样可以将时间戳从 13 位数字减少到 2-4 位数字
*/
private applyRelativeTimestamps;
/**
* 提取批次内公共元数据
*/
private extractSharedMeta;
/**
* 移除已共享的字段,减少重复
*/
private stripSharedFields;
private getEnvelopeType;
private generateEventId;
private send;
private sendSync;
private sendViaImage;
private delay;
}