home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / WindowsServerTrial / server.iso / sources / install.wim / 4 / Windows / PLA / Rules / Rules.System.Summary.xml < prev   
Extensible Markup Language  |  2006-09-18  |  19KB  |  327 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?Copyright (c) Microsoft Corporation. All rights reserved.?>
  3. <Rules>
  4.   <Group name="$(GroupSysHealth)" enabled="true">
  5.     <Rule name="$(RuleSysHealthInsert)" enabled="true">
  6.       <Step select="/Report/Section[@name='advice']">
  7.         <Exists>
  8.           <Otherwise>
  9.             <Insert>
  10.               <Node axis="child">
  11.                 <Table name="sysHealthSummary" level="1" style="custom" key="100" topic="TopicPerfSummary" expand="true">
  12.                   <Header>
  13.                     <Data name="SysHealthComponentHdr" class="string"/>
  14.                     <Data name="SysHealthStatusHdr" class="string"/>
  15.                     <Data name="SysHealthUtilizationHdr" class="string"/>
  16.                     <Data name="SysHealthDetailsHdr" class="string"/>
  17.                   </Header>
  18.                 </Table>
  19.               </Node>
  20.             </Insert>
  21.           </Otherwise>
  22.         </Exists>
  23.       </Step>
  24.     </Rule>
  25.     <Rule name="$(RuleSysHealthCpu)" enabled="true">
  26.       <Step select="/Report/Section/Table[@name='imageStats']/Item[Data[@name='image']='Idle']" fatal="true">
  27.         <Exists>
  28.           <Otherwise>
  29.             <Variable name="cpu" expression="100 - Data[@name='cpu']"/>
  30.             <Variable name="cpu" expression="round('{cpu}')"/>
  31.           </Otherwise>
  32.         </Exists>
  33.       </Step>
  34.       <Step select="/Report/Section/Table[@name='imageStats']/Item[Data[@name='image']='Idle']" fatal="true">
  35.         <Exists>
  36.           <When expression="{cpu} < 20" description="CPU usage for the idle state. The default value is less than or equal to 20% CPU usage">
  37.             <Variable name="syshealthicon">green</Variable>
  38.             <Variable name="syshealthstate">$(SysHealthStateIdle)</Variable>
  39.             <Variable name="syshealthdetail">$(SysHealthDetailCpuIdle)</Variable>
  40.           </When>
  41.           <When expression="{cpu} >= 20 and {cpu} <= 70" description="CPU usage range for a normal state. The default boundary values are less than 20% and greater than 80% CPU usage.">
  42.             <Variable name="syshealthicon">green</Variable>
  43.             <Variable name="syshealthstate">$(SysHealthStateNormal)</Variable>
  44.             <Variable name="syshealthdetail">$(SysHealthDetailCpuNormal)</Variable>
  45.           </When>
  46.           <When expression="{cpu} >= 70 and {cpu} <= 80">
  47.             <Variable name="syshealthicon">yellow</Variable>
  48.             <Variable name="syshealthstate">$(SysHealthStateNormal)</Variable>
  49.             <Variable name="syshealthdetail">$(SysHealthDetailCpuNormal)</Variable>
  50.           </When>
  51.           <When expression="{cpu} > 80" description="CPU usage for the busy state. The default value is greater than or equal to 80% CPU usage">
  52.             <Variable name="syshealthicon">red</Variable>
  53.             <Variable name="syshealthstate">$(SysHealthStateBusy)</Variable>
  54.             <Variable name="syshealthdetail">$(SysHealthDetailCpuBusy)</Variable>
  55.           </When>
  56.         </Exists>
  57.       </Step>
  58.       <Step select="/Report/Section/Table[@name='sysHealthSummary']" fatal="true">
  59.         <Exists>
  60.           <Otherwise>
  61.             <Insert>
  62.               <Node>
  63.                 <Item>
  64.                   <Data name="component" translate="value">SysHealthCpuComponent</Data>
  65.                   <Data name="status" img="{syshealthicon}">{syshealthstate}</Data>
  66.                   <Data name="util" format="0" units="%">{cpu}</Data>
  67.                   <Data name="detail">{syshealthdetail}</Data>
  68.                 </Item>
  69.               </Node>
  70.             </Insert>
  71.           </Otherwise>
  72.         </Exists>
  73.       </Step>
  74.     </Rule>
  75.     <Rule name="$(RuleSysHealthNetwork)" enabled="true">
  76.       <Step select="/Report/Section/Table[@name='networkinterface']/Item[Data[@name='instance'] != 'MS TCP Loopback interface' and Data[@name='counter']='Bytes Total/sec']" sortDataType="number" sortType="max" sortNode="Data[@name='mean']" fatal="true">
  77.         <Exists>
  78.           <Otherwise>
  79.             <Variable name="netin" expression="Data[@name='instance']"/>
  80.             <Variable name="totalbits" expression="(Data[@name='mean']) * 8"/>
  81.             <Variable name="prttotalbits" expression="format-number({totalbits},'#,##0')"/>
  82.           </Otherwise>
  83.         </Exists>
  84.       </Step>
  85.       <Step select="/Report/Section/Table[@name='networkinterface']/Item[Data[@name='counter']='Current Bandwidth' and Data[@name='instance']='{netin}']" fatal="true">
  86.         <Exists>
  87.           <Otherwise>
  88.             <Variable name="bandwidth" expression="Data[@name='mean']"/>
  89.             <Variable name="prtbandwidth" expression="format-number(Data[@name='mean'],'#,##0')"/>
  90.             <Variable name="utilization" expression="format-number(({totalbits} div {bandwidth}) * 100,'0')"/>
  91.           </Otherwise>
  92.         </Exists>
  93.       </Step>
  94.       <Step select="/Report/Section/Table[@name='networkinterface']/Item[Data[@name='counter']='Current Bandwidth' and Data[@name='instance']='{netin}']" fatal="true">
  95.         <Exists>
  96.           <When expression="{utilization} < 15" description="Network usage for the low state. The default value is less than or equal to 15% network usage.">
  97.             <Variable name="syshealthicon">green</Variable>
  98.             <Variable name="syshealthstate">$(SysHealthStateIdle)</Variable>
  99.             <Variable name="syshealthdetail">$(SysHealthDetailNetIdle)</Variable>
  100.           </When>
  101.           <When expression="{utilization} >= 15  and {utilization}  < 60" description="Network usage range for the normal state. The default boundary values are greater than 15% and less than 60% memory usage.">
  102.             <Variable name="syshealthicon">green</Variable>
  103.             <Variable name="syshealthstate">$(SysHealthStateNormal)</Variable>
  104.             <Variable name="syshealthdetail">$(SysHealthDetailNetNormal)</Variable>
  105.           </When>
  106.           <When expression="{utilization} >= 60  and {utilization} < 80">
  107.             <Variable name="syshealthicon">yellow</Variable>
  108.             <Variable name="syshealthstate">$(SysHealthStateBusy)</Variable>
  109.             <Variable name="syshealthdetail">$(SysHealthDetailNetBusy)</Variable>
  110.           </When>
  111.           <When expression="{utilization} >= 80" description="Network usage for the high state. The default value is greater than or equal to 60% network usage.">
  112.             <Variable name="syshealthicon">red</Variable>
  113.             <Variable name="syshealthstate">SysHealthStateBusy)</Variable>
  114.             <Variable name="syshealthdetail">SysHealthDetailNetBusy)</Variable>
  115.           </When>
  116.         </Exists>
  117.       </Step>
  118.       <Step select="/Report/Section/Table[@name='sysHealthSummary']" fatal="true">
  119.         <Variable name="syshealthdetailnote">$(SysHealthDetailNetNote)</Variable>
  120.         <Exists>
  121.           <Otherwise>
  122.             <Insert>
  123.               <Node>
  124.                 <Item>
  125.                   <Data name="component" translate="value">SysHealthNetComponent</Data>
  126.                   <Data name="status" img="{syshealthicon}">{syshealthstate}</Data>
  127.                   <Data name="util" format="0" units="%">{utilization}</Data>
  128.                   <Data name="detail" note="{syshealthdetailnote}">{syshealthdetail}</Data>
  129.                 </Item>
  130.               </Node>
  131.             </Insert>
  132.           </Otherwise>
  133.         </Exists>
  134.       </Step>
  135.     </Rule>
  136.     <Rule name="$(RuleSysHealthDisk)" enabled="true">
  137.       <Step select="/Report/Section/Table[@name='diskTotals']/Item[Data[@name='ioRate']]" sortDataType="number" sortType="max" sortNode="Data[@name='ioRate']" fatal="true">
  138.         <Exists>
  139.           <Otherwise>
  140.             <Variable name="diskio" expression="Data[@name='ioRate']"/>
  141.             <Variable name="diskr" expression="format-number(Data[@name='readRate'],'#,##0.0')"/>
  142.             <Variable name="diskw" expression="format-number(Data[@name='writeRate'],'#,##0.0')"/>
  143.             <Variable name="disknumber" expression="Data[@name='diskNumber']"/>
  144.           </Otherwise>
  145.         </Exists>
  146.       </Step>
  147.       <Step select="/Report/Section/Table[@name='diskTotals']/Item[Data[@name='ioRate']]" sortDataType="number" sortType="max" sortNode="Data[@name='ioRate']" fatal="true">
  148.         <Exists>
  149.           <When expression="Data[@name='ioRate'] < 100" description="Maximum I/O rate for the idle state. The default value is less than or equal to 100 I/O operations per second.">
  150.             <Variable name="syshealthicon">green</Variable>
  151.             <Variable name="syshealthstate">$(SysHealthStateIdle)</Variable>
  152.             <Variable name="syshealthdetail">$(SysHealthDetailDskIdle)</Variable>
  153.           </When>
  154.           <When expression="{diskio} >= 100 and {diskio} <= 500" description="I/O rate range for a normal state. The default boundary values are greater than 100. Minimum I/O rate for a busy state. The default value is greater than or equal to 500 I/O operations per second.">
  155.             <Variable name="syshealthicon">green</Variable>
  156.             <Variable name="syshealthstate">$(SysHealthStateNormal)</Variable>
  157.             <Variable name="syshealthdetail">$(SysHealthDetailDskNormal)</Variable>
  158.           </When>
  159.           <When expression="{diskio} >= 500" description="I/O rate is high. The default boundary values are greater than I/O rate for a busy state. The default value is greater than or equal to 500 I/O operations per second.">
  160.             <Variable name="syshealthicon">red</Variable>
  161.             <Variable name="syshealthstate">$(SysHealthStateBusy)</Variable>
  162.             <Variable name="syshealthdetail">$(SysHealthDetailDskBusy)</Variable>
  163.           </When>
  164.         </Exists>
  165.       </Step>
  166.       <Step select="/Report/Section/Table[@name='sysHealthSummary']" fatal="true">
  167.         <Variable name="syshealthdetailnote">$(SysHealthDetailDskNote)</Variable>
  168.         <Exists>
  169.           <Otherwise>
  170.             <Insert>
  171.               <Node>
  172.                 <Item>
  173.                   <Data name="component" translate="value">SysHealthDskComponent</Data>
  174.                   <Data name="status" img="{syshealthicon}">{syshealthstate}</Data>
  175.                   <Data name="util" format="0" units="/sec">{diskio}</Data>
  176.                   <Data name="detail" note="{syshealthdetailnote}">{syshealthdetail}</Data>
  177.                 </Item>
  178.               </Node>
  179.             </Insert>
  180.           </Otherwise>
  181.         </Exists>
  182.       </Step>
  183.     </Rule>
  184.     <Rule name="$(RuleSysHealthMemory)" enabled="true">
  185.       <Step select="/Report/Section[@name='tracerptHeader']/Table[@name='client']/Item/Data[@name='memory']" fatal="true">
  186.         <Variable name="physicalmem" expression="."/>
  187.         <Exists>
  188.           <When expression="{physicalmem} > 1"/>
  189.         </Exists>
  190.       </Step>
  191.       <Step select="/Report/Section/Table[@name='memory']/Item[Data[@name='counter']='Available Bytes']" fatal="true">
  192.         <Exists>
  193.           <Otherwise>
  194.             <Variable name="avamem" expression="Data[@name='mean']"/>
  195.             <Variable name="availablemem" expression="{avamem} div 1048576"/>
  196.             <Variable name="prettyavailablemem" expression="round('{availablemem}')"/>
  197.             <Variable name="ratiomem" expression="1 - ({availablemem} div {physicalmem})"/>
  198.             <Variable name="mem" expression="format-number({ratiomem} * 100,'0')"/>
  199.           </Otherwise>
  200.         </Exists>
  201.       </Step>
  202.       <Step select="/Report">
  203.         <Exists>
  204.           <When expression="{mem} < 0">
  205.             <Variable name="mem" expression="'0'"/>
  206.           </When>
  207.         </Exists>
  208.       </Step>
  209.       <Step select="/Report/Section/Table[@name='memory']/Item[Data[@name='counter']='Available Bytes']" fatal="true">
  210.         <Exists>
  211.           <When expression="{mem} < 15">
  212.             <Variable name="syshealthicon">green</Variable>
  213.             <Variable name="syshealthstate">$(SysHealthStateIdle)</Variable>
  214.             <Variable name="syshealthdetail">$(SysHealthDetailMemIdle)</Variable>
  215.           </When>
  216.           <When expression="{mem} >= 15 and {mem} < 60" description="Memory usage range for the low state. The default boundary values are greater than 0% Memory usage range for the normal state. The default boundary values are greater than 15% and less than 75% memory usage.">
  217.             <Variable name="syshealthicon">green</Variable>
  218.             <Variable name="syshealthstate">$(SysHealthStateNormal)</Variable>
  219.             <Variable name="syshealthdetail">$(SysHealthDetailMemNormal)</Variable>
  220.           </When>
  221.           <When expression="{mem} >= 60 and {mem} <= 75">
  222.             <Variable name="syshealthicon">yellow</Variable>
  223.             <Variable name="syshealthstate">$(SysHealthStateNormal)</Variable>
  224.             <Variable name="syshealthdetail">$(SysHealthDetailMemNormal)</Variable>
  225.           </When>
  226.           <When expression="{mem} >= 75 and {mem} <= 100" description="Memory usage range for the high state. The default boundary values are geater than 75% and less than 100% memory usage.">
  227.             <Variable name="syshealthicon">red</Variable>
  228.             <Variable name="syshealthstate">$(SysHealthStateBusy)</Variable>
  229.             <Variable name="syshealthdetail">$(SysHealthDetailMemBusy)</Variable>
  230.           </When>
  231.           <When expression="{mem} > 100">
  232.             <Variable name="syshealthicon">red</Variable>
  233.             <Variable name="syshealthstate">$(SysHealthStateIdle)</Variable>
  234.             <Variable name="syshealthdetail">$(SysHealthDetailMemIdle)</Variable>
  235.             <Variable name="mem">0</Variable>
  236.           </When>
  237.           <When expression="{mem} < 0">
  238.             <Variable name="syshealthicon">green</Variable>
  239.             <Variable name="syshealthstate">$(SysHealthStateIdle)</Variable>
  240.             <Variable name="syshealthdetail">$(SysHealthDetailMemIdle)</Variable>
  241.             <Variable name="mem">0</Variable>
  242.           </When>
  243.         </Exists>
  244.       </Step>
  245.       <Step select="/Report/Section/Table[@name='sysHealthSummary']" fatal="true">
  246.         <Exists>
  247.           <Otherwise>
  248.             <Insert>
  249.               <Node>
  250.                 <Item>
  251.                   <Data name="component" translate="value">SysHealthMemComponent</Data>
  252.                   <Data name="status" img="{syshealthicon}">{syshealthstate}</Data>
  253.                   <Data name="util" format="0" units="%">{mem}</Data>
  254.                   <Data name="detail">{syshealthdetail}</Data>
  255.                 </Item>
  256.               </Node>
  257.             </Insert>
  258.             <Insert>
  259.               <Node>
  260.                 <Summary key="100" find="field" field="component" value="SysHealthMemComponent" topic="memory">
  261.                   <Data name="util" label="SysHealthUtilizationHdr"/>
  262.                 </Summary>
  263.               </Node>
  264.             </Insert>
  265.           </Otherwise>
  266.         </Exists>
  267.       </Step>
  268.     </Rule>
  269.     <Rule name="$(RuleSysHealthInsertConfig)" enabled="true" visible="false">
  270.       <Step select="/Report/Section[@name='SystemConfig']" fatal="true">
  271.         <Exists>
  272.           <Otherwise>
  273.             <Insert>
  274.               <Node document="Configuration.xml" select="/Report/Section/*"/>
  275.             </Insert>
  276.             <Insert select="/Report/Section[@name='SystemConfig']/Table[@name='networkInformation']">
  277.               <Attribute name="topic" value="system"/>
  278.             </Insert>
  279.             <Insert select="/Report/Section[@name='SystemConfig']/Table[@name='registryKeys']">
  280.               <Attribute name="topic" value="settings"/>
  281.             </Insert>
  282.           </Otherwise>
  283.         </Exists>
  284.       </Step>
  285.     </Rule>
  286.     <Rule name="$(RuleSysHealthRptDisplay)" enabled="true">
  287.       <Step select="/Report" fatal="true">
  288.         <UserInput name="userlevel" expression="1"/>
  289.         <Exists>
  290.           <When expression="{userlevel} <= 2" description="This value sets the level of detail in the Server Performance Advisor report. The default value is less than or equal to 2 (least detail).">
  291.             <Insert>
  292.               <Attribute name="level" value="{userlevel}"/>
  293.             </Insert>
  294.           </When>
  295.         </Exists>
  296.       </Step>
  297.     </Rule>
  298.   </Group>
  299.   <StringTable>
  300.     <String ID="GroupSysHealth">System Health</String>
  301.     <String ID="RuleSysHealthCpu">CPU Utilization</String>
  302.     <String ID="RuleSysHealthDisk">Disk Utilization</String>
  303.     <String ID="RuleSysHealthInsertConfig">Insert Configuration table into final report</String>
  304.     <String ID="RuleSysHealthMemory">Memory Utilization</String>
  305.     <String ID="RuleSysHealthNetwork">Network Utilization</String>
  306.     <String ID="RuleSysHealthInsert">System Health Table Insert</String>
  307.     <String ID="RuleSysHealthRptDisplay">Report Display Level</String>
  308.     <String ID="SysHealthDetailCpuBusy">High CPU load. Investigate Top Processes.</String>
  309.     <String ID="SysHealthDetailCpuIdle">Low CPU load.</String>
  310.     <String ID="SysHealthDetailCpuNormal">Normal CPU load.</String>
  311.     <String ID="SysHealthDetailDskBusy">Disk I/O is more than 500 (read/write) per second on disk {disknumber}.</String>
  312.     <String ID="SysHealthDetailDskIdle">Disk I/O is less than 100 (read/write) per second on disk {disknumber}.</String>
  313.     <String ID="SysHealthDetailDskNormal">Disk I/O is between 100 and 500 (read/write) per second on disk {disknumber}.</String>
  314.     <String ID="SysHealthDetailMemBusy">{prettyavailablemem} MB Available.</String>
  315.     <String ID="SysHealthDetailMemIdle">{prettyavailablemem} MB Available.</String>
  316.     <String ID="SysHealthDetailMemNormal">{prettyavailablemem} MB Available.</String>
  317.     <String ID="SysHealthDetailNetBusy">Busiest network adapter exceeded 60%.</String>
  318.     <String ID="SysHealthDetailNetIdle">Busiest network adapter is less than 15%.</String>
  319.     <String ID="SysHealthDetailNetNormal">Busiest network adapter is between 15% and 60%.</String>
  320.     <String ID="SysHealthDetailDskNote">Reads {diskr}/sec + Writes {diskw}/sec</String>
  321.     <String ID="SysHealthDetailNetNote">Nic {netin} using {prttotalbits} bits and has {prtbandwidth} bits capacity.</String>
  322.     <String ID="SysHealthStateBusy">Busy</String>
  323.     <String ID="SysHealthStateIdle">Idle</String>
  324.     <String ID="SysHealthStateNormal">Normal</String>
  325.   </StringTable>
  326. </Rules>
  327.