skywalking-client-js-netease
Version:
Client-side JavaScript exception and tracing library for Apache SkyWalking APM
165 lines (155 loc) • 5.7 kB
TypeScript
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export interface CustomOptionsType extends CustomReportOptions {
jsErrors?: boolean;
apiErrors?: boolean;
resourceErrors?: boolean;
autoTracePerf?: boolean;
useFmp?: boolean;
enableSPA?: boolean;
vue?: any;
traceSDKInternal?: boolean;
detailMode?: boolean;
sessionIdKey?: string;
noTraceOrigins?: (string | RegExp)[];
apmSessionIdFunc?: any;
traceTimeInterval?: number;
sampler?: number;
}
export interface CustomReportOptions {
collector?: string;
service: string;
pagePath: string;
serviceVersion: string;
}
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export interface ErrorInfoFields {
uniqueId: string;
category: string;
grade: string;
message: any;
errorUrl: string;
line?: number;
col?: number;
stack?: string;
firstReportedError?: boolean;
sessionId?: string;
tags?: any;
referrer?: string // document.referrer
}
export interface ReportFields {
service: string;
serviceVersion: string;
pagePath: string;
}
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export interface ICalScore {
dpss: ICalScore[];
st: number;
els: ElementList;
root?: Element;
}
export type ElementList = Array<{
ele: Element;
st: number;
weight: number;
}>;
export type IPerfDetail = {
redirectTime: number | undefined; // Time of redirection
dnsTime: number | undefined; // DNS query time
ttfbTime: number | undefined; // Time to First Byte
tcpTime: number | undefined; // Tcp connection time
transTime: number | undefined; // Content transfer time
domAnalysisTime: number | undefined; // Dom parsing time
fptTime: number | undefined; // First Paint Time or Blank Screen Time
domReadyTime: number | undefined; // Dom ready time
loadPageTime: number | undefined; // Page full load time
resTime: number | undefined; // Synchronous load resources in the page
sslTime: number | undefined; // Only valid for HTTPS
ttlTime: number | undefined; // Time to interact
firstPackTime: number | undefined; // first pack time
fmpTime: number | undefined; // First Meaningful Paint
sessionId?: string; // session for uv
tags?:any; // for more info
referrer?: string // document.referrer
};
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export interface SegmentFields {
traceId: string;
service: string;
spans: SpanFields[];
serviceInstance: string;
traceSegmentId: string;
}
export interface SpanFields {
operationName: string;
startTime: number;
endTime: number;
spanId: number;
spanLayer: number;
spanType: number;
isError: boolean;
parentSpanId: number;
componentId: number;
peer: string;
tags?: any;
}