1fb726d48Sopenharmony_ci/* 2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb726d48Sopenharmony_ci * You may obtain a copy of the License at 6fb726d48Sopenharmony_ci * 7fb726d48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb726d48Sopenharmony_ci * 9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and 13fb726d48Sopenharmony_ci * limitations under the License. 14fb726d48Sopenharmony_ci */ 15fb726d48Sopenharmony_ciimport { 16fb726d48Sopenharmony_ci GpuMemory, 17fb726d48Sopenharmony_ci GpuMemoryComparison, 18fb726d48Sopenharmony_ci SystemCpuSummary, 19fb726d48Sopenharmony_ci SystemDiskIOSummary, 20fb726d48Sopenharmony_ci SystemNetworkSummary, 21fb726d48Sopenharmony_ci} from '../../bean/AbilityMonitor'; 22fb726d48Sopenharmony_ciimport { query } from '../SqlLite'; 23fb726d48Sopenharmony_ciimport { CpuAbilityMonitorStruct } from '../ui-worker/ProcedureWorkerCpuAbility'; 24fb726d48Sopenharmony_ciimport { MemoryAbilityMonitorStruct } from '../ui-worker/ProcedureWorkerMemoryAbility'; 25fb726d48Sopenharmony_ciimport { DiskAbilityMonitorStruct } from '../ui-worker/ProcedureWorkerDiskIoAbility'; 26fb726d48Sopenharmony_ciimport { NetworkAbilityMonitorStruct } from '../ui-worker/ProcedureWorkerNetworkAbility'; 27fb726d48Sopenharmony_ciimport type { SnapshotStruct } from '../ui-worker/ProcedureWorkerSnapshot'; 28fb726d48Sopenharmony_ci 29fb726d48Sopenharmony_ciexport const getTabCpuAbilityData = (leftNs: number, rightNs: number): Promise<Array<SystemCpuSummary>> => 30fb726d48Sopenharmony_ci query<SystemCpuSummary>( 31fb726d48Sopenharmony_ci 'getTabCpuAbilityData', 32fb726d48Sopenharmony_ci `SELECT 33fb726d48Sopenharmony_ci ( n.ts - TR.start_ts ) AS startTime, 34fb726d48Sopenharmony_ci n.dur AS duration, 35fb726d48Sopenharmony_ci n.total_load AS totalLoad, 36fb726d48Sopenharmony_ci n.user_load AS userLoad, 37fb726d48Sopenharmony_ci n.system_load AS systemLoad, 38fb726d48Sopenharmony_ci n.process_num AS threads 39fb726d48Sopenharmony_ci FROM 40fb726d48Sopenharmony_ci cpu_usage AS n, 41fb726d48Sopenharmony_ci trace_range AS TR 42fb726d48Sopenharmony_ci WHERE 43fb726d48Sopenharmony_ci ( n.ts - TR.start_ts ) >= ifnull(( 44fb726d48Sopenharmony_ci SELECT 45fb726d48Sopenharmony_ci ( usage.ts - TR.start_ts ) 46fb726d48Sopenharmony_ci FROM 47fb726d48Sopenharmony_ci cpu_usage usage, 48fb726d48Sopenharmony_ci trace_range TR 49fb726d48Sopenharmony_ci WHERE 50fb726d48Sopenharmony_ci ( usage.ts - TR.start_ts ) <= $leftNS 51fb726d48Sopenharmony_ci ORDER BY 52fb726d48Sopenharmony_ci usage.ts DESC 53fb726d48Sopenharmony_ci LIMIT 1 54fb726d48Sopenharmony_ci ),0) 55fb726d48Sopenharmony_ci AND ( n.ts - TR.start_ts ) <= $rightNS 56fb726d48Sopenharmony_ci ORDER BY 57fb726d48Sopenharmony_ci startTime ASC; 58fb726d48Sopenharmony_ci `, 59fb726d48Sopenharmony_ci { $leftNS: leftNs, $rightNS: rightNs } 60fb726d48Sopenharmony_ci ); 61fb726d48Sopenharmony_ciexport const getTabMemoryAbilityData = ( 62fb726d48Sopenharmony_ci leftNs: number, 63fb726d48Sopenharmony_ci rightNs: number 64fb726d48Sopenharmony_ci): Promise< 65fb726d48Sopenharmony_ci Array<{ 66fb726d48Sopenharmony_ci startTime: number; 67fb726d48Sopenharmony_ci value: string; 68fb726d48Sopenharmony_ci name: string; 69fb726d48Sopenharmony_ci }> 70fb726d48Sopenharmony_ci> => 71fb726d48Sopenharmony_ci query( 72fb726d48Sopenharmony_ci 'getTabMemoryAbilityData', 73fb726d48Sopenharmony_ci `SELECT 74fb726d48Sopenharmony_ci m.ts AS startTime, 75fb726d48Sopenharmony_ci GROUP_CONCAT( IFNULL( m.value, 0 ) ) AS value, 76fb726d48Sopenharmony_ci GROUP_CONCAT( f.name ) AS name 77fb726d48Sopenharmony_ci FROM 78fb726d48Sopenharmony_ci sys_mem_measure AS m 79fb726d48Sopenharmony_ci INNER JOIN sys_event_filter AS f ON m.filter_id = f.id 80fb726d48Sopenharmony_ci AND (f.name = 'sys.mem.total' 81fb726d48Sopenharmony_ci or f.name = 'sys.mem.free' 82fb726d48Sopenharmony_ci or f.name = 'sys.mem.buffers' 83fb726d48Sopenharmony_ci or f.name = 'sys.mem.cached' 84fb726d48Sopenharmony_ci or f.name = 'sys.mem.shmem' 85fb726d48Sopenharmony_ci or f.name = 'sys.mem.slab' 86fb726d48Sopenharmony_ci or f.name = 'sys.mem.swap.total' 87fb726d48Sopenharmony_ci or f.name = 'sys.mem.swap.free' 88fb726d48Sopenharmony_ci or f.name = 'sys.mem.mapped' 89fb726d48Sopenharmony_ci or f.name = 'sys.mem.vmalloc.used' 90fb726d48Sopenharmony_ci or f.name = 'sys.mem.page.tables' 91fb726d48Sopenharmony_ci or f.name = 'sys.mem.kernel.stack' 92fb726d48Sopenharmony_ci or f.name = 'sys.mem.active' 93fb726d48Sopenharmony_ci or f.name = 'sys.mem.inactive' 94fb726d48Sopenharmony_ci or f.name = 'sys.mem.unevictable' 95fb726d48Sopenharmony_ci or f.name = 'sys.mem.vmalloc.total' 96fb726d48Sopenharmony_ci or f.name = 'sys.mem.slab.unreclaimable' 97fb726d48Sopenharmony_ci or f.name = 'sys.mem.cma.total' 98fb726d48Sopenharmony_ci or f.name = 'sys.mem.cma.free' 99fb726d48Sopenharmony_ci or f.name = 'sys.mem.kernel.reclaimable' 100fb726d48Sopenharmony_ci or f.name = 'sys.mem.zram' 101fb726d48Sopenharmony_ci ) 102fb726d48Sopenharmony_ci AND m.ts >= ifnull(( 103fb726d48Sopenharmony_ci SELECT 104fb726d48Sopenharmony_ci m.ts AS startTime 105fb726d48Sopenharmony_ci FROM 106fb726d48Sopenharmony_ci sys_mem_measure AS m 107fb726d48Sopenharmony_ci INNER JOIN sys_event_filter AS f ON m.filter_id = f.id 108fb726d48Sopenharmony_ci AND m.ts <= $leftNS 109fb726d48Sopenharmony_ci AND (f.name = 'sys.mem.total' 110fb726d48Sopenharmony_ci or f.name = 'sys.mem.kernel.stack' 111fb726d48Sopenharmony_ci or f.name = 'sys.mem.free' 112fb726d48Sopenharmony_ci or f.name = 'sys.mem.swap.free' 113fb726d48Sopenharmony_ci or f.name = 'sys.mem.cma.free' 114fb726d48Sopenharmony_ci or f.name = 'sys.mem.inactive' 115fb726d48Sopenharmony_ci or f.name = 'sys.mem.buffers' 116fb726d48Sopenharmony_ci or f.name = 'sys.mem.cached' 117fb726d48Sopenharmony_ci or f.name = 'sys.mem.shmem' 118fb726d48Sopenharmony_ci or f.name = 'sys.mem.slab' 119fb726d48Sopenharmony_ci or f.name = 'sys.mem.swap.total' 120fb726d48Sopenharmony_ci or f.name = 'sys.mem.vmalloc.used' 121fb726d48Sopenharmony_ci or f.name = 'sys.mem.page.tables' 122fb726d48Sopenharmony_ci or f.name = 'sys.mem.active' 123fb726d48Sopenharmony_ci or f.name = 'sys.mem.unevictable' 124fb726d48Sopenharmony_ci or f.name = 'sys.mem.vmalloc.total' 125fb726d48Sopenharmony_ci or f.name = 'sys.mem.slab.unreclaimable' 126fb726d48Sopenharmony_ci or f.name = 'sys.mem.cma.total' 127fb726d48Sopenharmony_ci or f.name = 'sys.mem.mapped' 128fb726d48Sopenharmony_ci or f.name = 'sys.mem.kernel.reclaimable' 129fb726d48Sopenharmony_ci or f.name = 'sys.mem.zram' 130fb726d48Sopenharmony_ci ) 131fb726d48Sopenharmony_ci ORDER BY 132fb726d48Sopenharmony_ci m.ts DESC 133fb726d48Sopenharmony_ci LIMIT 1 134fb726d48Sopenharmony_ci ),0) 135fb726d48Sopenharmony_ci AND m.ts <= $rightNS GROUP BY m.ts;`, 136fb726d48Sopenharmony_ci { $leftNS: leftNs, $rightNS: rightNs } 137fb726d48Sopenharmony_ci ); 138fb726d48Sopenharmony_ciexport const getTabNetworkAbilityData = (leftNs: number, rightNs: number): Promise<Array<SystemNetworkSummary>> => 139fb726d48Sopenharmony_ci query<SystemNetworkSummary>( 140fb726d48Sopenharmony_ci 'getTabNetworkAbilityData', 141fb726d48Sopenharmony_ci `SELECT 142fb726d48Sopenharmony_ci ( n.ts - TR.start_ts ) AS startTime, 143fb726d48Sopenharmony_ci n.dur AS duration, 144fb726d48Sopenharmony_ci n.rx AS dataReceived, 145fb726d48Sopenharmony_ci n.tx_speed AS dataReceivedSec, 146fb726d48Sopenharmony_ci n.tx AS dataSend, 147fb726d48Sopenharmony_ci n.rx_speed AS dataSendSec, 148fb726d48Sopenharmony_ci n.packet_in AS packetsIn, 149fb726d48Sopenharmony_ci n.packet_in_sec AS packetsInSec, 150fb726d48Sopenharmony_ci n.packet_out AS packetsOut, 151fb726d48Sopenharmony_ci n.packet_out_sec AS packetsOutSec 152fb726d48Sopenharmony_ci FROM 153fb726d48Sopenharmony_ci network AS n, 154fb726d48Sopenharmony_ci trace_range AS TR 155fb726d48Sopenharmony_ci WHERE 156fb726d48Sopenharmony_ci ( n.ts - TR.start_ts ) >= ifnull(( 157fb726d48Sopenharmony_ci SELECT 158fb726d48Sopenharmony_ci ( nn.ts - T.start_ts ) AS startTime 159fb726d48Sopenharmony_ci FROM 160fb726d48Sopenharmony_ci network nn, 161fb726d48Sopenharmony_ci trace_range T 162fb726d48Sopenharmony_ci WHERE 163fb726d48Sopenharmony_ci ( nn.ts - T.start_ts ) <= $leftNS 164fb726d48Sopenharmony_ci ORDER BY 165fb726d48Sopenharmony_ci nn.ts DESC 166fb726d48Sopenharmony_ci LIMIT 1 167fb726d48Sopenharmony_ci ),0) 168fb726d48Sopenharmony_ci AND ( n.ts - TR.start_ts ) <= $rightNS 169fb726d48Sopenharmony_ci ORDER BY 170fb726d48Sopenharmony_ci startTime ASC`, 171fb726d48Sopenharmony_ci { $leftNS: leftNs, $rightNS: rightNs } 172fb726d48Sopenharmony_ci ); 173fb726d48Sopenharmony_ciexport const getTabDiskAbilityData = (leftNs: number, rightNs: number): Promise<Array<SystemDiskIOSummary>> => 174fb726d48Sopenharmony_ci query<SystemDiskIOSummary>( 175fb726d48Sopenharmony_ci 'getTabDiskAbilityData', 176fb726d48Sopenharmony_ci `SELECT 177fb726d48Sopenharmony_ci ( n.ts - TR.start_ts ) AS startTime, 178fb726d48Sopenharmony_ci n.dur AS duration, 179fb726d48Sopenharmony_ci n.rd AS dataRead, 180fb726d48Sopenharmony_ci n.rd_speed AS dataReadSec, 181fb726d48Sopenharmony_ci n.wr AS dataWrite, 182fb726d48Sopenharmony_ci n.wr_speed AS dataWriteSec, 183fb726d48Sopenharmony_ci n.rd_count AS readsIn, 184fb726d48Sopenharmony_ci n.rd_count_speed AS readsInSec, 185fb726d48Sopenharmony_ci n.wr_count AS writeOut, 186fb726d48Sopenharmony_ci n.wr_count_speed AS writeOutSec 187fb726d48Sopenharmony_ci FROM 188fb726d48Sopenharmony_ci diskio AS n, 189fb726d48Sopenharmony_ci trace_range AS TR 190fb726d48Sopenharmony_ci WHERE 191fb726d48Sopenharmony_ci ( n.ts - TR.start_ts ) >= ifnull(( 192fb726d48Sopenharmony_ci SELECT 193fb726d48Sopenharmony_ci ( nn.ts - T.start_ts ) AS startTime 194fb726d48Sopenharmony_ci FROM 195fb726d48Sopenharmony_ci diskio AS nn, 196fb726d48Sopenharmony_ci trace_range AS T 197fb726d48Sopenharmony_ci WHERE 198fb726d48Sopenharmony_ci ( nn.ts - T.start_ts ) <= $leftNS 199fb726d48Sopenharmony_ci ORDER BY 200fb726d48Sopenharmony_ci nn.ts DESC 201fb726d48Sopenharmony_ci LIMIT 1 202fb726d48Sopenharmony_ci ),0) 203fb726d48Sopenharmony_ci AND ( n.ts - TR.start_ts ) <= $rightNS 204fb726d48Sopenharmony_ci ORDER BY 205fb726d48Sopenharmony_ci startTime ASC; 206fb726d48Sopenharmony_ci `, 207fb726d48Sopenharmony_ci { $leftNS: leftNs, $rightNS: rightNs } 208fb726d48Sopenharmony_ci ); 209fb726d48Sopenharmony_ci 210fb726d48Sopenharmony_ciexport const queryCpuAbilityData = (): Promise<Array<CpuAbilityMonitorStruct>> => 211fb726d48Sopenharmony_ci query( 212fb726d48Sopenharmony_ci 'queryCpuAbilityData', 213fb726d48Sopenharmony_ci `select 214fb726d48Sopenharmony_ci (t.total_load) as value, 215fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 216fb726d48Sopenharmony_ci from cpu_usage t, trace_range AS TR;` 217fb726d48Sopenharmony_ci ); 218fb726d48Sopenharmony_ci 219fb726d48Sopenharmony_ciexport const queryCpuAbilityUserData = (): Promise<Array<CpuAbilityMonitorStruct>> => 220fb726d48Sopenharmony_ci query( 221fb726d48Sopenharmony_ci 'queryCpuAbilityUserData', 222fb726d48Sopenharmony_ci `select 223fb726d48Sopenharmony_ci t.user_load as value, 224fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 225fb726d48Sopenharmony_ci from cpu_usage t, trace_range AS TR;` 226fb726d48Sopenharmony_ci ); 227fb726d48Sopenharmony_ci 228fb726d48Sopenharmony_ciexport const queryCpuAbilitySystemData = (): Promise<Array<CpuAbilityMonitorStruct>> => 229fb726d48Sopenharmony_ci query( 230fb726d48Sopenharmony_ci 'queryCpuAbilitySystemData', 231fb726d48Sopenharmony_ci `select 232fb726d48Sopenharmony_ci t.system_load as value, 233fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 234fb726d48Sopenharmony_ci from cpu_usage t, trace_range AS TR;` 235fb726d48Sopenharmony_ci ); 236fb726d48Sopenharmony_ci 237fb726d48Sopenharmony_ciexport const queryMemoryUsedAbilityData = (id: string): Promise<Array<MemoryAbilityMonitorStruct>> => 238fb726d48Sopenharmony_ci query( 239fb726d48Sopenharmony_ci 'queryMemoryUsedAbilityData', 240fb726d48Sopenharmony_ci `select 241fb726d48Sopenharmony_ci t.value as value, 242fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 243fb726d48Sopenharmony_ci from sys_mem_measure t, trace_range AS TR where t.filter_id = $id;`, 244fb726d48Sopenharmony_ci { $id: id } 245fb726d48Sopenharmony_ci ); 246fb726d48Sopenharmony_ci 247fb726d48Sopenharmony_ciexport const queryCachedFilesAbilityData = (id: string): Promise<Array<MemoryAbilityMonitorStruct>> => 248fb726d48Sopenharmony_ci query( 249fb726d48Sopenharmony_ci 'queryCachedFilesAbilityData', 250fb726d48Sopenharmony_ci `select 251fb726d48Sopenharmony_ci t.value as value, 252fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 253fb726d48Sopenharmony_ci from sys_mem_measure t, trace_range AS TR where t.filter_id = $id;`, 254fb726d48Sopenharmony_ci { $id: id } 255fb726d48Sopenharmony_ci ); 256fb726d48Sopenharmony_ci 257fb726d48Sopenharmony_ciexport const queryCompressedAbilityData = (id: string): Promise<Array<MemoryAbilityMonitorStruct>> => 258fb726d48Sopenharmony_ci query( 259fb726d48Sopenharmony_ci 'queryCompressedAbilityData', 260fb726d48Sopenharmony_ci `select 261fb726d48Sopenharmony_ci t.value as value, 262fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 263fb726d48Sopenharmony_ci from sys_mem_measure t, trace_range AS TR where t.filter_id = $id;`, 264fb726d48Sopenharmony_ci { $id: id } 265fb726d48Sopenharmony_ci ); 266fb726d48Sopenharmony_ci 267fb726d48Sopenharmony_ciexport const querySwapUsedAbilityData = (id: string): Promise<Array<MemoryAbilityMonitorStruct>> => 268fb726d48Sopenharmony_ci query( 269fb726d48Sopenharmony_ci 'querySwapUsedAbilityData', 270fb726d48Sopenharmony_ci `select 271fb726d48Sopenharmony_ci t.value as value, 272fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 273fb726d48Sopenharmony_ci from sys_mem_measure t, trace_range AS TR where t.filter_id = $id;`, 274fb726d48Sopenharmony_ci { $id: id } 275fb726d48Sopenharmony_ci ); 276fb726d48Sopenharmony_ci 277fb726d48Sopenharmony_ciexport const queryBytesReadAbilityData = (): Promise<Array<DiskAbilityMonitorStruct>> => 278fb726d48Sopenharmony_ci query( 279fb726d48Sopenharmony_ci 'queryBytesReadAbilityData', 280fb726d48Sopenharmony_ci `select 281fb726d48Sopenharmony_ci t.rd_speed as value, 282fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 283fb726d48Sopenharmony_ci from diskio t, trace_range AS TR;` 284fb726d48Sopenharmony_ci ); 285fb726d48Sopenharmony_ci 286fb726d48Sopenharmony_ciexport const queryBytesWrittenAbilityData = (): Promise<Array<DiskAbilityMonitorStruct>> => 287fb726d48Sopenharmony_ci query( 288fb726d48Sopenharmony_ci 'queryBytesWrittenAbilityData', 289fb726d48Sopenharmony_ci `select 290fb726d48Sopenharmony_ci t.wr_speed as value, 291fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 292fb726d48Sopenharmony_ci from diskio t, trace_range AS TR;` 293fb726d48Sopenharmony_ci ); 294fb726d48Sopenharmony_ci 295fb726d48Sopenharmony_ciexport const queryReadAbilityData = (): Promise<Array<DiskAbilityMonitorStruct>> => 296fb726d48Sopenharmony_ci query( 297fb726d48Sopenharmony_ci 'queryReadAbilityData', 298fb726d48Sopenharmony_ci `select 299fb726d48Sopenharmony_ci t.rd_count_speed as value, 300fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 301fb726d48Sopenharmony_ci from diskio t, trace_range AS TR;` 302fb726d48Sopenharmony_ci ); 303fb726d48Sopenharmony_ci 304fb726d48Sopenharmony_ciexport const queryWrittenAbilityData = (): Promise<Array<DiskAbilityMonitorStruct>> => 305fb726d48Sopenharmony_ci query( 306fb726d48Sopenharmony_ci 'queryWrittenAbilityData', 307fb726d48Sopenharmony_ci `select 308fb726d48Sopenharmony_ci t.wr_count_speed as value, 309fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 310fb726d48Sopenharmony_ci from diskio t, trace_range AS TR;` 311fb726d48Sopenharmony_ci ); 312fb726d48Sopenharmony_ci 313fb726d48Sopenharmony_ciexport const queryBytesInAbilityData = (): Promise<Array<NetworkAbilityMonitorStruct>> => 314fb726d48Sopenharmony_ci query( 315fb726d48Sopenharmony_ci 'queryBytesInAbilityData', 316fb726d48Sopenharmony_ci `select 317fb726d48Sopenharmony_ci t.tx_speed as value, 318fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 319fb726d48Sopenharmony_ci from network t, trace_range AS TR;` 320fb726d48Sopenharmony_ci ); 321fb726d48Sopenharmony_ci 322fb726d48Sopenharmony_ciexport const queryBytesOutAbilityData = (): Promise<Array<NetworkAbilityMonitorStruct>> => 323fb726d48Sopenharmony_ci query( 324fb726d48Sopenharmony_ci 'queryBytesOutAbilityData', 325fb726d48Sopenharmony_ci `select 326fb726d48Sopenharmony_ci t.rx_speed as value, 327fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 328fb726d48Sopenharmony_ci from network t, trace_range AS TR;` 329fb726d48Sopenharmony_ci ); 330fb726d48Sopenharmony_ci 331fb726d48Sopenharmony_ciexport const queryPacketsInAbilityData = (): Promise<Array<NetworkAbilityMonitorStruct>> => 332fb726d48Sopenharmony_ci query( 333fb726d48Sopenharmony_ci 'queryPacketsInAbilityData', 334fb726d48Sopenharmony_ci `select 335fb726d48Sopenharmony_ci t.packet_in_sec as value, 336fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 337fb726d48Sopenharmony_ci from network t, trace_range AS TR;` 338fb726d48Sopenharmony_ci ); 339fb726d48Sopenharmony_ci 340fb726d48Sopenharmony_ciexport const queryPacketsOutAbilityData = (): Promise<Array<NetworkAbilityMonitorStruct>> => 341fb726d48Sopenharmony_ci query( 342fb726d48Sopenharmony_ci 'queryPacketsOutAbilityData', 343fb726d48Sopenharmony_ci `select 344fb726d48Sopenharmony_ci t.packet_out_sec as value, 345fb726d48Sopenharmony_ci (t.ts - TR.start_ts) as startNS 346fb726d48Sopenharmony_ci from network t, trace_range AS TR;` 347fb726d48Sopenharmony_ci ); 348fb726d48Sopenharmony_ciexport const queryAbilityExits = (): //@ts-ignore 349fb726d48Sopenharmony_ciPromise<Array<unknown>> => 350fb726d48Sopenharmony_ci query( 351fb726d48Sopenharmony_ci 'queryAbilityExits', 352fb726d48Sopenharmony_ci `select 353fb726d48Sopenharmony_ci event_name 354fb726d48Sopenharmony_ci from stat s 355fb726d48Sopenharmony_ci where s.event_name in ('trace_diskio','trace_network', 'trace_cpu_usage','sys_memory') 356fb726d48Sopenharmony_ci and s.stat_type ='received' and s.count > 0` 357fb726d48Sopenharmony_ci ); 358fb726d48Sopenharmony_ciexport const queryCPuAbilityMaxData = (): //@ts-ignore 359fb726d48Sopenharmony_ciPromise<Array<unknown>> => 360fb726d48Sopenharmony_ci query( 361fb726d48Sopenharmony_ci 'queryCPuAbilityMaxData', 362fb726d48Sopenharmony_ci `select ifnull(max(total_load),0) as totalLoad, 363fb726d48Sopenharmony_ci ifnull(max(user_load),0) as userLoad, 364fb726d48Sopenharmony_ci ifnull(max(system_load),0) as systemLoad 365fb726d48Sopenharmony_ci from cpu_usage` 366fb726d48Sopenharmony_ci ); 367fb726d48Sopenharmony_ci// Ability Monitor SkiaGpuMemory泳道图 368fb726d48Sopenharmony_ciexport const queryGpuMemoryAbilityData = (): Promise<Array<SnapshotStruct>> => 369fb726d48Sopenharmony_ci query( 370fb726d48Sopenharmony_ci 'queryGpuMemoryAbilityData', 371fb726d48Sopenharmony_ci `SELECT 372fb726d48Sopenharmony_ci (A.ts - B.start_ts) as startNs, 373fb726d48Sopenharmony_ci sum(A.used_gpu_size) as value 374fb726d48Sopenharmony_ci FROM memory_process_gpu A,trace_range B 375fb726d48Sopenharmony_ci WHERE A.ts < B.end_ts 376fb726d48Sopenharmony_ci GROUP by A.ts 377fb726d48Sopenharmony_ci LIMIT 1;` 378fb726d48Sopenharmony_ci ); 379fb726d48Sopenharmony_ci 380fb726d48Sopenharmony_ci// Ability Monitor Dma泳道图 381fb726d48Sopenharmony_ciexport const queryDmaAbilityData = (): Promise<Array<SnapshotStruct>> => 382fb726d48Sopenharmony_ci query( 383fb726d48Sopenharmony_ci 'queryDmaAbilityData', 384fb726d48Sopenharmony_ci `SELECT 385fb726d48Sopenharmony_ci (A.ts - B.start_ts) as startNs, 386fb726d48Sopenharmony_ci sum(A.size) as value, 387fb726d48Sopenharmony_ci E.data as expTaskComm, 388fb726d48Sopenharmony_ci A.flag as flag 389fb726d48Sopenharmony_ci FROM memory_dma A,trace_range B 390fb726d48Sopenharmony_ci left join data_dict as E on E.id=A.exp_task_comm_id 391fb726d48Sopenharmony_ci WHERE 392fb726d48Sopenharmony_ci A.flag = 0 393fb726d48Sopenharmony_ci AND A.ts < B.end_ts 394fb726d48Sopenharmony_ci GROUP by A.ts 395fb726d48Sopenharmony_ci LIMIT 1;` 396fb726d48Sopenharmony_ci ); 397fb726d48Sopenharmony_ci// Ability Monitor Purgeable泳道图 398fb726d48Sopenharmony_ciexport const queryPurgeableSysData = ( 399fb726d48Sopenharmony_ci isPin?: boolean 400fb726d48Sopenharmony_ci): //@ts-ignore 401fb726d48Sopenharmony_ciPromise<Array<unknown>> => { 402fb726d48Sopenharmony_ci const pinCondition = isPin ? ' AND a.ref_count > 0' : ''; 403fb726d48Sopenharmony_ci const names = isPin ? " ('sys.mem.pined.purg')" : "('sys.mem.active.purg','sys.mem.inactive.purg')"; 404fb726d48Sopenharmony_ci return query( 405fb726d48Sopenharmony_ci 'queryPurgeableSysData', 406fb726d48Sopenharmony_ci `SELECT 407fb726d48Sopenharmony_ci startNs, 408fb726d48Sopenharmony_ci sum( value ) AS value 409fb726d48Sopenharmony_ci FROM 410fb726d48Sopenharmony_ci ( 411fb726d48Sopenharmony_ci SELECT 412fb726d48Sopenharmony_ci m.ts - tr.start_ts AS startNs, 413fb726d48Sopenharmony_ci sum( m.value ) AS value 414fb726d48Sopenharmony_ci FROM 415fb726d48Sopenharmony_ci sys_mem_measure m, 416fb726d48Sopenharmony_ci trace_range tr 417fb726d48Sopenharmony_ci LEFT JOIN sys_event_filter f ON f.id = m.filter_id 418fb726d48Sopenharmony_ci WHERE 419fb726d48Sopenharmony_ci m.ts < tr.end_ts 420fb726d48Sopenharmony_ci AND f.name IN ${names} 421fb726d48Sopenharmony_ci GROUP BY 422fb726d48Sopenharmony_ci m.ts UNION ALL 423fb726d48Sopenharmony_ci SELECT 424fb726d48Sopenharmony_ci a.ts - tr.start_ts AS startNs, 425fb726d48Sopenharmony_ci sum( a.size ) AS value 426fb726d48Sopenharmony_ci FROM 427fb726d48Sopenharmony_ci memory_ashmem a, 428fb726d48Sopenharmony_ci trace_range tr 429fb726d48Sopenharmony_ci WHERE 430fb726d48Sopenharmony_ci a.ts < tr.end_ts 431fb726d48Sopenharmony_ci AND a.flag = 0 432fb726d48Sopenharmony_ci ${pinCondition} 433fb726d48Sopenharmony_ci GROUP BY 434fb726d48Sopenharmony_ci a.ts 435fb726d48Sopenharmony_ci ) 436fb726d48Sopenharmony_ci GROUP BY startNs 437fb726d48Sopenharmony_ci LIMIT 1` 438fb726d48Sopenharmony_ci ); 439fb726d48Sopenharmony_ci}; 440fb726d48Sopenharmony_ci 441fb726d48Sopenharmony_ci//Ability Monitor Purgeable 框选 tab页 442fb726d48Sopenharmony_ciexport const querySysPurgeableTab = ( 443fb726d48Sopenharmony_ci leftNs: number, 444fb726d48Sopenharmony_ci rightNs: number, 445fb726d48Sopenharmony_ci dur: number, 446fb726d48Sopenharmony_ci isPin?: boolean 447fb726d48Sopenharmony_ci): //@ts-ignore 448fb726d48Sopenharmony_ciPromise<Array<unknown>> => { 449fb726d48Sopenharmony_ci let pinsql = isPin ? ' AND ref_count > 0' : ''; 450fb726d48Sopenharmony_ci const names = isPin ? " ('sys.mem.pined.purg')" : "('sys.mem.active.purg','sys.mem.inactive.purg')"; 451fb726d48Sopenharmony_ci return query( 452fb726d48Sopenharmony_ci 'querySysPurgeableTab', 453fb726d48Sopenharmony_ci `SELECT name, MAX( size ) AS maxSize,MIN( size ) AS minSize,AVG( size ) AS avgSize 454fb726d48Sopenharmony_ci FROM 455fb726d48Sopenharmony_ci (SELECT 456fb726d48Sopenharmony_ci 'ShmPurg' AS name, 457fb726d48Sopenharmony_ci ts - tr.start_ts AS startTs, 458fb726d48Sopenharmony_ci SUM( size ) AS size 459fb726d48Sopenharmony_ci FROM 460fb726d48Sopenharmony_ci memory_ashmem, 461fb726d48Sopenharmony_ci trace_range tr 462fb726d48Sopenharmony_ci WHERE flag = 0 463fb726d48Sopenharmony_ci ${pinsql} 464fb726d48Sopenharmony_ci GROUP BY ts UNION 465fb726d48Sopenharmony_ci SELECT 466fb726d48Sopenharmony_ci CASE 467fb726d48Sopenharmony_ci WHEN 468fb726d48Sopenharmony_ci f.name = 'sys.mem.active.purg' THEN 469fb726d48Sopenharmony_ci 'ActivePurg' 470fb726d48Sopenharmony_ci WHEN f.name = 'sys.mem.inactive.purg' THEN 471fb726d48Sopenharmony_ci 'InActivePurg' ELSE 'PinedPurg' 472fb726d48Sopenharmony_ci END AS name, 473fb726d48Sopenharmony_ci m.ts - tr.start_ts AS startTs, 474fb726d48Sopenharmony_ci m.value AS size 475fb726d48Sopenharmony_ci FROM 476fb726d48Sopenharmony_ci sys_mem_measure m, 477fb726d48Sopenharmony_ci trace_range tr 478fb726d48Sopenharmony_ci LEFT JOIN sys_event_filter f ON f.id = m.filter_id 479fb726d48Sopenharmony_ci WHERE 480fb726d48Sopenharmony_ci f.name IN ${names} 481fb726d48Sopenharmony_ci ), 482fb726d48Sopenharmony_ci trace_range tr 483fb726d48Sopenharmony_ci WHERE ${leftNs} <= startTs + ${dur} AND ${rightNs} >= startTs 484fb726d48Sopenharmony_ci GROUP BY name` 485fb726d48Sopenharmony_ci ); 486fb726d48Sopenharmony_ci}; 487fb726d48Sopenharmony_ci 488fb726d48Sopenharmony_ci//Ability Monitor Purgeable 点选 tab页 489fb726d48Sopenharmony_ciexport const querySysPurgeableSelectionTab = ( 490fb726d48Sopenharmony_ci startNs: number, 491fb726d48Sopenharmony_ci isPin?: boolean 492fb726d48Sopenharmony_ci): //@ts-ignore 493fb726d48Sopenharmony_ciPromise<Array<unknown>> => { 494fb726d48Sopenharmony_ci const pinSql = isPin ? ' AND ref_count > 0' : ''; 495fb726d48Sopenharmony_ci const names = isPin ? " ('sys.mem.pined.purg')" : "('sys.mem.active.purg','sys.mem.inactive.purg')"; 496fb726d48Sopenharmony_ci return query( 497fb726d48Sopenharmony_ci 'querySysPurgeableSelectionTab', 498fb726d48Sopenharmony_ci `SELECT 499fb726d48Sopenharmony_ci ( CASE WHEN f.name = 'sys.mem.active.purg' THEN 'ActivePurg' WHEN f.name = 'sys.mem.inactive.purg' THEN 'InActivePurg' ELSE 'PinedPurg' END ) AS name, 500fb726d48Sopenharmony_ci m.value AS value 501fb726d48Sopenharmony_ci FROM 502fb726d48Sopenharmony_ci sys_mem_measure m, 503fb726d48Sopenharmony_ci trace_range tr 504fb726d48Sopenharmony_ci LEFT JOIN sys_event_filter f ON f.id = m.filter_id 505fb726d48Sopenharmony_ci WHERE 506fb726d48Sopenharmony_ci f.name IN ${names} 507fb726d48Sopenharmony_ci AND m.ts - tr.start_ts = ${startNs} 508fb726d48Sopenharmony_ci UNION 509fb726d48Sopenharmony_ci SELECT 510fb726d48Sopenharmony_ci 'ShmPurg' AS name, 511fb726d48Sopenharmony_ci SUM( size ) AS value 512fb726d48Sopenharmony_ci FROM 513fb726d48Sopenharmony_ci memory_ashmem, 514fb726d48Sopenharmony_ci trace_range tr 515fb726d48Sopenharmony_ci WHERE 516fb726d48Sopenharmony_ci memory_ashmem.ts - tr.start_ts = ${startNs} 517fb726d48Sopenharmony_ci AND flag=0 518fb726d48Sopenharmony_ci ${pinSql} 519fb726d48Sopenharmony_ci GROUP BY ts` 520fb726d48Sopenharmony_ci ); 521fb726d48Sopenharmony_ci}; 522fb726d48Sopenharmony_ci//Ability Monitor SkiaGpuMemory 框选 523fb726d48Sopenharmony_ciexport const getTabGpuMemoryAbilityData = (leftNs: number, rightNs: number, dur: number): Promise<Array<GpuMemory>> => 524fb726d48Sopenharmony_ci query<GpuMemory>( 525fb726d48Sopenharmony_ci 'getTabGpuMemoryAbilityData', 526fb726d48Sopenharmony_ci `SELECT (S.ts-TR.start_ts) as startNs, 527fb726d48Sopenharmony_ci gpu_name_id as gpuNameId, 528fb726d48Sopenharmony_ci MAX(S.used_gpu_size) as maxSize, 529fb726d48Sopenharmony_ci MIN(S.used_gpu_size) as minSize, 530fb726d48Sopenharmony_ci Avg(S.used_gpu_size) as avgSize, 531fb726d48Sopenharmony_ci E.pid as processId, 532fb726d48Sopenharmony_ci E.name as processName 533fb726d48Sopenharmony_ci from trace_range as TR,memory_process_gpu as S 534fb726d48Sopenharmony_ci left join process as E on E.ipid=S.ipid 535fb726d48Sopenharmony_ci WHERE 536fb726d48Sopenharmony_ci $leftNS <= startNs + ${dur} 537fb726d48Sopenharmony_ci and 538fb726d48Sopenharmony_ci $rightNS >= startNs 539fb726d48Sopenharmony_ci GROUP by 540fb726d48Sopenharmony_ci E.pid ,S.gpu_name_id 541fb726d48Sopenharmony_ci `, 542fb726d48Sopenharmony_ci { $leftNS: leftNs, $rightNS: rightNs } 543fb726d48Sopenharmony_ci ); 544fb726d48Sopenharmony_ci//Ability Monitor SkiaGpuMemory 点选 545fb726d48Sopenharmony_ciexport const getTabGpuMemoryAbilityClickData = (startNs: number): Promise<Array<GpuMemory>> => 546fb726d48Sopenharmony_ci query<GpuMemory>( 547fb726d48Sopenharmony_ci 'getTabGpuMemoryAbilityClickData', 548fb726d48Sopenharmony_ci `SELECT 549fb726d48Sopenharmony_ci (S.ts-TR.start_ts) as startNs, 550fb726d48Sopenharmony_ci S.used_gpu_size as size, 551fb726d48Sopenharmony_ci E.pid as processId, 552fb726d48Sopenharmony_ci E.name as processName, 553fb726d48Sopenharmony_ci A.data as gpuName 554fb726d48Sopenharmony_ci from trace_range as TR,memory_process_gpu as S 555fb726d48Sopenharmony_ci left join process as E on E.ipid=S.ipid 556fb726d48Sopenharmony_ci left join data_dict as A on A.id=S.gpu_name_id 557fb726d48Sopenharmony_ci WHERE 558fb726d48Sopenharmony_ci startNs = ${startNs} 559fb726d48Sopenharmony_ci `, 560fb726d48Sopenharmony_ci { $startNs: startNs } 561fb726d48Sopenharmony_ci ); 562fb726d48Sopenharmony_ci//Ability Monitor Gpu Memory 点选比较 563fb726d48Sopenharmony_ciexport const getTabGpuMemoryComparisonData = (startNs: number): Promise<Array<GpuMemoryComparison>> => 564fb726d48Sopenharmony_ci query<GpuMemoryComparison>( 565fb726d48Sopenharmony_ci 'getTabGpuMemoryComparisonData', 566fb726d48Sopenharmony_ci `SELECT 567fb726d48Sopenharmony_ci (S.ts-TR.start_ts) as startNs, 568fb726d48Sopenharmony_ci sum(S.used_gpu_size) as value, 569fb726d48Sopenharmony_ci E.pid as processId, 570fb726d48Sopenharmony_ci S.gpu_name_id as gpuNameId, 571fb726d48Sopenharmony_ci E.name as processName 572fb726d48Sopenharmony_ci from trace_range as TR,memory_process_gpu as S 573fb726d48Sopenharmony_ci left join process as E on E.ipid=S.ipid 574fb726d48Sopenharmony_ci WHERE 575fb726d48Sopenharmony_ci startNs = ${startNs} 576fb726d48Sopenharmony_ci GROUP by 577fb726d48Sopenharmony_ci E.pid, S.gpu_name_id 578fb726d48Sopenharmony_ci `, 579fb726d48Sopenharmony_ci { $startNs: startNs } 580fb726d48Sopenharmony_ci ); 581