You need to enable JavaScript to run this app.
文档中心
应用性能监控全链路版

应用性能监控全链路版

复制全文
下载 pdf
SDK 接入
上报格式
复制全文
下载 pdf
上报格式
如果使用beforeSend生命周期或者使用条件采样,您需要关注SDK的上报格式。​
ReportEvent​
​
export type MiniProgramReport =​
| CustomReport​
| HttpReport​
| JsErrorReport​
| PageviewReport​
| PagePerformanceReport​
| AppLaunchPerformanceReport​
| PerformanceReport​
| SetDataReport​
​
export type ReportToReportEvent<T extends MiniProgramReport> = T & {​
extra?: Partial<CommonContext>​
// 允许额外上报一些context覆盖组装上下文​
overrides?: Partial<CommonContext>​
}​
​
export type MiniProgramReportEvent = ReportToReportEvent<MiniProgramReport>​
​
Common​
​
export interface Common {​
/** 应用标识 */​
aid: number​
/** 页面标识 */​
pid: string​
/** 页面访问标识,用于区别同一个 pid 的多次访问 */​
view_id: string​
/** 用户标识,由接入方设定*/​
user_id: string​
/** 用户操作id */​
action_id?: string​
/** 自定义维度 */​
context: { [key: string]: string }​
/** 当前页的url */​
url: string​
/** 网络环境 */​
network_type: string​
/** 客户端时间戳,发生时间 */​
timestamp: number​
/** 当前事件命中的有效采样率 */​
sample_rate: number​
/** @query sver 上报 SDK 版本 */​
sdk_version?: string​
/** @query sname 上报 SDK 名称, 以区分第三方 SDK */​
sdk_name?: string​
/** @query soffset 客户端时间偏移量, 协助服务端进行时间校准 */​
sdk_offset?: number​
/** @query did 设备标识,保存在本地存储 */​
device_id?: string​
/** @query sid 实例会话标识 */​
session_id?: string​
/** @query menv 小程序平台环境版本 develop trial release (may be more) */​
mini_env?: string​
/** @query mver 小程序线上版本 */​
mini_version?: string​
/** @query model 设备型号 'iPhone 12 pro' */​
model?: string​
/** @query brand 设备品牌 Iphone Apple */​
brand?: string​
/** @query ratio 像素比 2 */​
pixel_ratio?: number​
/** @query screen 屏幕宽高,单位px number * number, screenWidth * screenHeight */​
screen_area?: string​
/** @query window 可使用窗口宽高,单位px number * number, windowWidth * windowHeight */​
window_area?: string​
/** @query lang 语言 */​
lang?: string​
/** @query osname 操作系统 */​
os_name?: string​
/** @query osver 操作系统版本 */​
os_version?: string​
/** @query libver 小程序基础库版本 */​
lib_version?: string​
/** @query hostname 宿主名称: douyin、xigua、toutiao */​
host_name?: string​
/** @query hostver 宿主版本号 */​
host_version?: string​
/** @query scene 场景值 */​
scene?: number​
/** @query platform 当前小程序宿主类型 wx | tt | my | swan */​
platform?: string​
}​
​
CustomReport​
​
export interface CustomSend {​
/** custom */​
ev_type: string​
payload: CustomPayload​
common: common.Common​
}​
​
export interface CustomPayload {​
/** 自定义名称, type 为 event时必填 */​
name?: string​
/** 自定义数值 */​
metrics?: { [key: string]: number }​
/** 事件本身的维度,不要跟外部 context 合并 */​
categories?: { [key: string]: string }​
/** 自定义日志内容,可以是日志或者对象的 JSON 表示, type为log 时必填 */​
content?: string​
/** 自定义日志的级别 debug | info | warn | error */​
level?: string​
/** 自定义类型 event |log */​
type: string​
}​
​
Http​
​
export interface HttpSend {​
/** http */​
ev_type: string​
payload: HttpPayload​
common: common.Common​
}​
​
export interface HttpPayload {​
/** request | uploadFile | downloadFile*/​
api: string​
request: HttpReq​
response: HttpRes​
/** elapsed time from send to response calculate by SDK */​
duration: number​
/** elapsed time for callback of (fail+success+complete) after responded */​
cbTime: number​
extra?: { [key: string]: string }​
}​
​
export interface HttpReq {​
method: string​
url: string​
headers?: { [key: string]: string }​
body?: string​
timestamp: number​
}​
​
export interface HttpRes {​
/** 状态码 */​
status: number​
/** 是否被 extraExtractor 包装过 */​
is_custom_error: boolean​
headers?: { [key: string]: string }​
body?: string​
timing?: PerformanceTiming​
timestamp: number​
err_msg?: string​
}​
​
export interface PerformanceTiming {​
/** tt 暂时不支持 */​
redirectStart?: number​
/** tt 暂时不支持 */​
redirectEnd?: number​
/** tt 暂时不支持 */​
fetchStart?: number​
domainLookupStart: number​
domainLookupEnd: number​
connectStart: number​
secureConnectionStart: number​
connectEnd: number​
requestStart: number​
requestEnd: number​
responseStart: number​
responseEnd: number​
/** 是否复用连接 */​
socketReused: boolean​
/** tt 暂时不支持 当前网络的实际下载kbps */​
throughputKbps?: number​
/** tt 暂时不支持 发送的字节数 */​
sendBytesCount?: number​
/** tt 暂时不支持 收到字节数 */​
receivedBytedCount?: number​
/** 使用协议类型,有效值:http1.1, h2, quic, unknown */​
protocol?: string​
}​
​
JS Error​
​
export interface JsErrorPayload {​
error: JsError​
breadcrumbs: Array<Breadcrumb>​
extra?: { [key: string]: string }​
react?: ReactInfo​
}​
​
export interface JsError {​
/** 错误名称 */​
name?: string​
/** 错误信息 */​
message: string​
/** 堆栈 */​
stack?: string​
/** 错误文件名 */​
filename?: string​
lineno?: string​
colno?: string​
​
}​
​
export interface Breadcrumb {​
/** route | http */​
type: string​
/** methodName | url */​
message: string​
/** errMsg | post,get | tap */​
category: string​
/** route {url} | http {mehtod,url,status_code} */​
data?: { [key: string]: string }​
timestamp: number​
​
}​
​
export interface ReactInfo {​
version: string​
componentStack: string​
​
}​
​
Pageview​
​
export interface PageviewPayload {​
pid: string​
/** 触发类型 launch | show | history | user-set | hide | unload */​
source: string​
} ​
​
PagePerformance​
​
export interface PagePerformancePayload { ​
/** 路由开始时间 timestamp of invoke the method of route */​
navigate_start: number​
/** 路由方法 navigateTo | navigateBack | redirectTo | reLaunchTo | switchTab | native (eg:nativeTabBar在app.json中配置,SDK拦截不到) */​
navigate_name: string​
/** timestamp of page.onLoad invoked */​
load_start: number​
/** timestamp of page.onShow invoked */​
dom_end: number​
/** timestamp of page.onReady invoked */​
render_end: number​
}​
​
AppLaunchPerformance​
​
export interface AppLaunchPerformancePayload { ​
/** timestamp of app triggered(wx/tt) */​
trigger?: number​
/** timestamp of app.onLaunch */​
init_end: number​
/** timestamp of app.onShow */​
activate_start: number​
/** timestamp of page.onLoad */​
page_load_start: number​
/** timestamp of page.onShow / default: 0 */​
page_dom_end: number​
/** timestamp of page.onReady */​
page_render_end: number​
}​
​
Performance​
​
export interface PerformancePayload { ​
is_custom: boolean​
/** fr fp fcp lcp downloadPackage evaluateScript */​
name: string​
/** perf => 传统性能 user => 用户手动打点 */​
type: string​
/** elapsed time for current metric */​
duration?: number​
/** timestamp */​
value: number​
/** judging by SDK */​
is_support: boolean​
/** auto increment,means the numbers of page loaded. Use it to distinguish between first time and others */​
count: number​
}​
​
setData​
​
export interface SetDataPayload { ​
/** elapsed time of dom render after set data */​
duration: number​
/** the data's size(byte) */​
size?: number​
}​
​
​
最近更新时间:2025.03.07 15:02:01
这个页面对您有帮助吗?
有用
有用
无用
无用