* Copyright (C) 2022 Huawei Device Co., Ltd.
* Licensed 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.
*/
import { BaseStruct } from './BaseStruct';
export interface NetworkPluginConfig {
pid: number[];
startupProcessName: string[];
restartProcessName: string[];
smbPages: number;
flushInterval: number;
block: boolean;
clockId: string;
}
export interface NetworkRequestStruct extends BaseStruct {
id: number | undefined;
ipid: number;
itid: number;
requestId: string;
protocol: string;
domain: string;
requestUri: string;
requestMethod: string;
requestHeader: string;
responseStatusCode: number;
responseHeader: string;
responseEffectiveUrl: string;
ipAddress: string;
version: string;
reasonPhrase: string;
startTime: number;
endTime: number;
duration: number;
fromProcessNetworkDetail: boolean;
clickedLayer?: string;
timeInfo?: NetworkTimeInformation;
}
export interface NetworkTimeInformation {
id: number;
itid: number;
ipid: number;
beginTime: number;
dnsEndTime: number;
tcpEndTime: number;
tlsEndTime: number;
firstSendTime: number;
firstRecvTime: number;
endTime: number;
cacheHit: number;
pid?: number;
tid?: number;
blocked: number;
waiting: number;
receive: number;
dns: number;
tcp: number;
tls: number;
blockedStartTime: number;
blockedEndTime: number;
waitingStartTime: number;
waitingEndTime: number;
receiveStartTime: number;
receiveEndTime: number;
dnsStartTime: number;
dnsEndTimeCalc: number;
tcpStartTime: number;
tcpEndTimeCalc: number;
tlsStartTime: number;
tlsEndTimeCalc: number;
}
export interface NetworkCountData extends BaseStruct {
time: number;
dur: number;
}
export interface NetworkSummaryData extends BaseStruct {
id: number;
requestId: string;
requestMethod: string;
protocol: string;
domain: string;
uri: string;
responseCode: number;
startTime: number;
endTime: number;
processId: number;
threadId: number;
}
export interface ProcessNetworkDetailData extends BaseStruct {
id: number;
requestMethod: string;
url: string;
statusCode: number;
startTime: number;
endTime: number;
blockedTime: number;
waitingTime: number;
responseTime: number;
dnsTime: number;
tcpTime: number;
tlsTime: number;
}
export interface NetworkStatisticsData {
domain: string;
count: number;
totalDuration: number;
avgDuration: number;
maxDuration: number;
blockMaxTime: number;
blockAvgTime: number;
waitingMaxTime: number;
waitingAvgTime: number;
receiveMaxTime: number;
receiveAvgTime: number;
}
export interface NetworkDomainStatistics {
domain: string;
ipList: Array<IpStatistics>;
}
export interface IpStatistics {
ip: string;
urlList: Array<UrlStatistics>;
}
export interface TransactionData {
id: number | undefined;
requestId: string;
url: string;
duration: number;
blockedTime: number;
waitingTime: number;
responseTime: number;
protocol?: string;
domain?: string;
requestUri?: string;
requestMethod?: string;
requestHeader?: string;
responseStatusCode?: number;
responseHeader?: string;
responseEffectiveUrl?: string;
ipAddress?: string;
version?: string;
reasonPhrase?: string;
}
export interface UrlStatistics {
url: string;
count: number;
totalDuration: number;
avgDuration: number;
maxDuration: number;
blockMaxTime: number;
blockAvgTime: number;
waitingMaxTime: number;
waitingAvgTime: number;
receiveMaxTime: number;
receiveAvgTime: number;
totalBlockTime: number;
totalWaitingTime: number;
totalReceiveTime: number;
transactions?: TransactionData[];
}
export interface IpSummaryData {
ipAddress: string;
count: number;
totalDuration: number;
totalDurationStr: string;
avgDuration: number;
avgDurationStr: string;
maxDuration: number;
maxDurationStr: string;
blockMaxTime: number;
blockMaxTimeStr: string;
blockAvgTime: number;
blockAvgTimeStr: string;
waitingMaxTime: number;
waitingMaxTimeStr: string;
waitingAvgTime: number;
waitingAvgTimeStr: string;
receiveMaxTime: number;
receiveMaxTimeStr: string;
receiveAvgTime: number;
receiveAvgTimeStr: string;
}
export interface NetworkChartDetailItem extends BaseStruct {
id: number;
ipid: number | undefined;
itid: number | undefined;
requestMethod: string;
url: string;
statusCode: number;
startTime: number | undefined;
endTime: number | undefined;
blockedTime: number;
waitingTime: number;
responseTime: number;
dnsTime: number;
tcpTime: number;
tlsTime: number;
dur: number;
timeInformation: NetworkTimeInformation | undefined;
domain: string;
requestUri: string;
protocol: string;
requestId: string;
requestHeader: string;
responseStatusCode: number;
responseHeader: string;
responseEffectiveUrl: string;
ipAddress: string;
version: string;
reasonPhrase: string;
duration: number;
layer: number;
layerHeight: number;
}