1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include "AppStartReporter.h"
16 #include "hisysevent.h"
17 #include "hiview_logger.h"
18 
19 namespace OHOS {
20 namespace HiviewDFX {
21 DEFINE_LOG_LABEL(0xD002D66, "Hiview-XPerformance");
22 
23 static constexpr char EXEC_DOMAIN[] = "PERFORMANCE";
24 using OHOS::HiviewDFX::HiSysEvent;
25 
ReportNormal(const AppStartReportData& data)26 void AppStartReporter::ReportNormal(const AppStartReportData& data)
27 {
28     HIVIEW_LOGD("AppStartReporter::ReportNormal");
29     HiSysEventWrite(EXEC_DOMAIN, "APP_START", HiSysEvent::EventType::BEHAVIOR,
30                     "APP_PID", data.appPid,
31                     "VERSION_CODE", data.versionCode,
32                     "VERSION_NAME", data.versionName,
33                     "PROCESS_NAME", data.processName,
34                     "BUNDLE_NAME", data.bundleName,
35                     "ABILITY_NAME", data.abilityName,
36                     "PAGE_URL", data.pageUrl,
37                     "SCENE_ID", data.sceneId,
38                     "START_TYPE", data.startType,
39                     "SOURCE_TYPE", data.sourceType,
40                     "INPUT_TIME", data.inputTime,
41                     "RESPONSE_LATENCY", data.responseLatency,
42                     "LAUN_TO_START_ABILITY_DUR", data.launcherToAmsStartAbilityDur,
43                     "STARTABILITY_PROCESSSTART_DUR", data.amsStartAbilityToProcessStartDuration,
44                     "PROCESSSTART_TO_APPATTACH_DUR", data.amsProcessStartToAppAttachDuration,
45                     "APPATTACH_TO_APPFOREGROUND_DUR", data.amsAppAttachToAppForegroundDuration,
46                     "STARTABILITY_APPFOREGROUND_DUR", data.amsStartAbilityToAppForegroundDuration,
47                     "APPFOREGR_ABILITYONFOREGR_DUR", data.amsAppFgToAbilityFgDur,
48                     "ABILITYONFOREG_STARTWINDOW_DUR", data.amsAbilityFgToWmsStartWinDur,
49                     "DRAWN_LATENCY", data.drawnLatency,
50                     "FIRST_FRAEM_DRAWN_LATENCY", data.firstFrameDrawnLatency,
51                     "ANIMATION_LATENCY", data.animationLatency,
52                     "E2E_LATENCY", data.e2eLatency);
53 }
54 
ReportFault(const AppStartReportData& data)55 void AppStartReporter::ReportFault(const AppStartReportData& data)
56 {
57     HIVIEW_LOGD("AppStartReporter::ReportFault");
58     HiSysEventWrite(EXEC_DOMAIN, "APP_START_SLOW", HiSysEvent::EventType::FAULT,
59                     "APP_PID", data.appPid,
60                     "VERSION_CODE", data.versionCode,
61                     "VERSION_NAME", data.versionName,
62                     "PROCESS_NAME", data.processName,
63                     "BUNDLE_NAME", data.bundleName,
64                     "ABILITY_NAME", data.abilityName,
65                     "PAGE_URL", data.pageUrl,
66                     "SCENE_ID", data.sceneId,
67                     "START_TYPE", data.startType,
68                     "SOURCE_TYPE", data.sourceType,
69                     "INPUT_TIME", data.inputTime,
70                     "HAPPEN_TIME", data.happenTime,
71                     "RESPONSE_LATENCY", data.responseLatency,
72                     "LAUN_TO_START_ABILITY_DUR", data.launcherToAmsStartAbilityDur,
73                     "STARTABILITY_PROCESSSTART_DUR", data.amsStartAbilityToProcessStartDuration,
74                     "PROCESSSTART_TO_APPATTACH_DUR", data.amsProcessStartToAppAttachDuration,
75                     "APPATTACH_TO_APPFOREGROUND_DUR", data.amsAppAttachToAppForegroundDuration,
76                     "STARTABILITY_APPFOREGROUND_DUR", data.amsStartAbilityToAppForegroundDuration,
77                     "APPFOREGR_ABILITYONFOREGR_DUR", data.amsAppFgToAbilityFgDur,
78                     "ABILITYONFOREG_STARTWINDOW_DUR", data.amsAbilityFgToWmsStartWinDur,
79                     "DRAWN_LATENCY", data.drawnLatency,
80                     "FIRST_FRAEM_DRAWN_LATENCY", data.firstFrameDrawnLatency,
81                     "ANIMATION_LATENCY", data.animationLatency,
82                     "E2E_LATENCY", data.e2eLatency,
83                     "TRACE_NAME", data.traceFileName,
84                     "INFO_FILE", data.infoFileName);
85 }
86 } // HiviewDFX
87 } // OHOS