logbeacon
Version:
浏览器端日志采集与上报工具,支持多种日志服务后端,包括阿里云日志服务(SLS)和Grafana Loki
52 lines (44 loc) • 1.15 kB
TypeScript
/**
* Loki 日志服务客户端类型定义
*/
/**
* 创建 Loki 日志服务客户端
* @param url - 服务入口,例如 "https://logs-prod-030.grafana.net"
* @param user - 用户名
* @param token - loki 有写入日志权限的token
* @returns 返回一个用于发送日志的函数
*/
export function createLogClient(
url: string,
user: string,
token: string
): SendLogsFunction;
/**
* 发送序列化后的日志数据的函数
* @param payload - 已经序列化的日志数据
* @returns HTTP 响应对象
*/
export type SendLogsFunction = (payload: Uint8Array) => Promise<Response>;
// 纳秒级时间戳
export type TimestampNs = string;
// JSON字符串
export type JsonString = string;
/**
* Loki 日志流
*/
export interface LokiLogStream {
stream: Record<string, string>;
values: [TimestampNs, JsonString][];
}
/**
* Loki API 的负载结构
*/
export interface LokiPayload {
streams: LokiLogStream[];
}
/**
* 解码Loki日志数据。
* @param payload - 经过 gzip 压缩的日志数据
* @returns 解码后的 Loki 日志对象
*/
export function decodeLogs(payload: Uint8Array): LokiPayload;