buildframework/helium/doc/src/metrics.rst
changeset 2 39c28ec933dd
equal deleted inserted replaced
1:820b22e13ff1 2:39c28ec933dd
       
     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.