spy-client
Version:
spy client
105 lines (104 loc) • 2.86 kB
TypeScript
/**
* @file SpyClient
* @author kaivean
*/
import { SpyClientOption } from './lib/interface';
interface Option {
/**
* 指标组,它的每个key就是指标名称(英文表示),在平台对应分组添加该指标名称便能实现自动统计
*/
info: object;
/**
* 维度信息对象,它的每个字段就是一个维度名称(英文表示),在平台对应分组添加该维度名称便能实现自动统计
*/
dim?: object;
/**
* 分组,默认:common
*/
group?: string;
/**
* 抽样,会覆盖全局抽样配置,默认是 1,取值从[0, 1]
*/
sample?: number;
/**
* 日志服务器,默认是webb服务器,尾部需要加?
*/
logServer?: string;
}
interface ErrorInfo {
/**
* 错误唯一标识,平台会统计该错误唯一标识的数量
*/
[propName: string]: any;
}
interface ErrorOption {
/**
* 错误信息对象,它必须有msg字段,是错误唯一标识,其他字段可用户随意添加用来补充错误信息
*/
info?: ErrorInfo;
/**
* 维度信息对象,它的每个字段就是一个维度名称(英文表示),在平台对应分组添加该维度名称便能实现自动统计
*/
dim?: object;
/**
* 分组,默认:common
*/
group?: string;
/**
* 抽样,默认是 1,取值从[0, 1],该抽样会覆盖实例初始化时的抽样配置
*/
sample?: number;
/**
* 业务拓展信息
*/
ext?: any;
}
interface SpyClientInnerOption extends SpyClientOption {
logServer: string;
}
export default class SpyClient {
sample: any;
markCache: any;
option: SpyClientInnerOption;
constructor(option: SpyClientOption);
handle(logItem: any): any;
send(data: any, post?: boolean): void;
check(query: any): boolean;
/**
*
* @param option 配置
*/
sendPerf(option: Option): void;
/**
*
* @param option 错误配置项
*/
sendExcept(option: ErrorOption): void;
/**
*
* @param option 配置
*/
sendDist(option: Option): void;
/**
*
* @param option 配置
*/
sendCount(option: Option): void;
/**
*
* @param e 错误实例
* @param option 错误配置项
*/
sendExceptForError(e: Error, option: ErrorOption): void;
startMark(sign: string): void;
endMark(sign: string): number;
clearMark(sign: string): void;
getAllMark(): {
[propName: string]: number;
};
clearAllMark(): void;
sendPost(data: any): void;
protected request(url: string, data?: any): void;
protected fetch(url: string, data: any): void;
}
export {};