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 { FpsStruct } from '../ui-worker/ProcedureWorkerFPS'; 16fb726d48Sopenharmony_ciimport { Counter, Fps } from '../../bean/BoxSelection'; 17fb726d48Sopenharmony_ciimport { NativeEvent, NativeEventHeap } from '../../bean/NativeHook'; 18fb726d48Sopenharmony_ciimport { HeapTreeDataBean } from '../logic-worker/ProcedureLogicWorkerCommon'; 19fb726d48Sopenharmony_ciimport { EnergyAnomalyStruct } from '../ui-worker/ProcedureWorkerEnergyAnomaly'; 20fb726d48Sopenharmony_ciimport { SystemDetailsEnergy } from '../../bean/EnergyStruct'; 21fb726d48Sopenharmony_ciimport { EnergyStateStruct } from '../ui-worker/ProcedureWorkerEnergyState'; 22fb726d48Sopenharmony_ciimport { FileInfo } from '../../../js-heap/model/UiStruct'; 23fb726d48Sopenharmony_ciimport { HeapEdge, HeapLocation, HeapNode, HeapSample } from '../../../js-heap/model/DatabaseStruct'; 24fb726d48Sopenharmony_ciimport { TaskTabStruct } from '../../component/trace/sheet/task/TabPaneTaskFrames'; 25fb726d48Sopenharmony_ciimport type { FrameAnimationStruct } from '../ui-worker/ProcedureWorkerFrameAnimation'; 26fb726d48Sopenharmony_ciimport type { FrameDynamicStruct } from '../ui-worker/ProcedureWorkerFrameDynamic'; 27fb726d48Sopenharmony_ciimport type { FrameSpacingStruct } from '../ui-worker/ProcedureWorkerFrameSpacing'; 28fb726d48Sopenharmony_ciimport type { DeviceStruct } from '../../bean/FrameComponentBean'; 29fb726d48Sopenharmony_ciimport { LogStruct } from '../ui-worker/ProcedureWorkerLog'; 30fb726d48Sopenharmony_ciimport { query } from '../SqlLite'; 31fb726d48Sopenharmony_ciimport { Utils } from '../../component/trace/base/Utils'; 32fb726d48Sopenharmony_ci 33fb726d48Sopenharmony_ciexport const queryEventCountMap = ( 34fb726d48Sopenharmony_ci traceId?: string 35fb726d48Sopenharmony_ci): Promise< 36fb726d48Sopenharmony_ci Array<{ 37fb726d48Sopenharmony_ci eventName: string; 38fb726d48Sopenharmony_ci count: number; 39fb726d48Sopenharmony_ci }> 40fb726d48Sopenharmony_ci> => 41fb726d48Sopenharmony_ci query( 42fb726d48Sopenharmony_ci 'queryEventCountMap', 43fb726d48Sopenharmony_ci `select 44fb726d48Sopenharmony_ci event_name as eventName, 45fb726d48Sopenharmony_ci count 46fb726d48Sopenharmony_ci from stat where stat_type = 'received';`, 47fb726d48Sopenharmony_ci {}, 48fb726d48Sopenharmony_ci { traceId: traceId } 49fb726d48Sopenharmony_ci ); 50fb726d48Sopenharmony_ci 51fb726d48Sopenharmony_ciexport const queryTotalTime = ( 52fb726d48Sopenharmony_ci traceId?: string 53fb726d48Sopenharmony_ci): Promise<Array<{ total: number; recordStartNS: number; recordEndNS: number }>> => 54fb726d48Sopenharmony_ci query( 55fb726d48Sopenharmony_ci 'queryTotalTime', 56fb726d48Sopenharmony_ci `select start_ts as recordStartNS,end_ts as recordEndNS,end_ts-start_ts as total 57fb726d48Sopenharmony_ci from 58fb726d48Sopenharmony_ci trace_range;`, 59fb726d48Sopenharmony_ci {}, 60fb726d48Sopenharmony_ci { traceId: traceId } 61fb726d48Sopenharmony_ci ); 62fb726d48Sopenharmony_ciexport const getFps = (): Promise<FpsStruct[]> => 63fb726d48Sopenharmony_ci query<FpsStruct>( 64fb726d48Sopenharmony_ci 'getFps', 65fb726d48Sopenharmony_ci ` 66fb726d48Sopenharmony_ci select 67fb726d48Sopenharmony_ci distinct(ts-tb.start_ts) as startNS, fps 68fb726d48Sopenharmony_ci from 69fb726d48Sopenharmony_ci hidump c ,trace_range tb 70fb726d48Sopenharmony_ci where 71fb726d48Sopenharmony_ci startNS >= 0 72fb726d48Sopenharmony_ci --order by startNS; 73fb726d48Sopenharmony_ci `, 74fb726d48Sopenharmony_ci {} 75fb726d48Sopenharmony_ci ); 76fb726d48Sopenharmony_ci 77fb726d48Sopenharmony_ciexport const getTabFps = (leftNs: number, rightNs: number): Promise<Array<Fps>> => 78fb726d48Sopenharmony_ci query<Fps>( 79fb726d48Sopenharmony_ci 'getTabFps', 80fb726d48Sopenharmony_ci ` 81fb726d48Sopenharmony_ci select 82fb726d48Sopenharmony_ci distinct(ts-tb.start_ts) as startNS, 83fb726d48Sopenharmony_ci fps 84fb726d48Sopenharmony_ci from 85fb726d48Sopenharmony_ci hidump c, 86fb726d48Sopenharmony_ci trace_range tb 87fb726d48Sopenharmony_ci where 88fb726d48Sopenharmony_ci startNS <= $rightNS 89fb726d48Sopenharmony_ci and 90fb726d48Sopenharmony_ci startNS >= 0 91fb726d48Sopenharmony_ci --order by startNS; 92fb726d48Sopenharmony_ci `, 93fb726d48Sopenharmony_ci { $leftNS: leftNs, $rightNS: rightNs } 94fb726d48Sopenharmony_ci ); 95fb726d48Sopenharmony_ci 96fb726d48Sopenharmony_ciexport const getTabVirtualCounters = (virtualFilterIds: Array<number>, startTime: number): Promise<Counter[]> => 97fb726d48Sopenharmony_ci query<Counter>( 98fb726d48Sopenharmony_ci 'getTabVirtualCounters', 99fb726d48Sopenharmony_ci ` 100fb726d48Sopenharmony_ci select 101fb726d48Sopenharmony_ci table1.filter_id as trackId, 102fb726d48Sopenharmony_ci table2.name, 103fb726d48Sopenharmony_ci value, 104fb726d48Sopenharmony_ci table1.ts - table3.start_ts as startTime 105fb726d48Sopenharmony_ci from 106fb726d48Sopenharmony_ci sys_mem_measure table1 107fb726d48Sopenharmony_ci left join 108fb726d48Sopenharmony_ci sys_event_filter table2 109fb726d48Sopenharmony_ci on 110fb726d48Sopenharmony_ci table1.filter_id = table2.id 111fb726d48Sopenharmony_ci left join 112fb726d48Sopenharmony_ci trace_range table3 113fb726d48Sopenharmony_ci where 114fb726d48Sopenharmony_ci filter_id in (${virtualFilterIds.join(',')}) 115fb726d48Sopenharmony_ci and 116fb726d48Sopenharmony_ci startTime <= $startTime 117fb726d48Sopenharmony_ci `, 118fb726d48Sopenharmony_ci { $startTime: startTime } 119fb726d48Sopenharmony_ci ); 120fb726d48Sopenharmony_ci 121fb726d48Sopenharmony_ciexport const queryAllSoInitNames = (): //@ts-ignore 122fb726d48Sopenharmony_ciPromise<Array<unknown>> => { 123fb726d48Sopenharmony_ci return query( 124fb726d48Sopenharmony_ci 'queryAllSoInitNames', 125fb726d48Sopenharmony_ci ` 126fb726d48Sopenharmony_ci select id,so_name as name from static_initalize;` 127fb726d48Sopenharmony_ci ); 128fb726d48Sopenharmony_ci}; 129fb726d48Sopenharmony_ci 130fb726d48Sopenharmony_ciexport const queryAllSrcSlices = (): //@ts-ignore 131fb726d48Sopenharmony_ciPromise<Array<unknown>> => { 132fb726d48Sopenharmony_ci return query( 133fb726d48Sopenharmony_ci 'queryAllSrcSlices', 134fb726d48Sopenharmony_ci ` 135fb726d48Sopenharmony_ci select src,id from frame_slice;` 136fb726d48Sopenharmony_ci ); 137fb726d48Sopenharmony_ci}; 138fb726d48Sopenharmony_ci 139fb726d48Sopenharmony_ci/*-------------------------------------------------------------------------------------*/ 140fb726d48Sopenharmony_ciexport const queryHeapGroupByEvent = (type: string): Promise<Array<NativeEventHeap>> => { 141fb726d48Sopenharmony_ci let sql1 = ` 142fb726d48Sopenharmony_ci SELECT 143fb726d48Sopenharmony_ci event_type AS eventType, 144fb726d48Sopenharmony_ci sum(heap_size) AS sumHeapSize 145fb726d48Sopenharmony_ci FROM 146fb726d48Sopenharmony_ci native_hook 147fb726d48Sopenharmony_ci WHERE 148fb726d48Sopenharmony_ci event_type = 'AllocEvent' 149fb726d48Sopenharmony_ci UNION ALL 150fb726d48Sopenharmony_ci SELECT 151fb726d48Sopenharmony_ci event_type AS eventType, 152fb726d48Sopenharmony_ci sum(heap_size) AS sumHeapSize 153fb726d48Sopenharmony_ci FROM 154fb726d48Sopenharmony_ci native_hook 155fb726d48Sopenharmony_ci WHERE 156fb726d48Sopenharmony_ci event_type = 'MmapEvent' 157fb726d48Sopenharmony_ci `; 158fb726d48Sopenharmony_ci let sql2 = ` 159fb726d48Sopenharmony_ci select (case when type = 0 then 'AllocEvent' else 'MmapEvent' end) eventType, 160fb726d48Sopenharmony_ci sum(apply_size) sumHeapSize 161fb726d48Sopenharmony_ci from native_hook_statistic 162fb726d48Sopenharmony_ci group by eventType; 163fb726d48Sopenharmony_ci `; 164fb726d48Sopenharmony_ci return query('queryHeapGroupByEvent', type === 'native_hook' ? sql1 : sql2, {}); 165fb726d48Sopenharmony_ci}; 166fb726d48Sopenharmony_ci 167fb726d48Sopenharmony_ciexport const queryAllHeapByEvent = (): Promise<Array<NativeEvent>> => 168fb726d48Sopenharmony_ci query( 169fb726d48Sopenharmony_ci 'queryAllHeapByEvent', 170fb726d48Sopenharmony_ci ` 171fb726d48Sopenharmony_ci select * from ( 172fb726d48Sopenharmony_ci select h.start_ts - t.start_ts as startTime, 173fb726d48Sopenharmony_ci h.heap_size as heapSize, 174fb726d48Sopenharmony_ci h.event_type as eventType 175fb726d48Sopenharmony_cifrom native_hook h ,trace_range t 176fb726d48Sopenharmony_ciwhere h.start_ts >= t.start_ts and h.start_ts <= t.end_ts 177fb726d48Sopenharmony_ciand (h.event_type = 'AllocEvent' or h.event_type = 'MmapEvent') 178fb726d48Sopenharmony_ciunion 179fb726d48Sopenharmony_ciselect h.end_ts - t.start_ts as startTime, 180fb726d48Sopenharmony_ci h.heap_size as heapSize, 181fb726d48Sopenharmony_ci (case when h.event_type = 'AllocEvent' then 'FreeEvent' else 'MunmapEvent' end) as eventType 182fb726d48Sopenharmony_cifrom native_hook h ,trace_range t 183fb726d48Sopenharmony_ciwhere h.start_ts >= t.start_ts and h.start_ts <= t.end_ts 184fb726d48Sopenharmony_ciand (h.event_type = 'AllocEvent' or h.event_type = 'MmapEvent') 185fb726d48Sopenharmony_ciand h.end_ts not null ) order by startTime; 186fb726d48Sopenharmony_ci`, 187fb726d48Sopenharmony_ci {} 188fb726d48Sopenharmony_ci ); 189fb726d48Sopenharmony_ci 190fb726d48Sopenharmony_ciexport const queryHeapAllData = ( 191fb726d48Sopenharmony_ci startTs: number, 192fb726d48Sopenharmony_ci endTs: number, 193fb726d48Sopenharmony_ci ipids: Array<number> 194fb726d48Sopenharmony_ci): Promise<Array<HeapTreeDataBean>> => 195fb726d48Sopenharmony_ci query( 196fb726d48Sopenharmony_ci 'queryHeapAllData', 197fb726d48Sopenharmony_ci ` 198fb726d48Sopenharmony_ci select 199fb726d48Sopenharmony_ci h.start_ts - t.start_ts as startTs, 200fb726d48Sopenharmony_ci h.end_ts - t.start_ts as endTs, 201fb726d48Sopenharmony_ci h.heap_size as heapSize, 202fb726d48Sopenharmony_ci h.event_type as eventType, 203fb726d48Sopenharmony_ci h.callchain_id as eventId 204fb726d48Sopenharmony_ci from 205fb726d48Sopenharmony_ci native_hook h 206fb726d48Sopenharmony_ci inner join 207fb726d48Sopenharmony_ci trace_range t 208fb726d48Sopenharmony_ci where 209fb726d48Sopenharmony_ci event_type = 'AllocEvent' 210fb726d48Sopenharmony_ci and 211fb726d48Sopenharmony_ci ipid in (${ipids.join(',')}) 212fb726d48Sopenharmony_ci and 213fb726d48Sopenharmony_ci (h.start_ts - t.start_ts between ${startTs} and ${endTs} 214fb726d48Sopenharmony_ci or h.end_ts - t.start_ts between ${startTs} and ${endTs})`, 215fb726d48Sopenharmony_ci { ipids: ipids, $startTs: startTs, $endTs: endTs } 216fb726d48Sopenharmony_ci ); 217fb726d48Sopenharmony_ci 218fb726d48Sopenharmony_ciexport const querySelectTraceStats = (): Promise< 219fb726d48Sopenharmony_ci Array<{ 220fb726d48Sopenharmony_ci event_name: string; 221fb726d48Sopenharmony_ci stat_type: string; 222fb726d48Sopenharmony_ci count: number; 223fb726d48Sopenharmony_ci source: string; 224fb726d48Sopenharmony_ci serverity: string; 225fb726d48Sopenharmony_ci }> 226fb726d48Sopenharmony_ci> => query('querySelectTraceStats', 'select event_name,stat_type,count,source,serverity from stat'); 227fb726d48Sopenharmony_ci 228fb726d48Sopenharmony_ciexport const queryCustomizeSelect = ( 229fb726d48Sopenharmony_ci sql: string 230fb726d48Sopenharmony_ci): //@ts-ignore 231fb726d48Sopenharmony_ciPromise<Array<unknown>> => query('queryCustomizeSelect', sql); 232fb726d48Sopenharmony_ci 233fb726d48Sopenharmony_ciexport const queryDistributedTerm = (): Promise< 234fb726d48Sopenharmony_ci Array<{ 235fb726d48Sopenharmony_ci threadId: string; 236fb726d48Sopenharmony_ci threadName: string; 237fb726d48Sopenharmony_ci processId: string; 238fb726d48Sopenharmony_ci processName: string; 239fb726d48Sopenharmony_ci funName: string; 240fb726d48Sopenharmony_ci dur: string; 241fb726d48Sopenharmony_ci ts: string; 242fb726d48Sopenharmony_ci chainId: string; 243fb726d48Sopenharmony_ci spanId: string; 244fb726d48Sopenharmony_ci parentSpanId: string; 245fb726d48Sopenharmony_ci flag: string; 246fb726d48Sopenharmony_ci trace_name: string; 247fb726d48Sopenharmony_ci }> 248fb726d48Sopenharmony_ci> => 249fb726d48Sopenharmony_ci query( 250fb726d48Sopenharmony_ci 'queryDistributedTerm', 251fb726d48Sopenharmony_ci ` 252fb726d48Sopenharmony_ci select 253fb726d48Sopenharmony_ci group_concat(thread.id,',') as threadId, 254fb726d48Sopenharmony_ci group_concat(thread.name,',') as threadName, 255fb726d48Sopenharmony_ci group_concat(process.id,',') as processId, 256fb726d48Sopenharmony_ci group_concat(process.name,',') as processName, 257fb726d48Sopenharmony_ci group_concat(callstack.name,',') as funName, 258fb726d48Sopenharmony_ci group_concat(callstack.dur,',') as dur, 259fb726d48Sopenharmony_ci group_concat(callstack.ts,',') as ts, 260fb726d48Sopenharmony_ci cast(callstack.chainId as varchar) as chainId, 261fb726d48Sopenharmony_ci callstack.spanId as spanId, 262fb726d48Sopenharmony_ci callstack.parentSpanId as parentSpanId, 263fb726d48Sopenharmony_ci group_concat(callstack.flag,',') as flag, 264fb726d48Sopenharmony_ci (select 265fb726d48Sopenharmony_ci value 266fb726d48Sopenharmony_ci from 267fb726d48Sopenharmony_ci meta 268fb726d48Sopenharmony_ci where 269fb726d48Sopenharmony_ci name='source_name') as trace_name 270fb726d48Sopenharmony_ci from 271fb726d48Sopenharmony_ci callstack 272fb726d48Sopenharmony_ci inner join thread on callstack.callid = thread.id 273fb726d48Sopenharmony_ci inner join process on process.id = thread.ipid 274fb726d48Sopenharmony_ci where (callstack.flag='S' or callstack.flag='C') 275fb726d48Sopenharmony_ci group by callstack.chainId,callstack.spanId,callstack.parentSpanId` 276fb726d48Sopenharmony_ci ); 277fb726d48Sopenharmony_ciexport const queryTraceTaskName = (): Promise< 278fb726d48Sopenharmony_ci Array<{ 279fb726d48Sopenharmony_ci id: string; 280fb726d48Sopenharmony_ci pid: string; 281fb726d48Sopenharmony_ci process_name: string; 282fb726d48Sopenharmony_ci thread_name: string; 283fb726d48Sopenharmony_ci }> 284fb726d48Sopenharmony_ci> => 285fb726d48Sopenharmony_ci query( 286fb726d48Sopenharmony_ci 'queryTraceTaskName', 287fb726d48Sopenharmony_ci ` 288fb726d48Sopenharmony_ci select 289fb726d48Sopenharmony_ci P.id as id, 290fb726d48Sopenharmony_ci P.pid as pid, 291fb726d48Sopenharmony_ci P.name as process_name, 292fb726d48Sopenharmony_ci group_concat(T.name,',') as thread_name 293fb726d48Sopenharmony_ci from process as P left join thread as T where P.id = T.ipid 294fb726d48Sopenharmony_ci group by pid` 295fb726d48Sopenharmony_ci ); 296fb726d48Sopenharmony_ci 297fb726d48Sopenharmony_ciexport const queryTraceMetaData = (): Promise< 298fb726d48Sopenharmony_ci Array<{ 299fb726d48Sopenharmony_ci name: string; 300fb726d48Sopenharmony_ci valueText: string; 301fb726d48Sopenharmony_ci }> 302fb726d48Sopenharmony_ci> => 303fb726d48Sopenharmony_ci query( 304fb726d48Sopenharmony_ci 'queryTraceMetaData', 305fb726d48Sopenharmony_ci ` 306fb726d48Sopenharmony_ci select 307fb726d48Sopenharmony_ci cast(name as varchar) as name, 308fb726d48Sopenharmony_ci cast(value as varchar) as valueText 309fb726d48Sopenharmony_ci from meta 310fb726d48Sopenharmony_ci UNION 311fb726d48Sopenharmony_ci select 'start_ts',cast(start_ts as varchar) from trace_range 312fb726d48Sopenharmony_ci UNION 313fb726d48Sopenharmony_ci select 'end_ts',cast(end_ts as varchar) from trace_range` 314fb726d48Sopenharmony_ci ); 315fb726d48Sopenharmony_ci 316fb726d48Sopenharmony_ciexport const querySystemCalls = (): Promise< 317fb726d48Sopenharmony_ci Array<{ 318fb726d48Sopenharmony_ci frequency: string; 319fb726d48Sopenharmony_ci minDur: number; 320fb726d48Sopenharmony_ci maxDur: number; 321fb726d48Sopenharmony_ci avgDur: number; 322fb726d48Sopenharmony_ci funName: string; 323fb726d48Sopenharmony_ci }> 324fb726d48Sopenharmony_ci> => 325fb726d48Sopenharmony_ci query( 326fb726d48Sopenharmony_ci 'querySystemCalls', 327fb726d48Sopenharmony_ci ` 328fb726d48Sopenharmony_ci select 329fb726d48Sopenharmony_ci count(*) as frequency, 330fb726d48Sopenharmony_ci min(dur) as minDur, 331fb726d48Sopenharmony_ci max(dur) as maxDur, 332fb726d48Sopenharmony_ci avg(dur) as avgDur, 333fb726d48Sopenharmony_ci name as funName 334fb726d48Sopenharmony_ci from 335fb726d48Sopenharmony_ci callstack 336fb726d48Sopenharmony_ci group by name 337fb726d48Sopenharmony_ci order by 338fb726d48Sopenharmony_ci frequency desc limit 100` 339fb726d48Sopenharmony_ci ); 340fb726d48Sopenharmony_ci 341fb726d48Sopenharmony_ciexport const queryNetWorkMaxData = (): //@ts-ignore 342fb726d48Sopenharmony_ciPromise<Array<unknown>> => 343fb726d48Sopenharmony_ci query( 344fb726d48Sopenharmony_ci 'queryNetWorkMaxData', 345fb726d48Sopenharmony_ci `select 346fb726d48Sopenharmony_ci ifnull(max(tx_speed),0) as maxIn, 347fb726d48Sopenharmony_ci ifnull(max(rx_speed),0) as maxOut, 348fb726d48Sopenharmony_ci ifnull(max(packet_in_sec),0) as maxPacketIn, 349fb726d48Sopenharmony_ci ifnull(max(packet_in_sec),0) as maxPacketOut 350fb726d48Sopenharmony_ci from network` 351fb726d48Sopenharmony_ci ); 352fb726d48Sopenharmony_ci 353fb726d48Sopenharmony_ciexport const queryDiskIoMaxData = (): //@ts-ignore 354fb726d48Sopenharmony_ciPromise<Array<unknown>> => 355fb726d48Sopenharmony_ci query( 356fb726d48Sopenharmony_ci 'queryDiskIoMaxData', 357fb726d48Sopenharmony_ci `select 358fb726d48Sopenharmony_ci ifnull(max(rd_speed),0) as bytesRead, 359fb726d48Sopenharmony_ci ifnull(max(wr_speed),0) as bytesWrite, 360fb726d48Sopenharmony_ci ifnull(max(rd_count_speed),0) as readOps, 361fb726d48Sopenharmony_ci ifnull(max(wr_count_speed),0) as writeOps 362fb726d48Sopenharmony_ci from diskio` 363fb726d48Sopenharmony_ci ); 364fb726d48Sopenharmony_ci//@ts-ignore 365fb726d48Sopenharmony_ciexport const queryStartTime = (): Promise<Array<unknown>> => 366fb726d48Sopenharmony_ci query('queryStartTime', 'SELECT start_ts FROM trace_range'); 367fb726d48Sopenharmony_ci//@ts-ignore 368fb726d48Sopenharmony_ciexport const queryRangeTime = (): Promise<Array<unknown>> => 369fb726d48Sopenharmony_ci query('queryRangeTime', `SELECT start_ts, end_ts FROM trace_range`); 370fb726d48Sopenharmony_ci 371fb726d48Sopenharmony_ciexport const queryBinderBySliceId = ( 372fb726d48Sopenharmony_ci id: number 373fb726d48Sopenharmony_ci): //@ts-ignore 374fb726d48Sopenharmony_ciPromise<Array<unknown>> => 375fb726d48Sopenharmony_ci query( 376fb726d48Sopenharmony_ci 'queryBinderBySliceId', 377fb726d48Sopenharmony_ci `SELECT 378fb726d48Sopenharmony_ci c.ts - D.start_ts AS startTs, 379fb726d48Sopenharmony_ci c.dur, 380fb726d48Sopenharmony_ci t.tid, 381fb726d48Sopenharmony_ci p.pid, 382fb726d48Sopenharmony_ci c.depth, 383fb726d48Sopenharmony_ci c.argsetid, 384fb726d48Sopenharmony_ci c.name AS funName, 385fb726d48Sopenharmony_ci c.cookie 386fb726d48Sopenharmony_ci FROM 387fb726d48Sopenharmony_ci callstack c, 388fb726d48Sopenharmony_ci trace_range D 389fb726d48Sopenharmony_ci LEFT JOIN thread t ON c.callid = t.id 390fb726d48Sopenharmony_ci LEFT JOIN process p ON p.id = t.ipid 391fb726d48Sopenharmony_ci WHERE 392fb726d48Sopenharmony_ci cat = 'binder' and c.id = $id;`, 393fb726d48Sopenharmony_ci { $id: id }, 394fb726d48Sopenharmony_ci { traceId: Utils.currentSelectTrace } 395fb726d48Sopenharmony_ci ); 396fb726d48Sopenharmony_ci 397fb726d48Sopenharmony_ciexport const queryThreadByItid = ( 398fb726d48Sopenharmony_ci itid: number, 399fb726d48Sopenharmony_ci ts: number 400fb726d48Sopenharmony_ci): //@ts-ignore 401fb726d48Sopenharmony_ciPromise<Array<unknown>> => 402fb726d48Sopenharmony_ci query( 403fb726d48Sopenharmony_ci 'queryThreadByItid', 404fb726d48Sopenharmony_ci `SELECT 405fb726d48Sopenharmony_ci tid, 406fb726d48Sopenharmony_ci pid, 407fb726d48Sopenharmony_ci c.dur, 408fb726d48Sopenharmony_ci c.depth, 409fb726d48Sopenharmony_ci c.name 410fb726d48Sopenharmony_ci FROM 411fb726d48Sopenharmony_ci thread t 412fb726d48Sopenharmony_ci LEFT JOIN process p ON t.ipid = p.ipid 413fb726d48Sopenharmony_ci LEFT JOIN callstack c ON t.itid = c.callid 414fb726d48Sopenharmony_ci WHERE itid = $itid and c.ts = $ts;`, 415fb726d48Sopenharmony_ci { $itid: itid, $ts: ts } 416fb726d48Sopenharmony_ci ); 417fb726d48Sopenharmony_ciexport const queryBinderByArgsId = ( 418fb726d48Sopenharmony_ci id: number, 419fb726d48Sopenharmony_ci startTime: number, 420fb726d48Sopenharmony_ci isNext: boolean 421fb726d48Sopenharmony_ci): //@ts-ignore 422fb726d48Sopenharmony_ciPromise<Array<unknown>> => { 423fb726d48Sopenharmony_ci let sql = `select c.ts - D.start_ts as startTs, 424fb726d48Sopenharmony_ci c.dur, 425fb726d48Sopenharmony_ci t.tid, 426fb726d48Sopenharmony_ci p.pid, 427fb726d48Sopenharmony_ci c.depth, 428fb726d48Sopenharmony_ci c.argsetid, 429fb726d48Sopenharmony_ci c.name as funName, 430fb726d48Sopenharmony_ci c.cookie 431fb726d48Sopenharmony_ci from callstack c,trace_range D 432fb726d48Sopenharmony_ci left join thread t on c.callid = t.id 433fb726d48Sopenharmony_ci left join process p on p.id = t.ipid 434fb726d48Sopenharmony_ciwhere cat = 'binder' and c.argsetid = $id`; 435fb726d48Sopenharmony_ci if (isNext) { 436fb726d48Sopenharmony_ci sql += ' and c.ts > $startTime + D.start_ts'; 437fb726d48Sopenharmony_ci } else { 438fb726d48Sopenharmony_ci sql += ' and c.ts < $startTime + D.start_ts'; 439fb726d48Sopenharmony_ci } 440fb726d48Sopenharmony_ci return query('queryBinderByArgsId', sql, { $id: id, $startTime: startTime}, 441fb726d48Sopenharmony_ci { traceId : Utils.currentSelectTrace } 442fb726d48Sopenharmony_ci ); 443fb726d48Sopenharmony_ci}; 444fb726d48Sopenharmony_ci 445fb726d48Sopenharmony_ciexport const getTabPaneFilesystemStatisticsFather = ( 446fb726d48Sopenharmony_ci leftNs: number, 447fb726d48Sopenharmony_ci rightNs: number 448fb726d48Sopenharmony_ci): //@ts-ignore 449fb726d48Sopenharmony_ciPromise<Array<unknown>> => 450fb726d48Sopenharmony_ci query( 451fb726d48Sopenharmony_ci 'getTabPaneFilesystemStatisticsFather', 452fb726d48Sopenharmony_ci ` 453fb726d48Sopenharmony_ci select SUM(dur) as allDuration, 454fb726d48Sopenharmony_ci count(f.type) as count, 455fb726d48Sopenharmony_ci min(dur) as minDuration, 456fb726d48Sopenharmony_ci max(dur) as maxDuration, 457fb726d48Sopenharmony_ci round(avg(dur),2) as avgDuration, 458fb726d48Sopenharmony_ci p.name, 459fb726d48Sopenharmony_ci f.type, 460fb726d48Sopenharmony_ci p.pid, 461fb726d48Sopenharmony_ci sum(ifnull(size,0)) as size 462fb726d48Sopenharmony_ci from file_system_sample as f 463fb726d48Sopenharmony_ci left join process as p on f.ipid=p.ipid 464fb726d48Sopenharmony_ci where f.start_ts >= $leftNs 465fb726d48Sopenharmony_ci and end_ts <= $rightNs 466fb726d48Sopenharmony_ci group by f.type; 467fb726d48Sopenharmony_ci `, 468fb726d48Sopenharmony_ci { $leftNs: leftNs, $rightNs: rightNs } 469fb726d48Sopenharmony_ci ); 470fb726d48Sopenharmony_ci 471fb726d48Sopenharmony_ciexport const getTabPaneFilesystemStatisticsChild = ( 472fb726d48Sopenharmony_ci leftNs: number, 473fb726d48Sopenharmony_ci rightNs: number 474fb726d48Sopenharmony_ci): //@ts-ignore 475fb726d48Sopenharmony_ciPromise<Array<unknown>> => 476fb726d48Sopenharmony_ci query( 477fb726d48Sopenharmony_ci 'getTabPaneFilesystemStatisticsChild', 478fb726d48Sopenharmony_ci ` 479fb726d48Sopenharmony_ci select SUM(dur) as allDuration, 480fb726d48Sopenharmony_ci count(f.type) as count, 481fb726d48Sopenharmony_ci min(dur) as minDuration, 482fb726d48Sopenharmony_ci max(dur) as maxDuration, 483fb726d48Sopenharmony_ci round(avg(dur),2) as avgDuration, 484fb726d48Sopenharmony_ci p.name, 485fb726d48Sopenharmony_ci p.pid, 486fb726d48Sopenharmony_ci f.type, 487fb726d48Sopenharmony_ci sum(ifnull(size,0)) as size 488fb726d48Sopenharmony_ci from file_system_sample as f left join process as p on f.ipid=p.ipid 489fb726d48Sopenharmony_ci where f.start_ts >= $leftNs 490fb726d48Sopenharmony_ci and end_ts <= $rightNs 491fb726d48Sopenharmony_ci group by f.type, f.ipid; 492fb726d48Sopenharmony_ci`, 493fb726d48Sopenharmony_ci { $leftNs: leftNs, $rightNs: rightNs } 494fb726d48Sopenharmony_ci ); 495fb726d48Sopenharmony_ci 496fb726d48Sopenharmony_ciexport const getTabPaneFilesystemStatisticsAll = ( 497fb726d48Sopenharmony_ci leftNs: number, 498fb726d48Sopenharmony_ci rightNs: number 499fb726d48Sopenharmony_ci): //@ts-ignore 500fb726d48Sopenharmony_ciPromise<Array<unknown>> => 501fb726d48Sopenharmony_ci query( 502fb726d48Sopenharmony_ci 'getTabPaneFilesystemStatisticsAll', 503fb726d48Sopenharmony_ci ` 504fb726d48Sopenharmony_ci select SUM(dur) as allDuration, 505fb726d48Sopenharmony_ci count(type) as count, 506fb726d48Sopenharmony_ci min(dur) as minDuration, 507fb726d48Sopenharmony_ci max(dur) as maxDuration, 508fb726d48Sopenharmony_ci round(avg(dur),2) as avgDuration, 509fb726d48Sopenharmony_ci type 510fb726d48Sopenharmony_ci from file_system_sample 511fb726d48Sopenharmony_ci where start_ts <= $rightNs 512fb726d48Sopenharmony_ci and end_ts >= $leftNs; 513fb726d48Sopenharmony_ci`, 514fb726d48Sopenharmony_ci { $leftNs: leftNs, $rightNs: rightNs } 515fb726d48Sopenharmony_ci ); 516fb726d48Sopenharmony_ci 517fb726d48Sopenharmony_ciexport const getTabPaneFilesystemStatistics = ( 518fb726d48Sopenharmony_ci leftNs: number, 519fb726d48Sopenharmony_ci rightNs: number, 520fb726d48Sopenharmony_ci types: number[] 521fb726d48Sopenharmony_ci): //@ts-ignore 522fb726d48Sopenharmony_ciPromise<Array<unknown>> => 523fb726d48Sopenharmony_ci query( 524fb726d48Sopenharmony_ci 'getTabPaneFilesystemStatistics', 525fb726d48Sopenharmony_ci ` 526fb726d48Sopenharmony_ci select p.pid, 527fb726d48Sopenharmony_ci ifnull(p.name,'Process') as name, 528fb726d48Sopenharmony_ci f.type, 529fb726d48Sopenharmony_ci count(f.ipid) as count, 530fb726d48Sopenharmony_ci sum(ifnull(size,0)) as size, 531fb726d48Sopenharmony_ci sum(case when f.type = 2 then ifnull(size,0) else 0 end) as logicalReads, 532fb726d48Sopenharmony_ci sum(case when f.type = 3 then ifnull(size,0) else 0 end) as logicalWrites, 533fb726d48Sopenharmony_ci sum(case when f.type != 2 and f.type != 3 then ifnull(size,0) else 0 end) as otherFile, 534fb726d48Sopenharmony_ci sum(dur) as allDuration, 535fb726d48Sopenharmony_ci min(dur) as minDuration, 536fb726d48Sopenharmony_ci max(dur) as maxDuration, 537fb726d48Sopenharmony_ci avg(dur) as avgDuration 538fb726d48Sopenharmony_ci from file_system_sample as f left join process as p on f.ipid=p.ipid 539fb726d48Sopenharmony_ci where f.end_ts >= $leftNs 540fb726d48Sopenharmony_ci and f.start_ts <= $rightNs 541fb726d48Sopenharmony_ci and f.type in (${types.join(',')}) 542fb726d48Sopenharmony_ci group by f.type,f.ipid 543fb726d48Sopenharmony_ci order by f.type; 544fb726d48Sopenharmony_ci`, 545fb726d48Sopenharmony_ci { $leftNs: leftNs, $rightNs: rightNs } 546fb726d48Sopenharmony_ci ); 547fb726d48Sopenharmony_ci 548fb726d48Sopenharmony_ciexport const getTabPaneIOTierStatisticsData = ( 549fb726d48Sopenharmony_ci leftNs: number, 550fb726d48Sopenharmony_ci rightNs: number, 551fb726d48Sopenharmony_ci diskIOipids: Array<number> 552fb726d48Sopenharmony_ci): //@ts-ignore 553fb726d48Sopenharmony_ciPromise<Array<unknown>> => { 554fb726d48Sopenharmony_ci let str = ''; 555fb726d48Sopenharmony_ci if (diskIOipids.length > 0) { 556fb726d48Sopenharmony_ci str = ` and i.ipid in (${diskIOipids.join(',')})`; 557fb726d48Sopenharmony_ci } 558fb726d48Sopenharmony_ci return query( 559fb726d48Sopenharmony_ci 'getTabPaneIOTierStatisticsData', 560fb726d48Sopenharmony_ci ` 561fb726d48Sopenharmony_ci select p.pid, 562fb726d48Sopenharmony_ci ifnull(p.name,'Process') as pname, 563fb726d48Sopenharmony_ci i.tier, 564fb726d48Sopenharmony_ci i.ipid, 565fb726d48Sopenharmony_ci path_id as path, 566fb726d48Sopenharmony_ci count(i.ipid) as count, 567fb726d48Sopenharmony_ci sum(latency_dur) as allDuration, 568fb726d48Sopenharmony_ci min(latency_dur) as minDuration, 569fb726d48Sopenharmony_ci max(latency_dur) as maxDuration, 570fb726d48Sopenharmony_ci avg(latency_dur) as avgDuration 571fb726d48Sopenharmony_ci from bio_latency_sample as i left join process as p on i.ipid=p.ipid 572fb726d48Sopenharmony_ci where i.end_ts+latency_dur >= $leftNs 573fb726d48Sopenharmony_ci and i.start_ts+latency_dur <= $rightNs 574fb726d48Sopenharmony_ci ${str} 575fb726d48Sopenharmony_ci group by i.tier,i.ipid,i.path_id 576fb726d48Sopenharmony_ci order by i.tier; 577fb726d48Sopenharmony_ci`, 578fb726d48Sopenharmony_ci { $leftNs: leftNs, $rightNs: rightNs } 579fb726d48Sopenharmony_ci ); 580fb726d48Sopenharmony_ci}; 581fb726d48Sopenharmony_ci 582fb726d48Sopenharmony_ciexport const getTabPaneFrequencySampleData = ( 583fb726d48Sopenharmony_ci leftNs: number, 584fb726d48Sopenharmony_ci rightNs: number, 585fb726d48Sopenharmony_ci cpuFreqFilterIds: Array<number> 586fb726d48Sopenharmony_ci): //@ts-ignore 587fb726d48Sopenharmony_ciPromise<Array<unknown>> => { 588fb726d48Sopenharmony_ci let str = ''; 589fb726d48Sopenharmony_ci if (cpuFreqFilterIds.length > 0) { 590fb726d48Sopenharmony_ci str = ` and filter_id in (${cpuFreqFilterIds.join(',')})`; 591fb726d48Sopenharmony_ci } 592fb726d48Sopenharmony_ci return query( 593fb726d48Sopenharmony_ci 'getTabPaneFrequencySampleData', 594fb726d48Sopenharmony_ci ` 595fb726d48Sopenharmony_ci select value, filter_id as filterId, ts, f.cpu 596fb726d48Sopenharmony_ci from measure left join cpu_measure_filter as f on f.id=filter_id 597fb726d48Sopenharmony_ci where 598fb726d48Sopenharmony_ci ts <= $rightNs${str} order by ts asc; 599fb726d48Sopenharmony_ci`, 600fb726d48Sopenharmony_ci { $leftNs: leftNs, $rightNs: rightNs }, {traceId: Utils.currentSelectTrace} 601fb726d48Sopenharmony_ci ); 602fb726d48Sopenharmony_ci}; 603fb726d48Sopenharmony_ci 604fb726d48Sopenharmony_ciexport const getFileSysChartDataByType = ( 605fb726d48Sopenharmony_ci type: number 606fb726d48Sopenharmony_ci): //@ts-ignore 607fb726d48Sopenharmony_ciPromise<Array<unknown>> => 608fb726d48Sopenharmony_ci query( 609fb726d48Sopenharmony_ci 'getFileSysChartData', 610fb726d48Sopenharmony_ci ` 611fb726d48Sopenharmony_ci select 612fb726d48Sopenharmony_ci (A.start_ts -B.start_ts) as startNS, 613fb726d48Sopenharmony_ci (A.end_ts - B.start_ts) as endNS, 614fb726d48Sopenharmony_ci dur 615fb726d48Sopenharmony_ci from file_system_sample A,trace_range B 616fb726d48Sopenharmony_ci where type = $type and startNS > 0;`, 617fb726d48Sopenharmony_ci { $type: type } 618fb726d48Sopenharmony_ci ); 619fb726d48Sopenharmony_ci 620fb726d48Sopenharmony_ciexport const getDiskIOProcess = (): //@ts-ignore 621fb726d48Sopenharmony_ciPromise<Array<unknown>> => 622fb726d48Sopenharmony_ci query( 623fb726d48Sopenharmony_ci 'getDiskIOProcess', 624fb726d48Sopenharmony_ci ` 625fb726d48Sopenharmony_ci select name,B.ipid,pid 626fb726d48Sopenharmony_ci from (select distinct ipid from bio_latency_sample A,trace_range B 627fb726d48Sopenharmony_ci where A.start_ts between B.start_ts and B.end_ts) A 628fb726d48Sopenharmony_ci left join process B on A.ipid = B.ipid;`, 629fb726d48Sopenharmony_ci {} 630fb726d48Sopenharmony_ci ); 631fb726d48Sopenharmony_ci 632fb726d48Sopenharmony_ciexport const getDiskIOLatencyChartDataByProcess = ( 633fb726d48Sopenharmony_ci all: boolean, 634fb726d48Sopenharmony_ci ipid: number, 635fb726d48Sopenharmony_ci typeArr: Array<number> 636fb726d48Sopenharmony_ci): //@ts-ignore 637fb726d48Sopenharmony_ciPromise<Array<unknown>> => 638fb726d48Sopenharmony_ci query( 639fb726d48Sopenharmony_ci 'getDiskIOLatencyChartDataByProcess', 640fb726d48Sopenharmony_ci ` 641fb726d48Sopenharmony_ci select 642fb726d48Sopenharmony_ci (A.start_ts -B.start_ts) as startNS, 643fb726d48Sopenharmony_ci (A.start_ts - B.start_ts + A.latency_dur) as endNS, 644fb726d48Sopenharmony_ci latency_dur as dur 645fb726d48Sopenharmony_ci from bio_latency_sample A,trace_range B 646fb726d48Sopenharmony_ci where type in (${typeArr.join(',')}) and startNS > 0 647fb726d48Sopenharmony_ci ${all ? '' : 'and ipid = ' + ipid} 648fb726d48Sopenharmony_ci order by A.start_ts;`, 649fb726d48Sopenharmony_ci {} 650fb726d48Sopenharmony_ci ); 651fb726d48Sopenharmony_ci 652fb726d48Sopenharmony_ciexport const queryAnomalyData = (): Promise<Array<EnergyAnomalyStruct>> => 653fb726d48Sopenharmony_ci query( 654fb726d48Sopenharmony_ci 'queryAnomalyData', 655fb726d48Sopenharmony_ci `select 656fb726d48Sopenharmony_ci S.id, 657fb726d48Sopenharmony_ci (S.ts - TR.start_ts) as startNS, 658fb726d48Sopenharmony_ci D.data as eventName, 659fb726d48Sopenharmony_ci D2.data as appKey, 660fb726d48Sopenharmony_ci (case when S.type==1 then group_concat(S.string_value,',') else group_concat(S.int_value,',') 661fb726d48Sopenharmony_ci end) as Value 662fb726d48Sopenharmony_ci from trace_range AS TR,hisys_event_measure as S 663fb726d48Sopenharmony_ci left join data_dict as D on D.id=S.name_id 664fb726d48Sopenharmony_ci left join app_name as APP on APP.id=S.key_id 665fb726d48Sopenharmony_ci left join data_dict as D2 on D2.id=APP.app_key 666fb726d48Sopenharmony_ci where D.data in ('ANOMALY_SCREEN_OFF_ENERGY','ANOMALY_KERNEL_WAKELOCK', 667fb726d48Sopenharmony_ci 'ANOMALY_CPU_HIGH_FREQUENCY','ANOMALY_WAKEUP') 668fb726d48Sopenharmony_ci or (D.data in ('ANOMALY_RUNNINGLOCK','ANORMALY_APP_ENERGY','ANOMALY_GNSS_ENERGY', 669fb726d48Sopenharmony_ci 'ANOMALY_CPU_ENERGY','ANOMALY_ALARM_WAKEUP') and D2.data in ("APPNAME")) 670fb726d48Sopenharmony_ci group by S.serial,D.data` 671fb726d48Sopenharmony_ci ); 672fb726d48Sopenharmony_ci 673fb726d48Sopenharmony_ciexport const querySystemLocationData = (): Promise< 674fb726d48Sopenharmony_ci Array<{ 675fb726d48Sopenharmony_ci ts: string; 676fb726d48Sopenharmony_ci eventName: string; 677fb726d48Sopenharmony_ci appKey: string; 678fb726d48Sopenharmony_ci Value: string; 679fb726d48Sopenharmony_ci }> 680fb726d48Sopenharmony_ci> => 681fb726d48Sopenharmony_ci query( 682fb726d48Sopenharmony_ci 'querySystemLocationData', 683fb726d48Sopenharmony_ci `SELECT 684fb726d48Sopenharmony_ci ( S.ts - TR.start_ts ) AS ts, 685fb726d48Sopenharmony_ci D.data AS eventName, 686fb726d48Sopenharmony_ci D2.data AS appKey, 687fb726d48Sopenharmony_ci group_concat( ( CASE WHEN S.type == 1 THEN S.string_value ELSE S.int_value END ), ',' ) AS Value 688fb726d48Sopenharmony_ci FROM 689fb726d48Sopenharmony_ci trace_range AS TR, 690fb726d48Sopenharmony_ci hisys_event_measure AS S 691fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D ON D.id = S.name_id 692fb726d48Sopenharmony_ci LEFT JOIN app_name AS APP ON APP.id = S.key_id 693fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D2 ON D2.id = APP.app_key 694fb726d48Sopenharmony_ci WHERE 695fb726d48Sopenharmony_ci D.data = 'GNSS_STATE' AND D2.data = 'STATE' 696fb726d48Sopenharmony_ci GROUP BY 697fb726d48Sopenharmony_ci S.serial, 698fb726d48Sopenharmony_ci APP.app_key, 699fb726d48Sopenharmony_ci D.data, 700fb726d48Sopenharmony_ci D2.data;` 701fb726d48Sopenharmony_ci ); 702fb726d48Sopenharmony_ci 703fb726d48Sopenharmony_ciexport const querySystemLockData = (): Promise< 704fb726d48Sopenharmony_ci Array<{ 705fb726d48Sopenharmony_ci ts: string; 706fb726d48Sopenharmony_ci eventName: string; 707fb726d48Sopenharmony_ci appKey: string; 708fb726d48Sopenharmony_ci Value: string; 709fb726d48Sopenharmony_ci }> 710fb726d48Sopenharmony_ci> => 711fb726d48Sopenharmony_ci query( 712fb726d48Sopenharmony_ci 'querySystemLockData', 713fb726d48Sopenharmony_ci `SELECT 714fb726d48Sopenharmony_ci ( S.ts - TR.start_ts ) AS ts, 715fb726d48Sopenharmony_ci D.data AS eventName, 716fb726d48Sopenharmony_ci D2.data AS appKey, 717fb726d48Sopenharmony_ci group_concat(( CASE WHEN S.type == 1 THEN S.string_value ELSE S.int_value END ), ',' ) AS Value 718fb726d48Sopenharmony_ci FROM 719fb726d48Sopenharmony_ci trace_range AS TR, 720fb726d48Sopenharmony_ci hisys_event_measure AS S 721fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D ON D.id = S.name_id 722fb726d48Sopenharmony_ci LEFT JOIN app_name AS APP ON APP.id = S.key_id 723fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D2 ON D2.id = APP.app_key 724fb726d48Sopenharmony_ci WHERE 725fb726d48Sopenharmony_ci ( D.data = 'POWER_RUNNINGLOCK' AND D2.data in ('TAG','MESSAGE')) 726fb726d48Sopenharmony_ci GROUP BY 727fb726d48Sopenharmony_ci S.serial;` 728fb726d48Sopenharmony_ci ); 729fb726d48Sopenharmony_ci 730fb726d48Sopenharmony_ciexport const querySystemAllData = (): Promise< 731fb726d48Sopenharmony_ci Array<{ 732fb726d48Sopenharmony_ci id: number; 733fb726d48Sopenharmony_ci eventName: string; 734fb726d48Sopenharmony_ci eventValue: string; 735fb726d48Sopenharmony_ci }> 736fb726d48Sopenharmony_ci> => 737fb726d48Sopenharmony_ci query( 738fb726d48Sopenharmony_ci 'querySystemAllData', 739fb726d48Sopenharmony_ci `SELECT 740fb726d48Sopenharmony_ci S.id, 741fb726d48Sopenharmony_ci D.data AS eventName, 742fb726d48Sopenharmony_ci contents AS eventValue 743fb726d48Sopenharmony_ci FROM 744fb726d48Sopenharmony_ci trace_range AS TR, 745fb726d48Sopenharmony_ci hisys_all_event AS S 746fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D ON S.event_name_id = D.id 747fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D2 ON S.domain_id = D2.id 748fb726d48Sopenharmony_ci WHERE 749fb726d48Sopenharmony_ci eventName IN ( 'POWER_RUNNINGLOCK', 'GNSS_STATE', 'WORK_REMOVE', 'WORK_STOP', 'WORK_ADD' );` 750fb726d48Sopenharmony_ci ); 751fb726d48Sopenharmony_ci 752fb726d48Sopenharmony_ciexport const querySystemSchedulerData = (): Promise< 753fb726d48Sopenharmony_ci Array<{ 754fb726d48Sopenharmony_ci startNs: string; 755fb726d48Sopenharmony_ci eventName: string; 756fb726d48Sopenharmony_ci appKey: string; 757fb726d48Sopenharmony_ci Value: string; 758fb726d48Sopenharmony_ci }> 759fb726d48Sopenharmony_ci> => 760fb726d48Sopenharmony_ci query( 761fb726d48Sopenharmony_ci 'querySystemSchedulerData', 762fb726d48Sopenharmony_ci `SELECT 763fb726d48Sopenharmony_ci ( S.ts - TR.start_ts ) AS startNs, 764fb726d48Sopenharmony_ci D.data AS eventName, 765fb726d48Sopenharmony_ci group_concat(D2.data, ',') AS appKey, 766fb726d48Sopenharmony_ci group_concat( ( CASE WHEN S.type == 1 THEN S.string_value ELSE S.int_value END ), ',' ) AS Value 767fb726d48Sopenharmony_ci FROM 768fb726d48Sopenharmony_ci trace_range AS TR, 769fb726d48Sopenharmony_ci hisys_event_measure AS S 770fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D ON D.id = S.name_id 771fb726d48Sopenharmony_ci LEFT JOIN app_name AS APP ON APP.id = S.key_id 772fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D2 ON D2.id = APP.app_key 773fb726d48Sopenharmony_ci WHERE 774fb726d48Sopenharmony_ci D.data IN ( 'WORK_REMOVE', 'WORK_STOP', 'WORK_ADD' ) AND D2.data in ('NAME','TYPE','WORKID') 775fb726d48Sopenharmony_ci GROUP BY 776fb726d48Sopenharmony_ci S.serial;` 777fb726d48Sopenharmony_ci ); 778fb726d48Sopenharmony_ci 779fb726d48Sopenharmony_ciexport const querySystemDetailsData = (rightNs: number, eventName: string): Promise<Array<SystemDetailsEnergy>> => 780fb726d48Sopenharmony_ci query( 781fb726d48Sopenharmony_ci 'querySystemDetailsData', 782fb726d48Sopenharmony_ci `SELECT 783fb726d48Sopenharmony_ci ( S.ts - TR.start_ts ) AS ts, 784fb726d48Sopenharmony_ci D.data AS eventName, 785fb726d48Sopenharmony_ci D2.data AS appKey, 786fb726d48Sopenharmony_ci group_concat( ( CASE WHEN S.type == 1 THEN S.string_value ELSE S.int_value END ), ',' ) AS appValue 787fb726d48Sopenharmony_ci FROM 788fb726d48Sopenharmony_ci trace_range AS TR, 789fb726d48Sopenharmony_ci hisys_event_measure AS S 790fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D ON D.id = S.name_id 791fb726d48Sopenharmony_ci LEFT JOIN app_name AS APP ON APP.id = S.key_id 792fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D2 ON D2.id = APP.app_key 793fb726d48Sopenharmony_ci WHERE 794fb726d48Sopenharmony_ci D.data in ($eventName) 795fb726d48Sopenharmony_ci AND 796fb726d48Sopenharmony_ci D2.data in ('UID', 'TYPE', 'WORKID', 'NAME', 'INTERVAL', 'TAG', 'STATE', 'STACK', 'APPNAME', 797fb726d48Sopenharmony_ci 'MESSAGE', 'PID', 'LOG_LEVEL') 798fb726d48Sopenharmony_ci AND 799fb726d48Sopenharmony_ci (S.ts - TR.start_ts) <= $rightNS 800fb726d48Sopenharmony_ci GROUP BY 801fb726d48Sopenharmony_ci S.serial, 802fb726d48Sopenharmony_ci APP.app_key, 803fb726d48Sopenharmony_ci D.data, 804fb726d48Sopenharmony_ci D2.data;`, 805fb726d48Sopenharmony_ci { $rightNS: rightNs, $eventName: eventName } 806fb726d48Sopenharmony_ci ); 807fb726d48Sopenharmony_ci 808fb726d48Sopenharmony_ciexport const querySystemWorkData = (rightNs: number): Promise<Array<SystemDetailsEnergy>> => 809fb726d48Sopenharmony_ci query( 810fb726d48Sopenharmony_ci 'querySystemWorkData', 811fb726d48Sopenharmony_ci `SELECT 812fb726d48Sopenharmony_ci ( S.ts - TR.start_ts ) AS ts, 813fb726d48Sopenharmony_ci D.data AS eventName, 814fb726d48Sopenharmony_ci D2.data AS appKey, 815fb726d48Sopenharmony_ci group_concat( ( CASE WHEN S.type == 1 THEN S.string_value ELSE S.int_value END ), ',' ) AS appValue 816fb726d48Sopenharmony_ci FROM 817fb726d48Sopenharmony_ci trace_range AS TR, 818fb726d48Sopenharmony_ci hisys_event_measure AS S 819fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D 820fb726d48Sopenharmony_ci ON D.id = S.name_id 821fb726d48Sopenharmony_ci LEFT JOIN app_name AS APP 822fb726d48Sopenharmony_ci ON APP.id = S.key_id 823fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D2 824fb726d48Sopenharmony_ci ON D2.id = APP.app_key 825fb726d48Sopenharmony_ci WHERE 826fb726d48Sopenharmony_ci D.data in ("WORK_REMOVE", "WORK_STOP", "WORK_ADD", "WORK_START") 827fb726d48Sopenharmony_ci and 828fb726d48Sopenharmony_ci D2.data in ('UID', 'TYPE', 'WORKID', 'NAME', 'INTERVAL', 'TAG', 'STATE', 'STACK', 'APPNAME', 829fb726d48Sopenharmony_ci 'MESSAGE', 'PID', 'LOG_LEVEL') 830fb726d48Sopenharmony_ci and (S.ts - TR.start_ts) <= $rightNS 831fb726d48Sopenharmony_ci GROUP BY 832fb726d48Sopenharmony_ci S.serial, 833fb726d48Sopenharmony_ci APP.app_key, 834fb726d48Sopenharmony_ci D.data, 835fb726d48Sopenharmony_ci D2.data;`, 836fb726d48Sopenharmony_ci { $rightNS: rightNs } 837fb726d48Sopenharmony_ci ); 838fb726d48Sopenharmony_ci 839fb726d48Sopenharmony_ciexport const queryMaxPowerValue = ( 840fb726d48Sopenharmony_ci appName: string 841fb726d48Sopenharmony_ci): Promise< 842fb726d48Sopenharmony_ci Array<{ 843fb726d48Sopenharmony_ci maxValue: number; 844fb726d48Sopenharmony_ci }> 845fb726d48Sopenharmony_ci> => 846fb726d48Sopenharmony_ci query( 847fb726d48Sopenharmony_ci 'queryMaxPowerValue', 848fb726d48Sopenharmony_ci `SELECT 849fb726d48Sopenharmony_ci max( item ) AS maxValue 850fb726d48Sopenharmony_ci FROM 851fb726d48Sopenharmony_ci ( 852fb726d48Sopenharmony_ci SELECT 853fb726d48Sopenharmony_ci sum( energy + background_energy + screen_on_energy + screen_off_energy + foreground_energy ) AS item 854fb726d48Sopenharmony_ci FROM 855fb726d48Sopenharmony_ci energy 856fb726d48Sopenharmony_ci WHERE 857fb726d48Sopenharmony_ci app_name = $appName 858fb726d48Sopenharmony_ci GROUP BY 859fb726d48Sopenharmony_ci startNs);`, 860fb726d48Sopenharmony_ci { $appName: appName } 861fb726d48Sopenharmony_ci ); 862fb726d48Sopenharmony_ci 863fb726d48Sopenharmony_ciexport const queryMaxStateValue = ( 864fb726d48Sopenharmony_ci eventName: string 865fb726d48Sopenharmony_ci): Promise< 866fb726d48Sopenharmony_ci Array<{ 867fb726d48Sopenharmony_ci type: string; 868fb726d48Sopenharmony_ci maxValue: number; 869fb726d48Sopenharmony_ci }> 870fb726d48Sopenharmony_ci> => 871fb726d48Sopenharmony_ci query( 872fb726d48Sopenharmony_ci 'queryMaxStateValue', 873fb726d48Sopenharmony_ci `select 874fb726d48Sopenharmony_ci D.data as type, 875fb726d48Sopenharmony_ci max(S.int_value) as maxValue 876fb726d48Sopenharmony_ci from trace_range AS TR,hisys_event_measure as S 877fb726d48Sopenharmony_ci left join data_dict as D on D.id=S.name_id 878fb726d48Sopenharmony_ci left join app_name as APP on APP.id=S.key_id 879fb726d48Sopenharmony_ci left join data_dict as D2 on D2.id=APP.app_key 880fb726d48Sopenharmony_ci where (case when 'SENSOR_STATE'==$eventName then D.data like '%SENSOR%' else D.data = $eventName end) 881fb726d48Sopenharmony_ci and D2.data in ('BRIGHTNESS','STATE','VALUE','LEVEL','VOLUME','OPER_TYPE','VOLUME') 882fb726d48Sopenharmony_ci group by APP.app_key,D.data,D2.data;`, 883fb726d48Sopenharmony_ci { $eventName: eventName } 884fb726d48Sopenharmony_ci ); 885fb726d48Sopenharmony_ci 886fb726d48Sopenharmony_ciexport const queryStateData = (eventName: string): Promise<Array<EnergyStateStruct>> => 887fb726d48Sopenharmony_ci query( 888fb726d48Sopenharmony_ci 'queryStateData', 889fb726d48Sopenharmony_ci `select 890fb726d48Sopenharmony_ci (S.ts-TR.start_ts) as startNs, 891fb726d48Sopenharmony_ci D.data as type, 892fb726d48Sopenharmony_ci D2.data as appKey, 893fb726d48Sopenharmony_ci S.int_value as value 894fb726d48Sopenharmony_ci from trace_range AS TR,hisys_event_measure as S 895fb726d48Sopenharmony_ci left join data_dict as D on D.id=S.name_id 896fb726d48Sopenharmony_ci left join app_name as APP on APP.id=S.key_id 897fb726d48Sopenharmony_ci left join data_dict as D2 on D2.id=APP.app_key 898fb726d48Sopenharmony_ci where (case when 'SENSOR_STATE'==$eventName then D.data like '%SENSOR%' else D.data = $eventName end) 899fb726d48Sopenharmony_ci and D2.data in ('BRIGHTNESS','STATE','VALUE','LEVEL','VOLUME','OPER_TYPE','VOLUME') 900fb726d48Sopenharmony_ci group by S.serial,APP.app_key,D.data,D2.data;`, 901fb726d48Sopenharmony_ci { $eventName: eventName } 902fb726d48Sopenharmony_ci ); 903fb726d48Sopenharmony_ci 904fb726d48Sopenharmony_ciexport const queryEnergyAppName = (): Promise< 905fb726d48Sopenharmony_ci Array<{ 906fb726d48Sopenharmony_ci string_value: string | null; 907fb726d48Sopenharmony_ci }> 908fb726d48Sopenharmony_ci> => 909fb726d48Sopenharmony_ci query( 910fb726d48Sopenharmony_ci 'queryEnergyAppName', 911fb726d48Sopenharmony_ci ` 912fb726d48Sopenharmony_ci SELECT 913fb726d48Sopenharmony_ci DISTINCT hisys_event_measure.string_value from data_dict 914fb726d48Sopenharmony_ci left join app_name on app_name.app_key=data_dict.id 915fb726d48Sopenharmony_ci left join hisys_event_measure on hisys_event_measure.key_id = app_name.id 916fb726d48Sopenharmony_ci where data_dict.data = "APPNAME"` 917fb726d48Sopenharmony_ci ); 918fb726d48Sopenharmony_ci 919fb726d48Sopenharmony_ciexport const getTabIoCompletionTimesType = (startTime: number, endTime: number): Promise<Array<string>> => 920fb726d48Sopenharmony_ci query( 921fb726d48Sopenharmony_ci 'getTabIoCompletionTimesType', 922fb726d48Sopenharmony_ci ` 923fb726d48Sopenharmony_ci SELECT tier from bio_latency_sample s,trace_range t 924fb726d48Sopenharmony_ci WHERE s.start_ts + s.latency_dur >= $startTime + t.start_ts 925fb726d48Sopenharmony_ci and s.start_ts <= $endTime + t.start_ts group by tier`, 926fb726d48Sopenharmony_ci { $startTime: startTime, $endTime: endTime } 927fb726d48Sopenharmony_ci ); 928fb726d48Sopenharmony_ci 929fb726d48Sopenharmony_ciexport const queryEnergyEventExits = (): //@ts-ignore 930fb726d48Sopenharmony_ciPromise<Array<unknown>> => 931fb726d48Sopenharmony_ci query( 932fb726d48Sopenharmony_ci 'queryEnergyEventExits', 933fb726d48Sopenharmony_ci `select 934fb726d48Sopenharmony_ci event_name 935fb726d48Sopenharmony_ci from stat s 936fb726d48Sopenharmony_ci where s.event_name = 'trace_hisys_event' 937fb726d48Sopenharmony_ci and s.stat_type ='received' and s.count > 0` 938fb726d48Sopenharmony_ci ); 939fb726d48Sopenharmony_ci 940fb726d48Sopenharmony_ciexport const querySysLockDetailsData = (rightNs: number, eventName: string): Promise<Array<SystemDetailsEnergy>> => 941fb726d48Sopenharmony_ci query( 942fb726d48Sopenharmony_ci 'querySysLockDetailsData', 943fb726d48Sopenharmony_ci `SELECT 944fb726d48Sopenharmony_ci ( S.ts - TR.start_ts ) AS ts, 945fb726d48Sopenharmony_ci D.data AS eventName, 946fb726d48Sopenharmony_ci D2.data AS appKey, 947fb726d48Sopenharmony_ci group_concat( ( CASE WHEN S.type == 1 THEN S.string_value ELSE S.int_value END ), ',' ) AS appValue 948fb726d48Sopenharmony_ci FROM 949fb726d48Sopenharmony_ci trace_range AS TR, 950fb726d48Sopenharmony_ci hisys_event_measure AS S 951fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D ON D.id = S.name_id 952fb726d48Sopenharmony_ci LEFT JOIN app_name AS APP ON APP.id = S.key_id 953fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D2 ON D2.id = APP.app_key 954fb726d48Sopenharmony_ci WHERE 955fb726d48Sopenharmony_ci D.data in ($eventName) 956fb726d48Sopenharmony_ci AND 957fb726d48Sopenharmony_ci D2.data in ('UID', 'TYPE', 'WORKID', 'NAME', 'INTERVAL', 'TAG', 'STATE', 'STACK', 'APPNAME', 958fb726d48Sopenharmony_ci 'MESSAGE', 'PID', 'LOG_LEVEL') 959fb726d48Sopenharmony_ci AND 960fb726d48Sopenharmony_ci (S.ts - TR.start_ts) <= $rightNS 961fb726d48Sopenharmony_ci GROUP BY 962fb726d48Sopenharmony_ci S.serial, APP.app_key, D.data, D2.data;`, 963fb726d48Sopenharmony_ci { $rightNS: rightNs, $eventName: eventName } 964fb726d48Sopenharmony_ci ); 965fb726d48Sopenharmony_ci 966fb726d48Sopenharmony_ciexport const queryStateInitValue = (eventName: string, keyName: string): Promise<Array<EnergyStateStruct>> => 967fb726d48Sopenharmony_ci query( 968fb726d48Sopenharmony_ci 'queryStateInitValue', 969fb726d48Sopenharmony_ci `select 970fb726d48Sopenharmony_ci 0 as startNs, 971fb726d48Sopenharmony_ci $eventName as type, 972fb726d48Sopenharmony_ci '' as appKey, 973fb726d48Sopenharmony_ci (case $keyName 974fb726d48Sopenharmony_ci when 'brightness' then device_state.brightness 975fb726d48Sopenharmony_ci when 'wifi' then device_state.wifi 976fb726d48Sopenharmony_ci when 'bt_state' then device_state.bt_state 977fb726d48Sopenharmony_ci when 'location' then device_state.location 978fb726d48Sopenharmony_ci else 0 end) as value 979fb726d48Sopenharmony_ci from device_state;`, 980fb726d48Sopenharmony_ci { $eventName: eventName, $keyName: keyName } 981fb726d48Sopenharmony_ci ); 982fb726d48Sopenharmony_ci 983fb726d48Sopenharmony_ciexport const querySysLocationDetailsData = (rightNs: number, eventName: string): Promise<Array<SystemDetailsEnergy>> => 984fb726d48Sopenharmony_ci query( 985fb726d48Sopenharmony_ci 'querySysLocationDetailsData', 986fb726d48Sopenharmony_ci `SELECT 987fb726d48Sopenharmony_ci ( S.ts - TR.start_ts ) AS ts, 988fb726d48Sopenharmony_ci D.data AS eventName, 989fb726d48Sopenharmony_ci D2.data AS appKey, 990fb726d48Sopenharmony_ci group_concat( ( CASE WHEN S.type == 1 THEN S.string_value ELSE S.int_value END ), ',' ) AS appValue 991fb726d48Sopenharmony_ci FROM 992fb726d48Sopenharmony_ci trace_range AS TR, 993fb726d48Sopenharmony_ci hisys_event_measure AS S 994fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D ON D.id = S.name_id 995fb726d48Sopenharmony_ci LEFT JOIN app_name AS APP ON APP.id = S.key_id 996fb726d48Sopenharmony_ci LEFT JOIN data_dict AS D2 ON D2.id = APP.app_key 997fb726d48Sopenharmony_ci WHERE 998fb726d48Sopenharmony_ci D.data in ($eventName) 999fb726d48Sopenharmony_ci and 1000fb726d48Sopenharmony_ci D2.data in ('UID', 'TYPE', 'WORKID', 'NAME', 'INTERVAL', 'TAG', 'STATE', 'STACK', 1001fb726d48Sopenharmony_ci 'APPNAME', 'MESSAGE', 'PID', 'LOG_LEVEL') 1002fb726d48Sopenharmony_ci and (S.ts - TR.start_ts) <= $rightNS 1003fb726d48Sopenharmony_ci GROUP BY 1004fb726d48Sopenharmony_ci S.serial, 1005fb726d48Sopenharmony_ci APP.app_key, 1006fb726d48Sopenharmony_ci D.data, 1007fb726d48Sopenharmony_ci D2.data;`, 1008fb726d48Sopenharmony_ci { $rightNS: rightNs, $eventName: eventName } 1009fb726d48Sopenharmony_ci ); 1010fb726d48Sopenharmony_ciexport const queryConfigEnergyAppName = (): Promise< 1011fb726d48Sopenharmony_ci Array<{ 1012fb726d48Sopenharmony_ci process_name: string; 1013fb726d48Sopenharmony_ci }> 1014fb726d48Sopenharmony_ci> => 1015fb726d48Sopenharmony_ci query( 1016fb726d48Sopenharmony_ci 'queryConfigEnergyAppName', 1017fb726d48Sopenharmony_ci ` 1018fb726d48Sopenharmony_ci SELECT value from trace_config where trace_source = 'hisys_event' and key = 'process_name'` 1019fb726d48Sopenharmony_ci ); 1020fb726d48Sopenharmony_ci 1021fb726d48Sopenharmony_ciexport const queryAllExpectedData = (): //@ts-ignore 1022fb726d48Sopenharmony_ciPromise<Array<unknown>> => 1023fb726d48Sopenharmony_ci query( 1024fb726d48Sopenharmony_ci 'queryAllExpectedData', 1025fb726d48Sopenharmony_ci ` 1026fb726d48Sopenharmony_ci SELECT 1027fb726d48Sopenharmony_ci a.id, 1028fb726d48Sopenharmony_ci (a.ts - TR.start_ts) AS ts, 1029fb726d48Sopenharmony_ci a.vsync as name, 1030fb726d48Sopenharmony_ci a.type, 1031fb726d48Sopenharmony_ci a.dur, 1032fb726d48Sopenharmony_ci p.pid, 1033fb726d48Sopenharmony_ci p.name as cmdline 1034fb726d48Sopenharmony_ci FROM frame_slice AS a, trace_range AS TR 1035fb726d48Sopenharmony_ci LEFT JOIN process AS p ON a.ipid = p.ipid 1036fb726d48Sopenharmony_ci WHERE a.type = 1 1037fb726d48Sopenharmony_ci and (a.flag <> 2 or a.flag is null) 1038fb726d48Sopenharmony_ci ORDER BY a.ipid,ts;` 1039fb726d48Sopenharmony_ci ); 1040fb726d48Sopenharmony_ci 1041fb726d48Sopenharmony_ciexport const queryFlowsData = ( 1042fb726d48Sopenharmony_ci src_slice: Array<string> 1043fb726d48Sopenharmony_ci): //@ts-ignore 1044fb726d48Sopenharmony_ciPromise<Array<unknown>> => 1045fb726d48Sopenharmony_ci query( 1046fb726d48Sopenharmony_ci 'queryFlowsData', 1047fb726d48Sopenharmony_ci ` 1048fb726d48Sopenharmony_ci SELECT fs.vsync AS name, 1049fb726d48Sopenharmony_ci p.pid, 1050fb726d48Sopenharmony_ci p.name AS cmdline, 1051fb726d48Sopenharmony_ci fs.type 1052fb726d48Sopenharmony_ci FROM frame_slice AS fs 1053fb726d48Sopenharmony_ci LEFT JOIN process AS p ON fs.ipid = p.ipid 1054fb726d48Sopenharmony_ci WHERE fs.type = 0 1055fb726d48Sopenharmony_ci AND fs.id IN (${src_slice.join(',')});` 1056fb726d48Sopenharmony_ci ); 1057fb726d48Sopenharmony_ci 1058fb726d48Sopenharmony_ciexport const queryPrecedingData = ( 1059fb726d48Sopenharmony_ci dst_slice: string 1060fb726d48Sopenharmony_ci): //@ts-ignore 1061fb726d48Sopenharmony_ciPromise<Array<unknown>> => 1062fb726d48Sopenharmony_ci query( 1063fb726d48Sopenharmony_ci 'queryFlowsData', 1064fb726d48Sopenharmony_ci ` 1065fb726d48Sopenharmony_ci SELECT a.vsync AS name, 1066fb726d48Sopenharmony_ci p.pid, 1067fb726d48Sopenharmony_ci p.name AS cmdline, 1068fb726d48Sopenharmony_ci a.type 1069fb726d48Sopenharmony_ci FROM frame_slice AS a 1070fb726d48Sopenharmony_ci LEFT JOIN process AS p ON a.ipid = p.ipid 1071fb726d48Sopenharmony_ci WHERE a.type = 0 1072fb726d48Sopenharmony_ci AND a.id = $dst_slice;`, 1073fb726d48Sopenharmony_ci { $dst_slice: dst_slice } 1074fb726d48Sopenharmony_ci ); 1075fb726d48Sopenharmony_ci 1076fb726d48Sopenharmony_ciexport const queryFrameTimeData = (): //@ts-ignore 1077fb726d48Sopenharmony_ciPromise<Array<unknown>> => 1078fb726d48Sopenharmony_ci query( 1079fb726d48Sopenharmony_ci 'queryFrameTimeData', 1080fb726d48Sopenharmony_ci ` 1081fb726d48Sopenharmony_ci SELECT DISTINCT p.pid 1082fb726d48Sopenharmony_ci FROM frame_slice AS a 1083fb726d48Sopenharmony_ci LEFT JOIN process AS p 1084fb726d48Sopenharmony_ci ON a.ipid = p.ipid;` 1085fb726d48Sopenharmony_ci ); 1086fb726d48Sopenharmony_ci 1087fb726d48Sopenharmony_ciexport const queryAllSnapshotNames = (): Promise<Array<FileInfo>> => 1088fb726d48Sopenharmony_ci query( 1089fb726d48Sopenharmony_ci 'queryAllSnapshotNames', 1090fb726d48Sopenharmony_ci `SELECT f.id, 1091fb726d48Sopenharmony_ci f.file_name AS name 1092fb726d48Sopenharmony_ci FROM 1093fb726d48Sopenharmony_ci js_heap_files f, 1094fb726d48Sopenharmony_ci trace_range t 1095fb726d48Sopenharmony_ci WHERE 1096fb726d48Sopenharmony_ci ( t.end_ts >= f.end_time AND f.file_name != 'Timeline' ) 1097fb726d48Sopenharmony_ci OR f.file_name = 'Timeline'` 1098fb726d48Sopenharmony_ci ); 1099fb726d48Sopenharmony_ciexport const queryHeapFile = (): Promise<Array<FileInfo>> => 1100fb726d48Sopenharmony_ci query( 1101fb726d48Sopenharmony_ci 'queryHeapFile', 1102fb726d48Sopenharmony_ci `SELECT f.id, 1103fb726d48Sopenharmony_ci f.file_name AS name, 1104fb726d48Sopenharmony_ci f.start_time - t.start_ts AS startTs, 1105fb726d48Sopenharmony_ci f.end_time - t.start_ts AS endTs, 1106fb726d48Sopenharmony_ci f.self_size AS size, 1107fb726d48Sopenharmony_ci c.pid 1108fb726d48Sopenharmony_ci FROM 1109fb726d48Sopenharmony_ci js_heap_files f, 1110fb726d48Sopenharmony_ci trace_range t, 1111fb726d48Sopenharmony_ci js_config c 1112fb726d48Sopenharmony_ci WHERE 1113fb726d48Sopenharmony_ci ( t.end_ts >= f.end_time AND f.file_name != 'Timeline' ) 1114fb726d48Sopenharmony_ci OR f.file_name = 'Timeline'` 1115fb726d48Sopenharmony_ci ); 1116fb726d48Sopenharmony_ci 1117fb726d48Sopenharmony_ciexport const queryHeapInfo = ( 1118fb726d48Sopenharmony_ci fileId: number 1119fb726d48Sopenharmony_ci): //@ts-ignore 1120fb726d48Sopenharmony_ciPromise<Array<unknown>> => 1121fb726d48Sopenharmony_ci query( 1122fb726d48Sopenharmony_ci 'queryHeapInfo', 1123fb726d48Sopenharmony_ci `SELECT file_id as fileId, key, type, int_value as intValue, str_value as strValue 1124fb726d48Sopenharmony_ci FROM js_heap_info WHERE file_id = ${fileId}` 1125fb726d48Sopenharmony_ci ); 1126fb726d48Sopenharmony_ci 1127fb726d48Sopenharmony_ciexport const queryHeapNode = (fileId: number): Promise<Array<HeapNode>> => 1128fb726d48Sopenharmony_ci query( 1129fb726d48Sopenharmony_ci 'queryHeapNode', 1130fb726d48Sopenharmony_ci `SELECT 1131fb726d48Sopenharmony_ci node_index as nodeIndex, 1132fb726d48Sopenharmony_ci type, 1133fb726d48Sopenharmony_ci name as nameIdx, 1134fb726d48Sopenharmony_ci id, 1135fb726d48Sopenharmony_ci self_size as selfSize, 1136fb726d48Sopenharmony_ci edge_count as edgeCount, 1137fb726d48Sopenharmony_ci trace_node_id as traceNodeId, 1138fb726d48Sopenharmony_ci detachedness 1139fb726d48Sopenharmony_ci FROM js_heap_nodes WHERE file_id = ${fileId}` 1140fb726d48Sopenharmony_ci ); 1141fb726d48Sopenharmony_ci 1142fb726d48Sopenharmony_ciexport const queryHeapEdge = (fileId: number): Promise<Array<HeapEdge>> => 1143fb726d48Sopenharmony_ci query( 1144fb726d48Sopenharmony_ci 'queryHeapEdge', 1145fb726d48Sopenharmony_ci `SELECT 1146fb726d48Sopenharmony_ci edge_index as edgeIndex, 1147fb726d48Sopenharmony_ci type, 1148fb726d48Sopenharmony_ci name_or_index as nameOrIndex, 1149fb726d48Sopenharmony_ci to_node as nodeId, 1150fb726d48Sopenharmony_ci from_node_id as fromNodeId, 1151fb726d48Sopenharmony_ci to_node_id as toNodeId 1152fb726d48Sopenharmony_ci FROM js_heap_edges WHERE file_id = ${fileId}` 1153fb726d48Sopenharmony_ci ); 1154fb726d48Sopenharmony_ciexport const queryHeapSample = (fileId: number): Promise<Array<HeapSample>> => 1155fb726d48Sopenharmony_ci query( 1156fb726d48Sopenharmony_ci 'queryHeapSample', 1157fb726d48Sopenharmony_ci `SELECT timestamp_us as timestamp , last_assigned_id as lastAssignedId, 0 as size 1158fb726d48Sopenharmony_ci FROM js_heap_sample WHERE file_id = ${fileId}` 1159fb726d48Sopenharmony_ci ); 1160fb726d48Sopenharmony_ci 1161fb726d48Sopenharmony_ciexport const queryHeapLocation = (fileId: number): Promise<Array<HeapLocation>> => 1162fb726d48Sopenharmony_ci query( 1163fb726d48Sopenharmony_ci 'queryHeapLocation', 1164fb726d48Sopenharmony_ci `SELECT object_index as objectIndex,script_id as scriptId ,column 1165fb726d48Sopenharmony_ci FROM js_heap_location WHERE file_id = ${fileId}` 1166fb726d48Sopenharmony_ci ); 1167fb726d48Sopenharmony_ci 1168fb726d48Sopenharmony_ciexport const queryHeapString = ( 1169fb726d48Sopenharmony_ci fileId: number 1170fb726d48Sopenharmony_ci): //@ts-ignore 1171fb726d48Sopenharmony_ciPromise<Array<unknown>> => 1172fb726d48Sopenharmony_ci query( 1173fb726d48Sopenharmony_ci 'queryHeapString', 1174fb726d48Sopenharmony_ci `SELECT string 1175fb726d48Sopenharmony_ci FROM js_heap_string WHERE file_id = ${fileId}` 1176fb726d48Sopenharmony_ci ); 1177fb726d48Sopenharmony_ciexport const queryTraceRange = (): Promise<Array<unknown>> => 1178fb726d48Sopenharmony_ci query( 1179fb726d48Sopenharmony_ci 'queryTraceRange', 1180fb726d48Sopenharmony_ci `SELECT 1181fb726d48Sopenharmony_ci t.start_ts as startTs, 1182fb726d48Sopenharmony_ci t.end_ts as endTs 1183fb726d48Sopenharmony_ci FROM trace_range t` 1184fb726d48Sopenharmony_ci ); 1185fb726d48Sopenharmony_ci 1186fb726d48Sopenharmony_ciexport const queryBySelectAllocationOrReturn = ( 1187fb726d48Sopenharmony_ci executeId: string, 1188fb726d48Sopenharmony_ci itid: number 1189fb726d48Sopenharmony_ci): Promise< 1190fb726d48Sopenharmony_ci Array<{ 1191fb726d48Sopenharmony_ci tid: number; 1192fb726d48Sopenharmony_ci allocation_task_row: number; 1193fb726d48Sopenharmony_ci execute_task_row: number; 1194fb726d48Sopenharmony_ci return_task_row: number; 1195fb726d48Sopenharmony_ci priority: number; 1196fb726d48Sopenharmony_ci }> 1197fb726d48Sopenharmony_ci> => { 1198fb726d48Sopenharmony_ci let sqlStr = `SELECT thread.tid, 1199fb726d48Sopenharmony_ci task_pool.allocation_task_row, 1200fb726d48Sopenharmony_ci task_pool.execute_task_row, 1201fb726d48Sopenharmony_ci task_pool.return_task_row, 1202fb726d48Sopenharmony_ci task_pool.priority 1203fb726d48Sopenharmony_ci FROM task_pool 1204fb726d48Sopenharmony_ci LEFT JOIN callstack ON callstack.id = task_pool.execute_task_row 1205fb726d48Sopenharmony_ci LEFT JOIN thread ON thread.id = callstack.callid 1206fb726d48Sopenharmony_ci WHERE task_pool.execute_task_row IS NOT NULL AND task_pool.task_id = $executeId 1207fb726d48Sopenharmony_ci AND task_pool.allocation_itid = $itid; 1208fb726d48Sopenharmony_ci `; 1209fb726d48Sopenharmony_ci return query('queryBySelectAllocationOrReturn', sqlStr, { $executeId: executeId, $itid: itid }); 1210fb726d48Sopenharmony_ci}; 1211fb726d48Sopenharmony_ci 1212fb726d48Sopenharmony_ciexport const queryTaskListByExecuteTaskIds = ( 1213fb726d48Sopenharmony_ci executeTaskIds: Array<number>, 1214fb726d48Sopenharmony_ci ipid: number 1215fb726d48Sopenharmony_ci): Promise<Array<TaskTabStruct>> => { 1216fb726d48Sopenharmony_ci let sqlStr = ` 1217fb726d48Sopenharmony_ci SELECT thread.ipid, 1218fb726d48Sopenharmony_ci task_pool.allocation_task_row AS allocationTaskRow, 1219fb726d48Sopenharmony_ci task_pool.execute_task_row AS executeTaskRow, 1220fb726d48Sopenharmony_ci task_pool.return_task_row AS returnTaskRow, 1221fb726d48Sopenharmony_ci task_pool.task_id AS executeId, 1222fb726d48Sopenharmony_ci task_pool.priority 1223fb726d48Sopenharmony_ci FROM task_pool 1224fb726d48Sopenharmony_ci LEFT JOIN callstack ON callstack.id = task_pool.allocation_task_row 1225fb726d48Sopenharmony_ci LEFT JOIN thread ON thread.id = callstack.callid 1226fb726d48Sopenharmony_ci WHERE task_pool.task_id IN (${executeTaskIds.join(',')}) 1227fb726d48Sopenharmony_ci AND thread.ipid = $ipid 1228fb726d48Sopenharmony_ci AND task_pool.execute_task_row IS NOT NULL; 1229fb726d48Sopenharmony_ci `; 1230fb726d48Sopenharmony_ci return query('queryTaskListByExecuteTaskIds', sqlStr, { $executeTaskIds: executeTaskIds, $ipid: ipid }); 1231fb726d48Sopenharmony_ci}; 1232fb726d48Sopenharmony_ci 1233fb726d48Sopenharmony_ciexport const queryTaskPoolCallStack = (): Promise<Array<{ id: number; ts: number; dur: number; name: string }>> => { 1234fb726d48Sopenharmony_ci let sqlStr = ` 1235fb726d48Sopenharmony_ci select 1236fb726d48Sopenharmony_ci * 1237fb726d48Sopenharmony_ci from callstack where name like 'H:Task%';`; 1238fb726d48Sopenharmony_ci return query('queryTaskPoolCallStack', sqlStr, {}); 1239fb726d48Sopenharmony_ci}; 1240fb726d48Sopenharmony_ci 1241fb726d48Sopenharmony_ciexport const queryTaskPoolTotalNum = (itid: number): Promise<number[]> => 1242fb726d48Sopenharmony_ci query<number>( 1243fb726d48Sopenharmony_ci 'queryTaskPoolTotalNum', 1244fb726d48Sopenharmony_ci `SELECT thread.tid 1245fb726d48Sopenharmony_ci FROM thread 1246fb726d48Sopenharmony_ci LEFT JOIN callstack ON thread.id = callstack.callid 1247fb726d48Sopenharmony_ci WHERE ipid in (SELECT thread.ipid 1248fb726d48Sopenharmony_ci FROM thread 1249fb726d48Sopenharmony_ci WHERE thread.itid = $itid) 1250fb726d48Sopenharmony_ci AND thread.name LIKE '%TaskWork%' 1251fb726d48Sopenharmony_ci GROUP BY thread.tid;`, 1252fb726d48Sopenharmony_ci { $itid: itid } 1253fb726d48Sopenharmony_ci ); 1254fb726d48Sopenharmony_ci 1255fb726d48Sopenharmony_ciexport const queryFrameAnimationData = (): Promise<Array<FrameAnimationStruct>> => 1256fb726d48Sopenharmony_ci query( 1257fb726d48Sopenharmony_ci 'queryFrameAnimationData', 1258fb726d48Sopenharmony_ci `SELECT a.id AS animationId, 1259fb726d48Sopenharmony_ci 'Response delay' as status, 1260fb726d48Sopenharmony_ci (CASE WHEN a.input_time NOT NULL 1261fb726d48Sopenharmony_ci THEN ( a.input_time - R.start_ts ) 1262fb726d48Sopenharmony_ci ELSE ( a.start_point - R.start_ts ) END 1263fb726d48Sopenharmony_ci ) AS startTs, 1264fb726d48Sopenharmony_ci (a.start_point - R.start_ts) AS endTs, 1265fb726d48Sopenharmony_ci 0 AS frameInfo, 1266fb726d48Sopenharmony_ci a.name AS name 1267fb726d48Sopenharmony_ci FROM 1268fb726d48Sopenharmony_ci animation AS a, 1269fb726d48Sopenharmony_ci trace_range AS R 1270fb726d48Sopenharmony_ci UNION 1271fb726d48Sopenharmony_ci SELECT a.id AS animationId, 1272fb726d48Sopenharmony_ci 'Completion delay' as status, 1273fb726d48Sopenharmony_ci (CASE WHEN a.input_time NOT NULL 1274fb726d48Sopenharmony_ci THEN ( a.input_time - R.start_ts ) 1275fb726d48Sopenharmony_ci ELSE ( a.start_point - R.start_ts ) END 1276fb726d48Sopenharmony_ci ) AS startTs, 1277fb726d48Sopenharmony_ci (a.end_point - R.start_ts) AS endTs, 1278fb726d48Sopenharmony_ci a.frame_info AS frameInfo, 1279fb726d48Sopenharmony_ci a.name AS name 1280fb726d48Sopenharmony_ci FROM 1281fb726d48Sopenharmony_ci animation AS a, 1282fb726d48Sopenharmony_ci trace_range AS R 1283fb726d48Sopenharmony_ci ORDER BY 1284fb726d48Sopenharmony_ci endTs;` 1285fb726d48Sopenharmony_ci ); 1286fb726d48Sopenharmony_ci 1287fb726d48Sopenharmony_ciexport const queryAnimationTimeRangeData = (): Promise<Array<FrameAnimationStruct>> => 1288fb726d48Sopenharmony_ci query( 1289fb726d48Sopenharmony_ci 'queryAnimationTimeRangeData', 1290fb726d48Sopenharmony_ci `SELECT 'Response delay' as status, 1291fb726d48Sopenharmony_ci (CASE WHEN a.input_time NOT NULL 1292fb726d48Sopenharmony_ci THEN ( a.input_time - R.start_ts ) 1293fb726d48Sopenharmony_ci ELSE ( a.start_point - R.start_ts ) END 1294fb726d48Sopenharmony_ci ) AS startTs, 1295fb726d48Sopenharmony_ci (a.start_point - R.start_ts) AS endTs 1296fb726d48Sopenharmony_ci FROM 1297fb726d48Sopenharmony_ci animation AS a, 1298fb726d48Sopenharmony_ci trace_range AS R 1299fb726d48Sopenharmony_ci UNION 1300fb726d48Sopenharmony_ci SELECT 'Completion delay' as status, 1301fb726d48Sopenharmony_ci (CASE WHEN a.input_time NOT NULL 1302fb726d48Sopenharmony_ci THEN ( a.input_time - R.start_ts ) 1303fb726d48Sopenharmony_ci ELSE ( a.start_point - R.start_ts ) END 1304fb726d48Sopenharmony_ci ) AS startTs, 1305fb726d48Sopenharmony_ci (a.end_point - R.start_ts) AS endTs 1306fb726d48Sopenharmony_ci FROM 1307fb726d48Sopenharmony_ci animation AS a, 1308fb726d48Sopenharmony_ci trace_range AS R 1309fb726d48Sopenharmony_ci ORDER BY 1310fb726d48Sopenharmony_ci endTs;` 1311fb726d48Sopenharmony_ci ); 1312fb726d48Sopenharmony_ciexport const querySourceTypen = (): Promise<Array<unknown>> => 1313fb726d48Sopenharmony_ci query( 1314fb726d48Sopenharmony_ci 'querySourceTypen', 1315fb726d48Sopenharmony_ci `SELECT 1316fb726d48Sopenharmony_ci value 1317fb726d48Sopenharmony_ci FROM 1318fb726d48Sopenharmony_ci meta 1319fb726d48Sopenharmony_ci where 1320fb726d48Sopenharmony_ci name = 'source_type' 1321fb726d48Sopenharmony_ci ` 1322fb726d48Sopenharmony_ci ); 1323fb726d48Sopenharmony_ci 1324fb726d48Sopenharmony_ciexport const queryFrameDynamicData = (): Promise<FrameDynamicStruct[]> => 1325fb726d48Sopenharmony_ci query( 1326fb726d48Sopenharmony_ci 'queryFrameDynamicData', 1327fb726d48Sopenharmony_ci `SELECT d.id, 1328fb726d48Sopenharmony_ci d.x, 1329fb726d48Sopenharmony_ci d.y, 1330fb726d48Sopenharmony_ci d.width, 1331fb726d48Sopenharmony_ci d.height, 1332fb726d48Sopenharmony_ci d.alpha, 1333fb726d48Sopenharmony_ci d.name AS appName, 1334fb726d48Sopenharmony_ci (d.end_time - R.start_ts) AS ts 1335fb726d48Sopenharmony_ci FROM 1336fb726d48Sopenharmony_ci dynamic_frame AS d, 1337fb726d48Sopenharmony_ci trace_range AS R 1338fb726d48Sopenharmony_ci ORDER BY 1339fb726d48Sopenharmony_ci d.end_time;` 1340fb726d48Sopenharmony_ci ); 1341fb726d48Sopenharmony_ci 1342fb726d48Sopenharmony_ciexport const queryDynamicIdAndNameData = (): Promise<Array<{ id: number; appName: string }>> => 1343fb726d48Sopenharmony_ci query('queryDynamicIdAndNameData', 'SELECT id, name AS appName FROM dynamic_frame;'); 1344fb726d48Sopenharmony_ci 1345fb726d48Sopenharmony_ciexport const queryAnimationIdAndNameData = (): Promise< 1346fb726d48Sopenharmony_ci Array<{ 1347fb726d48Sopenharmony_ci id: number; 1348fb726d48Sopenharmony_ci name: string; 1349fb726d48Sopenharmony_ci info: string; 1350fb726d48Sopenharmony_ci }> 1351fb726d48Sopenharmony_ci> => query('queryAnimationIdAndNameData', 'SELECT id, name, frame_info as info FROM animation;'); 1352fb726d48Sopenharmony_ci 1353fb726d48Sopenharmony_ciexport const queryFrameApp = (): Promise< 1354fb726d48Sopenharmony_ci Array<{ 1355fb726d48Sopenharmony_ci name: string; 1356fb726d48Sopenharmony_ci }> 1357fb726d48Sopenharmony_ci> => 1358fb726d48Sopenharmony_ci query( 1359fb726d48Sopenharmony_ci 'queryFrameApp', 1360fb726d48Sopenharmony_ci `SELECT 1361fb726d48Sopenharmony_ci DISTINCT d.name 1362fb726d48Sopenharmony_ci FROM 1363fb726d48Sopenharmony_ci dynamic_frame AS d, 1364fb726d48Sopenharmony_ci trace_range AS R 1365fb726d48Sopenharmony_ci WHERE 1366fb726d48Sopenharmony_ci d.end_time >= R.start_ts 1367fb726d48Sopenharmony_ci AND 1368fb726d48Sopenharmony_ci d.end_time <= R.end_ts;` 1369fb726d48Sopenharmony_ci ); 1370fb726d48Sopenharmony_ci 1371fb726d48Sopenharmony_ciexport const queryFrameSpacing = (): Promise<Array<FrameSpacingStruct>> => 1372fb726d48Sopenharmony_ci query( 1373fb726d48Sopenharmony_ci 'queryFrameSpacing', 1374fb726d48Sopenharmony_ci `SELECT d.id, 1375fb726d48Sopenharmony_ci d.width AS currentFrameWidth, 1376fb726d48Sopenharmony_ci d.height AS currentFrameHeight, 1377fb726d48Sopenharmony_ci d.name AS nameId, 1378fb726d48Sopenharmony_ci (d.end_time - R.start_ts) AS currentTs, 1379fb726d48Sopenharmony_ci d.x, 1380fb726d48Sopenharmony_ci d.y 1381fb726d48Sopenharmony_ci FROM 1382fb726d48Sopenharmony_ci dynamic_frame AS d, 1383fb726d48Sopenharmony_ci trace_range AS R 1384fb726d48Sopenharmony_ci ORDER BY 1385fb726d48Sopenharmony_ci d.end_time;` 1386fb726d48Sopenharmony_ci ); 1387fb726d48Sopenharmony_ci 1388fb726d48Sopenharmony_ciexport const queryPhysicalData = (): Promise<Array<DeviceStruct>> => 1389fb726d48Sopenharmony_ci query( 1390fb726d48Sopenharmony_ci 'queryPhysicalData', 1391fb726d48Sopenharmony_ci `SELECT physical_width AS physicalWidth, 1392fb726d48Sopenharmony_ci physical_height AS physicalHeight, 1393fb726d48Sopenharmony_ci physical_frame_rate AS physicalFrameRate 1394fb726d48Sopenharmony_ci FROM device_info;` 1395fb726d48Sopenharmony_ci ); 1396fb726d48Sopenharmony_ciexport const getSystemLogsData = (): Promise< 1397fb726d48Sopenharmony_ci Array<{ 1398fb726d48Sopenharmony_ci id: number; 1399fb726d48Sopenharmony_ci ts: number; 1400fb726d48Sopenharmony_ci processName: string; 1401fb726d48Sopenharmony_ci tid: number; 1402fb726d48Sopenharmony_ci level: string; 1403fb726d48Sopenharmony_ci tag: string; 1404fb726d48Sopenharmony_ci message: string; 1405fb726d48Sopenharmony_ci des: number; 1406fb726d48Sopenharmony_ci }> 1407fb726d48Sopenharmony_ci> => 1408fb726d48Sopenharmony_ci query( 1409fb726d48Sopenharmony_ci 'getSystemLogsData', 1410fb726d48Sopenharmony_ci `SELECT ROW_NUMBER() OVER (ORDER BY l.ts) AS processName, 1411fb726d48Sopenharmony_ci l.seq AS id, 1412fb726d48Sopenharmony_ci (l.ts - TR.start_ts) AS ts, 1413fb726d48Sopenharmony_ci l.pid AS indexs, 1414fb726d48Sopenharmony_ci l.tid, 1415fb726d48Sopenharmony_ci l.level, 1416fb726d48Sopenharmony_ci l.tag, 1417fb726d48Sopenharmony_ci l.context AS message, 1418fb726d48Sopenharmony_ci l.origints AS des 1419fb726d48Sopenharmony_ci FROM trace_range AS TR, 1420fb726d48Sopenharmony_ci log AS l 1421fb726d48Sopenharmony_ci ORDER BY ts` 1422fb726d48Sopenharmony_ci ); 1423fb726d48Sopenharmony_ci 1424fb726d48Sopenharmony_ciexport const queryLogData = (): Promise<Array<LogStruct>> => 1425fb726d48Sopenharmony_ci query( 1426fb726d48Sopenharmony_ci 'queryLogData', 1427fb726d48Sopenharmony_ci `SELECT 1428fb726d48Sopenharmony_ci l.ts - tr.start_ts as startNs 1429fb726d48Sopenharmony_ci FROM log AS l, trace_range tr WHERE startNs > 0 LIMIT 1;` 1430fb726d48Sopenharmony_ci ); 1431fb726d48Sopenharmony_ci 1432fb726d48Sopenharmony_ciexport const queryMetric = (metricName: string): Promise<Array<string>> => 1433fb726d48Sopenharmony_ci query('queryMetric', metricName, '', { action: 'exec-metric' }); 1434fb726d48Sopenharmony_ci 1435fb726d48Sopenharmony_ciexport const queryExistFtrace = (): Promise<Array<number>> => 1436fb726d48Sopenharmony_ci query( 1437fb726d48Sopenharmony_ci 'queryExistFtrace', 1438fb726d48Sopenharmony_ci `select 1 from thread_state 1439fb726d48Sopenharmony_ci UNION 1440fb726d48Sopenharmony_ci select 1 from args;` 1441fb726d48Sopenharmony_ci ); 1442fb726d48Sopenharmony_ci 1443fb726d48Sopenharmony_ciexport const queryTraceType = (): Promise< 1444fb726d48Sopenharmony_ci Array<{ 1445fb726d48Sopenharmony_ci value: string; 1446fb726d48Sopenharmony_ci }> 1447fb726d48Sopenharmony_ci> => 1448fb726d48Sopenharmony_ci query( 1449fb726d48Sopenharmony_ci 'queryTraceType', 1450fb726d48Sopenharmony_ci `SELECT m.value 1451fb726d48Sopenharmony_ci FROM 1452fb726d48Sopenharmony_ci meta AS m 1453fb726d48Sopenharmony_ci WHERE 1454fb726d48Sopenharmony_ci m.name = 'source_type';` 1455fb726d48Sopenharmony_ci ); 1456fb726d48Sopenharmony_ci 1457fb726d48Sopenharmony_ciexport const queryLogAllData = (oneDayTime: number, leftNs: number, rightNs: number): Promise<Array<LogStruct>> => 1458fb726d48Sopenharmony_ci query( 1459fb726d48Sopenharmony_ci 'queryLogAllData', 1460fb726d48Sopenharmony_ci `SELECT l.seq AS id, 1461fb726d48Sopenharmony_ci CASE 1462fb726d48Sopenharmony_ci WHEN l.ts < ${oneDayTime} THEN 0 1463fb726d48Sopenharmony_ci ELSE (l.ts - TR.start_ts) 1464fb726d48Sopenharmony_ci END AS startTs, 1465fb726d48Sopenharmony_ci CASE l.level 1466fb726d48Sopenharmony_ci WHEN 'D' THEN 'Debug' 1467fb726d48Sopenharmony_ci WHEN 'I' THEN 'Info' 1468fb726d48Sopenharmony_ci WHEN 'W' THEN 'Warn' 1469fb726d48Sopenharmony_ci WHEN 'E' THEN 'Error' 1470fb726d48Sopenharmony_ci WHEN 'F' THEN 'Fatal' 1471fb726d48Sopenharmony_ci END AS level, 1472fb726d48Sopenharmony_ci l.tag AS tag, 1473fb726d48Sopenharmony_ci l.context AS context, 1474fb726d48Sopenharmony_ci (strftime( '%m-%d %H:%M:%S', l.origints / 1000000000, 'unixepoch', 'localtime' ) || 1475fb726d48Sopenharmony_ci '.' || printf('%03d', (l.origints / 1000000) % 1000)) AS originTime, 1476fb726d48Sopenharmony_ci COALESCE(p.name, 'Process ' || l.pid) AS processName 1477fb726d48Sopenharmony_ci FROM 1478fb726d48Sopenharmony_ci log AS l 1479fb726d48Sopenharmony_ci LEFT JOIN trace_range AS TR ON l.ts >= TR.start_ts 1480fb726d48Sopenharmony_ci LEFT JOIN process AS p ON p.pid = l.pid 1481fb726d48Sopenharmony_ci WHERE 1482fb726d48Sopenharmony_ci startTs >= ${Math.floor(leftNs)} 1483fb726d48Sopenharmony_ci AND startTs <= ${Math.floor(rightNs)} 1484fb726d48Sopenharmony_ci ORDER BY 1485fb726d48Sopenharmony_ci l.ts;`, 1486fb726d48Sopenharmony_ci { $oneDayTime: oneDayTime } 1487fb726d48Sopenharmony_ci ); 1488fb726d48Sopenharmony_ci 1489fb726d48Sopenharmony_ciexport const queryFpsSourceList = ( 1490fb726d48Sopenharmony_ci inputTime: number, 1491fb726d48Sopenharmony_ci endTime: number, 1492fb726d48Sopenharmony_ci name: string 1493fb726d48Sopenharmony_ci): Promise< 1494fb726d48Sopenharmony_ci Array<{ 1495fb726d48Sopenharmony_ci name: string; 1496fb726d48Sopenharmony_ci ts: number; 1497fb726d48Sopenharmony_ci dur: number; 1498fb726d48Sopenharmony_ci pid: number; 1499fb726d48Sopenharmony_ci tid: number; 1500fb726d48Sopenharmony_ci depth: number; 1501fb726d48Sopenharmony_ci }> 1502fb726d48Sopenharmony_ci> => 1503fb726d48Sopenharmony_ci query( 1504fb726d48Sopenharmony_ci 'queryFpsSourceList', 1505fb726d48Sopenharmony_ci `SELECT t.tid, 1506fb726d48Sopenharmony_ci c.dur, 1507fb726d48Sopenharmony_ci c.depth, 1508fb726d48Sopenharmony_ci c.ts, 1509fb726d48Sopenharmony_ci c.name 1510fb726d48Sopenharmony_ci FROM 1511fb726d48Sopenharmony_ci callstack c 1512fb726d48Sopenharmony_ci INNER JOIN thread t ON c.callid = t.itid 1513fb726d48Sopenharmony_ci WHERE 1514fb726d48Sopenharmony_ci c.name LIKE '%${name}%' 1515fb726d48Sopenharmony_ci AND 1516fb726d48Sopenharmony_ci c.ts BETWEEN ${inputTime} and ${endTime} 1517fb726d48Sopenharmony_ci AND 1518fb726d48Sopenharmony_ci t.name = 'render_service';` 1519fb726d48Sopenharmony_ci ); 1520fb726d48Sopenharmony_ci 1521fb726d48Sopenharmony_ciexport const queryStateFreqList = ( 1522fb726d48Sopenharmony_ci startTime: number, 1523fb726d48Sopenharmony_ci endTime: number, 1524fb726d48Sopenharmony_ci cpu: number 1525fb726d48Sopenharmony_ci): //@ts-ignore 1526fb726d48Sopenharmony_ciPromise<Array<unknown>> => { 1527fb726d48Sopenharmony_ci let sql = `select c.value, 1528fb726d48Sopenharmony_ci c.ts, 1529fb726d48Sopenharmony_ci c.dur, 1530fb726d48Sopenharmony_ci c.ts - r.start_ts AS startTime, 1531fb726d48Sopenharmony_ci c.ts - r.start_ts + c.dur AS endTime 1532fb726d48Sopenharmony_ci from 1533fb726d48Sopenharmony_ci measure c, trace_range r 1534fb726d48Sopenharmony_ci inner join 1535fb726d48Sopenharmony_ci cpu_measure_filter t 1536fb726d48Sopenharmony_ci on 1537fb726d48Sopenharmony_ci c.filter_id = t.id 1538fb726d48Sopenharmony_ci where 1539fb726d48Sopenharmony_ci (name = 'cpufreq' or name='cpu_frequency') 1540fb726d48Sopenharmony_ci and 1541fb726d48Sopenharmony_ci t.cpu = $cpu 1542fb726d48Sopenharmony_ci and 1543fb726d48Sopenharmony_ci (((startTime < $startTime) and (endtime > $endTime)) 1544fb726d48Sopenharmony_ci or ((startTime < $startTime) and ($startTime < endtime and endtime < $endTime)) 1545fb726d48Sopenharmony_ci or ((startTime > $startTime) and ( $startTime < endtime and endtime < $endTime)) 1546fb726d48Sopenharmony_ci or ((startTime > $startTime and startTime < $endTime) and (endtime > $endTime)))`; 1547fb726d48Sopenharmony_ci return query('queryBinderByArgsId', sql, { 1548fb726d48Sopenharmony_ci $endTime: endTime, 1549fb726d48Sopenharmony_ci $startTime: startTime, 1550fb726d48Sopenharmony_ci $cpu: cpu, 1551fb726d48Sopenharmony_ci }); 1552fb726d48Sopenharmony_ci}; 1553fb726d48Sopenharmony_ciexport const queryPerfOutputData = (): Promise<Array<unknown>> => 1554fb726d48Sopenharmony_ci query( 1555fb726d48Sopenharmony_ci 'queryPerfOutputData', 1556fb726d48Sopenharmony_ci `SELECT 1557fb726d48Sopenharmony_ci name, 1558fb726d48Sopenharmony_ci ts 1559fb726d48Sopenharmony_ci FROM callstack where name like '%PERFORMANCE_DATA%'` 1560fb726d48Sopenharmony_ci ); 1561fb726d48Sopenharmony_ci 1562fb726d48Sopenharmony_ciexport const queryPerfToolsDur = (): Promise<Array<unknown>> => 1563fb726d48Sopenharmony_ci query( 1564fb726d48Sopenharmony_ci 'queryPerfToolsDur', 1565fb726d48Sopenharmony_ci `SELECT 1566fb726d48Sopenharmony_ci name, 1567fb726d48Sopenharmony_ci ts, 1568fb726d48Sopenharmony_ci dur 1569fb726d48Sopenharmony_ci FROM callstack where name = 'H:GRAB'` 1570fb726d48Sopenharmony_ci ); 1571