|
1 #################### |
|
2 Helium Build Metrics |
|
3 #################### |
|
4 |
|
5 .. index:: |
|
6 module: Helium Build Metrics |
|
7 |
|
8 |
|
9 .. contents:: |
|
10 |
|
11 Introduction |
|
12 ============ |
|
13 |
|
14 This describes the types of build and release metrics that can be collected using Helium and a Diamonds installation and how they can be collected. |
|
15 |
|
16 .. index:: |
|
17 single: Diamonds |
|
18 |
|
19 Diamonds Link for builds: |
|
20 ========================= |
|
21 Diamonds Homepage: <http://diamonds.nmp.nokia.com/diamonds> |
|
22 |
|
23 |
|
24 Helium configuration |
|
25 ==================== |
|
26 To enable logging to diamonds from Helium one needs to ensure that: |
|
27 |
|
28 * The properties *diamonds.host* and *diamonds.port* are set correctly. |
|
29 * By default they are taken from *helium/tools/common/companyproperties.ant.xml*, |
|
30 but can be overridden by using: |
|
31 |
|
32 * **Command line** |
|
33 |
|
34 For example, if the Diamonds server IP address changed to **new.diamonds.server:newport** then you would use: |
|
35 |
|
36 * *hlm.bat -Ddiamonds.host=new.diamonds.server -Ddiamonds.port=newport* |
|
37 |
|
38 * **ANT team file** |
|
39 |
|
40 For example, if the Diamonds server IP address changed to **new.diamonds.server:newport** then you would put the following lines in your <team>.ant.xml: |
|
41 |
|
42 * *<property name="diamonds.host" value="new.diamonds.server"/>* |
|
43 * *<property name="diamonds.port" value="newport"/>* |
|
44 |
|
45 * If you define the property skip.diamonds to 'true' diamonds is disabled. |
|
46 |
|
47 |
|
48 .. index:: |
|
49 single: Diamonds server configuration |
|
50 |
|
51 Diamonds server configuration |
|
52 ============================= |
|
53 |
|
54 Config File: helium/config/diamonds_config.xml.ftl |
|
55 |
|
56 |
|
57 Properties need to be defined for successful logging: |
|
58 ----------------------------------------------------- |
|
59 |
|
60 ========================== ============ |
|
61 Property name Description |
|
62 ========================== ============ |
|
63 diamonds.host Diamonds server address |
|
64 diamonds.port Server port number |
|
65 diamonds.path Builds path in diamonds server |
|
66 build.family Category of product |
|
67 time-stamp Time stamp format |
|
68 stages Start and end target of a stages with logical stage name |
|
69 sysdef.configurations.list System definition name list to log component faults |
|
70 build.name Name of product |
|
71 release.label Name of release |
|
72 publish Set this property to publish to network |
|
73 publish.dir Published build environment location |
|
74 release.grace.dir Published location |
|
75 disable.analysis.tool Set this property to disable API Usage Metrics |
|
76 diamonds.build.tags Set this property to send custom build tag(s) to Diamonds |
|
77 ========================== ============ |
|
78 |
|
79 |
|
80 .. index:: |
|
81 single: Metrics |
|
82 |
|
83 Metrics |
|
84 ======= |
|
85 |
|
86 |
|
87 Metrics name: Build duration |
|
88 ---------------------------- |
|
89 |
|
90 Description |
|
91 ~~~~~~~~~~~~ |
|
92 Build duration in hours as a function of time. |
|
93 |
|
94 Collection method |
|
95 ~~~~~~~~~~~~~~~~~~~ |
|
96 The started time and finished time are uploaded to diamonds automatically from Helium. |
|
97 |
|
98 Location in Diamonds |
|
99 ~~~~~~~~~~~~~~~~~~~~~~ |
|
100 In Diamonds, Builds->Summary. |
|
101 |
|
102 For categorization by product programs, Build->Click "category" hyperlink. For |
|
103 categorization by build accelerators, Build->Other->Click "Build system" hyperlink. |
|
104 |
|
105 |
|
106 RVCT compiler warnings |
|
107 ---------------------- |
|
108 |
|
109 Description |
|
110 ~~~~~~~~~~~ |
|
111 Number of build warnings in SW build - RVCT compiler warnings to tell about the quality of the software. |
|
112 |
|
113 Collection Method |
|
114 ~~~~~~~~~~~~~~~~~ |
|
115 Number of RVCT bad warnings, warnings and errors are send to diamond aumatically from Helium after each build. |
|
116 |
|
117 Location in Diamonds |
|
118 ~~~~~~~~~~~~~~~~~~~~~~ |
|
119 In Diamonds, Builds->Summary->Compilation error summary. |
|
120 |
|
121 |
|
122 Metrics name: "number of object files" and "number of generated files" |
|
123 ---------------------------------------------------------------------- |
|
124 |
|
125 Description |
|
126 ~~~~~~~~~~~~ |
|
127 Number of object files and generated files for a build |
|
128 |
|
129 Collection method |
|
130 ~~~~~~~~~~~~~~~~~~~ |
|
131 Necessary data are collected from build information automatically |
|
132 |
|
133 Based on helium/config/diamonds_config.xml.ftl cofiguration, Helium automatically sends the start and end time of a stage to diamonds. |
|
134 |
|
135 |
|
136 Location in Diamonds |
|
137 ~~~~~~~~~~~~~~~~~~~~~~ |
|
138 In Diamonds, Builds->Others->Object files & Generated files. |
|
139 |
|
140 |
|
141 Metrics name: Build stage duration |
|
142 ---------------------------------- |
|
143 |
|
144 Description |
|
145 ~~~~~~~~~~~~ |
|
146 Date and time of start and finish. A=Date and time of start B= Date and time of finish. |
|
147 Metric = B-A calculated for each build stages. In the graph only the 4 main stages are shown.\ |
|
148 |
|
149 * *1. pre-build (Synergy check outs and snapshots, build area preparation)* |
|
150 * *2. build (main build)* |
|
151 * *3. post build (Post build, China, Japan, EE images, EE zip, Localization, Localized roms)* |
|
152 * *4. release to channels (db, ftp, network disk)* |
|
153 |
|
154 Collection method |
|
155 ~~~~~~~~~~~~~~~~~~~ |
|
156 The started time and finished time are uploaded to diamonds automatically from Helium. |
|
157 |
|
158 Location in Diamonds |
|
159 ~~~~~~~~~~~~~~~~~~~~~~ |
|
160 In Diamonds, Builds->Summary. Click "Stages>>" |
|
161 |
|
162 |
|
163 Metrics name: API Usage |
|
164 ---------------------------------- |
|
165 |
|
166 Description |
|
167 ~~~~~~~~~~~~ |
|
168 Types of api are private, internal, domain and sdk. Illegal API is (internal+private), if any illegal api exists it will show the Illegal API's name with path. |
|
169 |
|
170 Collection method |
|
171 ~~~~~~~~~~~~~~~~~~~ |
|
172 If disable.analysis.tool is not set, data will be uploaded to diamonds automatically from Helium. |
|
173 |
|
174 Location in Diamonds |
|
175 ~~~~~~~~~~~~~~~~~~~~~~ |
|
176 In Diamonds, Builds->Other->API usage |
|
177 |
|
178 |
|
179 Metrics name: Build tags |
|
180 ------------------------ |
|
181 |
|
182 Description |
|
183 ~~~~~~~~~~~~ |
|
184 Build tags are used to group builds for metric collection purposes. |
|
185 |
|
186 Collection method |
|
187 ~~~~~~~~~~~~~~~~~~~ |
|
188 To send custom build tags to Diamonds the property diamonds.build.tags should be set as follows: |
|
189 * For a single build tag (e.g. "build_tag1") -> hlm -Ddiamonds.build.tags="build_tag1" |
|
190 * For multiple build tags (e.g. "build_tag1" and "build_tagN") -> hlm -Ddiamonds.build.tags="build_tag1,build_tagN" |
|
191 |
|
192 Note: |
|
193 * Build tags should not exceed 50 characters. |
|
194 * Duplicate build tags will be ignored. |
|
195 * If an "Available Tag" is set, then in Diamonds it gets removed from that list and transferred to "Build's Tags" list. |
|
196 |
|
197 Location in Diamonds |
|
198 ~~~~~~~~~~~~~~~~~~~~~~ |
|
199 In Diamonds, Builds->Tags->Build's Tags. |
|
200 |
|
201 For categorization by tags, Click Builds->"Navigation" pane->"Build Archives"->by tags |
|
202 |
|
203 |
|
204 Metrics name: Information about "base environment" |
|
205 -------------------------------------------------- |
|
206 |
|
207 Description |
|
208 ~~~~~~~~~~~~ |
|
209 Information about what "base environment" is unzipped. |
|
210 |
|
211 Collection method |
|
212 ~~~~~~~~~~~~~~~~~~~ |
|
213 Necessary data are collected from build information automatically if currentRelease.xml exists in the environment. |
|
214 |
|
215 Location in Diamonds |
|
216 ~~~~~~~~~~~~~~~~~~~~~~ |
|
217 In Diamonds, Builds->Content. See "Input" for s60. |