Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1027 lines
81 KiB

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  3. <xsl:output method='text' standalone='yes' encoding="utf-8"/>
  4. <xsl:template match="/">
  5. <xsl:variable name="col"><xsl:text> </xsl:text></xsl:variable>
  6. <xsl:variable name="offset"><xsl:value-of select="string-length($col)"/></xsl:variable>
  7. <xsl:for-each select="report/header">
  8. +-----------------------------------------------------------------------------------------------------------------------------------+
  9. <xsl:text>| Windows Event Trace Session Report v. </xsl:text>
  10. <xsl:value-of select="version"/>
  11. <xsl:text> |</xsl:text>
  12. +-----------------------------------------------------------------------------------------------------------------------------------+
  13. | |
  14. <xsl:if test="string-length(build) > 0">
  15. <xsl:text>| Build : </xsl:text><xsl:value-of select="build"/>
  16. <xsl:value-of select="substring($col, $offset - 116 + string-length(build) )"/>|
  17. </xsl:if>
  18. <xsl:if test="string-length(computer_name) > 0">
  19. <xsl:text>| Computer : </xsl:text><xsl:value-of select="computer_name"/>
  20. <xsl:value-of select="substring($col, $offset - 116 + string-length(computer_name) )"/>|
  21. </xsl:if>
  22. <xsl:if test="string-length(processors) > 0">
  23. <xsl:text>| Processors: </xsl:text><xsl:value-of select="processors"/>
  24. <xsl:value-of select="substring($col, $offset - 116 + string-length(processors) )"/>|
  25. </xsl:if>
  26. <xsl:if test="string-length(cpu_speed) > 0">
  27. <xsl:text>| CPU Speed : </xsl:text><xsl:value-of select="cpu_speed"/><xsl:text> </xsl:text><xsl:value-of select="cpu_speed/@units"/>
  28. <xsl:value-of select="substring($col, $offset - 112 + string-length(cpu_speed) )"/>|
  29. </xsl:if>
  30. <xsl:if test="string-length(memory) > 0">
  31. <xsl:text>| Memory : </xsl:text><xsl:value-of select="memory"/><xsl:text> </xsl:text><xsl:value-of select="memory/@units"/>
  32. <xsl:value-of select="substring($col, $offset - 113+ string-length(memory) )"/>|
  33. </xsl:if>
  34. <xsl:for-each select="trace">
  35. <xsl:text>| |</xsl:text><xsl:value-of select="'&#xA;'"/>
  36. <xsl:text>| Trace Name: </xsl:text><xsl:value-of select="@name"/>
  37. <xsl:value-of select="substring($col, $offset - 116 + string-length(@name) )"/>|
  38. <xsl:text>| File Name : </xsl:text><xsl:value-of select="file"/>
  39. <xsl:value-of select="substring($col, $offset - 116 + string-length(file) )"/>|
  40. <xsl:text>| Start Time: </xsl:text><xsl:value-of select="start"/><xsl:text> </xsl:text><xsl:value-of select="duration_window"/>
  41. <xsl:value-of select="substring($col, $offset - 112 + string-length(start) + string-length(duration_window) )"/>|
  42. <xsl:text>| End Time : </xsl:text><xsl:value-of select="end"/>
  43. <xsl:value-of select="substring($col, $offset - 116 + string-length(end) )"/>|
  44. <xsl:text>| Duration : </xsl:text><xsl:value-of select="duration"/><xsl:text> sec</xsl:text>
  45. <xsl:value-of select="substring($col, $offset - 112 + string-length(duration) )"/>|
  46. </xsl:for-each>
  47. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  48. <xsl:value-of select="'&#xA;'"/>
  49. </xsl:for-each>
  50. <xsl:for-each select="report/table[@title='Http Requests Response Time Statistics']">
  51. <xsl:variable name="total_rate"><xsl:value-of select="sum(requests/rate)"/></xsl:variable>
  52. +-----------------------------------------------------------------------------------------------------------------------------------+
  53. | Http Requests Response Time Statistics |
  54. +---------------------+-------------------------------------------------------------------------------------------------------------+
  55. | Request Type | Rate/sec Resp. Time (ms) Http.sys % W3 % Filter % ISAPI % ASP % CGI % |
  56. +---------------------+-------------------------------------------------------------------------------------------------------------+
  57. <xsl:text>| Cached (Static) |</xsl:text>
  58. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/rate) )"/>
  59. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/rate"/>
  60. <xsl:text> (</xsl:text>
  61. <xsl:value-of select="substring($col, $offset - 5 + string-length(format-number((requests[@cached='true' and @type='Static HTTP']/rate div $total_rate), '0.0%' )) )"/>
  62. <xsl:value-of select="format-number((requests[@cached='true' and @type='Static HTTP']/rate div $total_rate), '0.0%' )"/>
  63. <xsl:text>)</xsl:text>
  64. <xsl:value-of select="substring($col, $offset - 19 + string-length(format-number(requests[@cached='true' and @type='Static HTTP']/response_time, '0.00')) )"/>
  65. <xsl:value-of select="format-number(requests[@cached='true' and @type='Static HTTP']/response_time, '0.00')"/>
  66. <xsl:value-of select="substring($col, $offset - 12 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='UL']) )"/>
  67. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='UL']"/><xsl:text>%</xsl:text>
  68. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='W3']) )"/>
  69. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='W3']"/><xsl:text>%</xsl:text>
  70. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='W3Fltr']) )"/>
  71. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  72. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='ISAPI']) )"/>
  73. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  74. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='ASP']) )"/>
  75. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  76. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='CGI']) )"/>
  77. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  78. <xsl:text> |</xsl:text>
  79. +---------------------+-------------------------------------------------------------------------------------------------------------+
  80. <xsl:text>| Non Cached Requests |</xsl:text>
  81. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/rate) )"/>
  82. <xsl:value-of select="summary[@cached='false']/rate"/>
  83. <xsl:text> (</xsl:text>
  84. <xsl:value-of select="substring($col, $offset - 4 + string-length(format-number(summary[@cached='false']/rate/@percent, '0.0')) )"/>
  85. <xsl:value-of select="format-number( summary[@cached='false']/rate/@percent, '0.0' )"/>
  86. <xsl:text>%)</xsl:text>
  87. <xsl:value-of select="substring($col, $offset - 19 + string-length(format-number(summary[@cached='false']/response_time, '0.00')) )"/>
  88. <xsl:value-of select="format-number( summary[@cached='false']/response_time, '0.00')"/>
  89. <xsl:value-of select="substring($col, $offset - 12 + string-length(summary[@cached='false']/component[@name='UL']) )"/>
  90. <xsl:value-of select="summary[@cached='false']/component[@name='UL']"/><xsl:text>%</xsl:text>
  91. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/component[@name='W3']) )"/>
  92. <xsl:value-of select="summary[@cached='false']/component[@name='W3']"/><xsl:text>%</xsl:text>
  93. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/component[@name='W3Fltr']) )"/>
  94. <xsl:value-of select="summary[@cached='false']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  95. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/component[@name='ISAPI']) )"/>
  96. <xsl:value-of select="summary[@cached='false']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  97. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/component[@name='ASP']) )"/>
  98. <xsl:value-of select="summary[@cached='false']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  99. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/component[@name='CGI']) )"/>
  100. <xsl:value-of select="summary[@cached='false']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  101. <xsl:text> |</xsl:text>
  102. +---------------------+-------------------------------------------------------------------------------------------------------------+
  103. <xsl:text>| --- ASP |</xsl:text>
  104. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/rate) )"/>
  105. <xsl:value-of select="requests[@cached='false' and @type='ASP']/rate"/>
  106. <xsl:text> (</xsl:text>
  107. <xsl:value-of select="substring($col, $offset - 5 + string-length(format-number((requests[@cached='false' and @type='ASP']/rate div $total_rate), '0.0%' )) )"/>
  108. <xsl:value-of select="format-number((requests[@cached='false' and @type='ASP']/rate div $total_rate), '0.0%' )"/>
  109. <xsl:text>)</xsl:text>
  110. <xsl:value-of select="substring($col, $offset - 19 + string-length(format-number(requests[@cached='false' and @type='ASP']/response_time,'0.00')) )"/>
  111. <xsl:value-of select="format-number(requests[@cached='false' and @type='ASP']/response_time, '0.00')"/>
  112. <xsl:value-of select="substring($col, $offset - 12 + string-length(requests[@cached='false' and @type='ASP']/component[@name='UL']) )"/>
  113. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='UL']"/><xsl:text>%</xsl:text>
  114. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/component[@name='W3']) )"/>
  115. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='W3']"/><xsl:text>%</xsl:text>
  116. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/component[@name='W3Fltr']) )"/>
  117. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  118. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/component[@name='ISAPI']) )"/>
  119. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  120. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/component[@name='ASP']) )"/>
  121. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  122. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/component[@name='CGI']) )"/>
  123. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  124. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  125. <xsl:text>| --- Static (miss) |</xsl:text>
  126. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/rate) )"/>
  127. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/rate"/>
  128. <xsl:text> (</xsl:text>
  129. <xsl:value-of select="substring($col, $offset - 5 + string-length(format-number((requests[@cached='false' and @type='Static HTTP']/rate div $total_rate), '0.0%' )) )"/>
  130. <xsl:value-of select="format-number((requests[@cached='false' and @type='Static HTTP']/rate div $total_rate), '0.0%' )"/>
  131. <xsl:text>)</xsl:text>
  132. <xsl:value-of select="substring($col, $offset - 19 + string-length(format-number(requests[@cached='false' and @type='Static HTTP']/response_time,'0.00')) )"/>
  133. <xsl:value-of select="format-number(requests[@cached='false' and @type='Static HTTP']/response_time, '0.00')"/>
  134. <xsl:value-of select="substring($col, $offset - 12 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='UL']) )"/>
  135. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='UL']"/><xsl:text>%</xsl:text>
  136. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='W3']) )"/>
  137. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='W3']"/><xsl:text>%</xsl:text>
  138. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='W3Fltr']) )"/>
  139. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  140. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='ISAPI']) )"/>
  141. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  142. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='ASP']) )"/>
  143. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  144. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='CGI']) )"/>
  145. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  146. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  147. <xsl:text>| --- CGI |</xsl:text>
  148. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/rate) )"/>
  149. <xsl:value-of select="requests[@cached='false' and @type='CGI']/rate"/>
  150. <xsl:text> (</xsl:text>
  151. <xsl:value-of select="substring($col, $offset - 5 + string-length(format-number((requests[@cached='false' and @type='CGI']/rate div $total_rate), '0.0%' )) )"/>
  152. <xsl:value-of select="format-number((requests[@cached='false' and @type='CGI']/rate div $total_rate), '0.0%' )"/>
  153. <xsl:text>)</xsl:text>
  154. <xsl:value-of select="substring($col, $offset - 19 + string-length(format-number(requests[@cached='false' and @type='CGI']/response_time, '0.00')) )"/>
  155. <xsl:value-of select="format-number(requests[@cached='false' and @type='CGI']/response_time, '0.00')"/>
  156. <xsl:value-of select="substring($col, $offset - 12 + string-length(requests[@cached='false' and @type='CGI']/component[@name='UL']) )"/>
  157. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='UL']"/><xsl:text>%</xsl:text>
  158. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/component[@name='W3']) )"/>
  159. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='W3']"/><xsl:text>%</xsl:text>
  160. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/component[@name='W3Fltr']) )"/>
  161. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  162. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/component[@name='ISAPI']) )"/>
  163. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  164. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/component[@name='ASP']) )"/>
  165. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  166. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/component[@name='CGI']) )"/>
  167. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  168. <xsl:text> |</xsl:text>
  169. <xsl:if test="string-length(requests[@cached='false' and @type='Error']/rate)">
  170. <xsl:value-of select="'&#xA;'"/>
  171. <xsl:text>| --- Error |</xsl:text>
  172. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/rate) )"/>
  173. <xsl:value-of select="requests[@cached='false' and @type='Error']/rate"/>
  174. <xsl:text> (</xsl:text>
  175. <xsl:value-of select="substring($col, $offset - 5 + string-length(format-number((requests[@cached='false' and @type='Error']/rate div $total_rate), '0.0%' )) )"/>
  176. <xsl:value-of select="format-number((requests[@cached='false' and @type='Error']/rate div $total_rate), '0.0%' )"/>
  177. <xsl:text>)</xsl:text>
  178. <xsl:value-of select="substring($col, $offset - 19 + string-length(format-number(requests[@cached='false' and @type='Error']/response_time, '0.00')) )"/>
  179. <xsl:value-of select="format-number(requests[@cached='false' and @type='Error']/response_time, '0.00')"/>
  180. <xsl:value-of select="substring($col, $offset - 12 + string-length(requests[@cached='false' and @type='Error']/component[@name='UL']) )"/>
  181. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='UL']"/><xsl:text>%</xsl:text>
  182. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/component[@name='W3']) )"/>
  183. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='W3']"/><xsl:text>%</xsl:text>
  184. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/component[@name='W3Fltr']) )"/>
  185. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  186. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/component[@name='ISAPI']) )"/>
  187. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  188. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/component[@name='ASP']) )"/>
  189. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  190. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/component[@name='CGI']) )"/>
  191. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  192. <xsl:text> |</xsl:text>
  193. </xsl:if>
  194. +---------------------+-------------------------------------------------------------------------------------------------------------+
  195. <xsl:text>| Total |</xsl:text>
  196. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/rate) )"/>
  197. <xsl:value-of select="summary[@type='totals']/rate"/>
  198. <xsl:text> (100.0%)</xsl:text>
  199. <xsl:value-of select="substring($col, $offset - 19 + string-length(format-number(summary[@type='totals']/response_time, '0.00')) )"/>
  200. <xsl:value-of select="format-number(summary[@type='totals']/response_time, '0.00')"/>
  201. <xsl:value-of select="substring($col, $offset - 12 + string-length(summary[@type='totals']/component[@name='UL']) )"/>
  202. <xsl:value-of select="summary[@type='totals']/component[@name='UL']"/><xsl:text>%</xsl:text>
  203. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/component[@name='W3']) )"/>
  204. <xsl:value-of select="summary[@type='totals']/component[@name='W3']"/><xsl:text>%</xsl:text>
  205. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/component[@name='W3Fltr']) )"/>
  206. <xsl:value-of select="summary[@type='totals']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  207. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/component[@name='ISAPI']) )"/>
  208. <xsl:value-of select="summary[@type='totals']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  209. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/component[@name='ASP']) )"/>
  210. <xsl:value-of select="summary[@type='totals']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  211. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/component[@name='CGI']) )"/>
  212. <xsl:value-of select="summary[@type='totals']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  213. <xsl:text> |</xsl:text>
  214. +---------------------+-------------------------------------------------------------------------------------------------------------+
  215. </xsl:for-each>
  216. <xsl:for-each select="report/table[@title='Http Requests CPU Time Usage Statistics']">
  217. <xsl:variable name="total_rate"><xsl:value-of select="sum(requests/rate)"/></xsl:variable>
  218. +-----------------------------------------------------------------------------------------------------------------------------------+
  219. | Http Requests CPU Time Usage Statistics |
  220. +---------------------+-------------------------------------------------------------------------------------------------------------+
  221. | Request Type | Rate/sec % CPU Http.sys % W3 % Filter % ISAPI % ASP % CGI % |
  222. +---------------------+-------------------------------------------------------------------------------------------------------------+
  223. <xsl:text>| Cached (Static) |</xsl:text>
  224. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/rate) )"/>
  225. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/rate"/>
  226. <xsl:text> (</xsl:text>
  227. <xsl:value-of select="substring($col, $offset - 5 + string-length(format-number((requests[@cached='true' and @type='Static HTTP']/rate div $total_rate), '0.0%' )) )"/>
  228. <xsl:value-of select="format-number((requests[@cached='true' and @type='Static HTTP']/rate div $total_rate), '0.0%' )"/>
  229. <xsl:text>)</xsl:text>
  230. <xsl:value-of select="substring($col, $offset - 19 + string-length(requests[@cached='true' and @type='Static HTTP']/cpu) )"/>
  231. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/cpu"/><xsl:text>%</xsl:text>
  232. <xsl:value-of select="substring($col, $offset - 11 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='UL']) )"/>
  233. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='UL']"/><xsl:text>%</xsl:text>
  234. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='W3']) )"/>
  235. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='W3']"/><xsl:text>%</xsl:text>
  236. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='W3Fltr']) )"/>
  237. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  238. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='ISAPI']) )"/>
  239. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  240. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='ASP']) )"/>
  241. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  242. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='true' and @type='Static HTTP']/component[@name='CGI']) )"/>
  243. <xsl:value-of select="requests[@cached='true' and @type='Static HTTP']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  244. <xsl:text> |</xsl:text>
  245. +---------------------+-------------------------------------------------------------------------------------------------------------+
  246. <xsl:text>| Non Cached Requests |</xsl:text>
  247. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/rate) )"/>
  248. <xsl:value-of select="summary[@cached='false']/rate"/>
  249. <xsl:text> (</xsl:text>
  250. <xsl:value-of select="substring($col, $offset - 4 + string-length(format-number(summary[@cached='false']/rate/@percent, '0.0')) )"/>
  251. <xsl:value-of select="format-number( summary[@cached='false']/rate/@percent, '0.0' )"/>
  252. <xsl:text>%)</xsl:text>
  253. <xsl:value-of select="substring($col, $offset - 19 + string-length(summary[@cached='false']/cpu) )"/>
  254. <xsl:value-of select="summary[@cached='false']/cpu"/><xsl:text>%</xsl:text>
  255. <xsl:value-of select="substring($col, $offset - 11 + string-length(summary[@cached='false']/component[@name='UL']) )"/>
  256. <xsl:value-of select="summary[@cached='false']/component[@name='UL']"/><xsl:text>%</xsl:text>
  257. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/component[@name='W3']) )"/>
  258. <xsl:value-of select="summary[@cached='false']/component[@name='W3']"/><xsl:text>%</xsl:text>
  259. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/component[@name='W3Fltr']) )"/>
  260. <xsl:value-of select="summary[@cached='false']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  261. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/component[@name='ISAPI']) )"/>
  262. <xsl:value-of select="summary[@cached='false']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  263. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/component[@name='ASP']) )"/>
  264. <xsl:value-of select="summary[@cached='false']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  265. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@cached='false']/component[@name='CGI']) )"/>
  266. <xsl:value-of select="summary[@cached='false']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  267. <xsl:text> |</xsl:text>
  268. +---------------------+-------------------------------------------------------------------------------------------------------------+
  269. <xsl:text>| --- ASP |</xsl:text>
  270. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/rate) )"/>
  271. <xsl:value-of select="requests[@cached='false' and @type='ASP']/rate"/>
  272. <xsl:text> (</xsl:text>
  273. <xsl:value-of select="substring($col, $offset - 5 + string-length(format-number((requests[@cached='false' and @type='ASP']/rate div $total_rate), '0.0%' )) )"/>
  274. <xsl:value-of select="format-number((requests[@cached='false' and @type='ASP']/rate div $total_rate), '0.0%' )"/>
  275. <xsl:text>)</xsl:text>
  276. <xsl:value-of select="substring($col, $offset - 19 + string-length(requests[@cached='false' and @type='ASP']/cpu) )"/>
  277. <xsl:value-of select="requests[@cached='false' and @type='ASP']/cpu"/><xsl:text>%</xsl:text>
  278. <xsl:value-of select="substring($col, $offset - 11 + string-length(requests[@cached='false' and @type='ASP']/component[@name='UL']) )"/>
  279. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='UL']"/><xsl:text>%</xsl:text>
  280. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/component[@name='W3']) )"/>
  281. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='W3']"/><xsl:text>%</xsl:text>
  282. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/component[@name='W3Fltr']) )"/>
  283. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  284. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/component[@name='ISAPI']) )"/>
  285. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  286. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/component[@name='ASP']) )"/>
  287. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  288. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='ASP']/component[@name='CGI']) )"/>
  289. <xsl:value-of select="requests[@cached='false' and @type='ASP']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  290. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  291. <xsl:text>| --- Static (miss) |</xsl:text>
  292. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/rate) )"/>
  293. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/rate"/>
  294. <xsl:text> (</xsl:text>
  295. <xsl:value-of select="substring($col, $offset - 5 + string-length(format-number((requests[@cached='false' and @type='Static HTTP']/rate div $total_rate), '0.0%' )) )"/>
  296. <xsl:value-of select="format-number((requests[@cached='false' and @type='Static HTTP']/rate div $total_rate), '0.0%' )"/>
  297. <xsl:text>)</xsl:text>
  298. <xsl:value-of select="substring($col, $offset - 19 + string-length(requests[@cached='false' and @type='Static HTTP']/cpu) )"/>
  299. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/cpu"/><xsl:text>%</xsl:text>
  300. <xsl:value-of select="substring($col, $offset - 11 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='UL']) )"/>
  301. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='UL']"/><xsl:text>%</xsl:text>
  302. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='W3']) )"/>
  303. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='W3']"/><xsl:text>%</xsl:text>
  304. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='W3Fltr']) )"/>
  305. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  306. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='ISAPI']) )"/>
  307. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  308. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='ASP']) )"/>
  309. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  310. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Static HTTP']/component[@name='CGI']) )"/>
  311. <xsl:value-of select="requests[@cached='false' and @type='Static HTTP']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  312. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  313. <xsl:text>| --- CGI |</xsl:text>
  314. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/rate) )"/>
  315. <xsl:value-of select="requests[@cached='false' and @type='CGI']/rate"/>
  316. <xsl:text> (</xsl:text>
  317. <xsl:value-of select="substring($col, $offset - 5 + string-length(format-number((requests[@cached='false' and @type='CGI']/rate div $total_rate), '0.0%' )) )"/>
  318. <xsl:value-of select="format-number((requests[@cached='false' and @type='CGI']/rate div $total_rate), '0.0%' )"/>
  319. <xsl:text>)</xsl:text>
  320. <xsl:value-of select="substring($col, $offset - 19 + string-length(requests[@cached='false' and @type='CGI']/cpu) )"/>
  321. <xsl:value-of select="requests[@cached='false' and @type='CGI']/cpu"/><xsl:text>%</xsl:text>
  322. <xsl:value-of select="substring($col, $offset - 11 + string-length(requests[@cached='false' and @type='CGI']/component[@name='UL']) )"/>
  323. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='UL']"/><xsl:text>%</xsl:text>
  324. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/component[@name='W3']) )"/>
  325. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='W3']"/><xsl:text>%</xsl:text>
  326. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/component[@name='W3Fltr']) )"/>
  327. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  328. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/component[@name='ISAPI']) )"/>
  329. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  330. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/component[@name='ASP']) )"/>
  331. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  332. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='CGI']/component[@name='CGI']) )"/>
  333. <xsl:value-of select="requests[@cached='false' and @type='CGI']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  334. <xsl:text> |</xsl:text>
  335. <xsl:if test="string-length(requests[@cached='false' and @type='Error']/rate)">
  336. <xsl:value-of select="'&#xA;'"/>
  337. <xsl:text>| --- Error |</xsl:text>
  338. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/rate) )"/>
  339. <xsl:value-of select="requests[@cached='false' and @type='Error']/rate"/>
  340. <xsl:text> (</xsl:text>
  341. <xsl:value-of select="substring($col, $offset - 5 + string-length(format-number((requests[@cached='false' and @type='Error']/rate div $total_rate), '0.0%' )) )"/>
  342. <xsl:value-of select="format-number((requests[@cached='false' and @type='Error']/rate div $total_rate), '0.0%' )"/>
  343. <xsl:text>)</xsl:text>
  344. <xsl:value-of select="substring($col, $offset - 19 + string-length(requests[@cached='false' and @type='Error']/cpu) )"/>
  345. <xsl:value-of select="requests[@cached='false' and @type='Error']/cpu"/><xsl:text>%</xsl:text>
  346. <xsl:value-of select="substring($col, $offset - 11 + string-length(requests[@cached='false' and @type='Error']/component[@name='UL']) )"/>
  347. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='UL']"/><xsl:text>%</xsl:text>
  348. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/component[@name='W3']) )"/>
  349. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='W3']"/><xsl:text>%</xsl:text>
  350. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/component[@name='W3Fltr']) )"/>
  351. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  352. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/component[@name='ISAPI']) )"/>
  353. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  354. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/component[@name='ASP']) )"/>
  355. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  356. <xsl:value-of select="substring($col, $offset - 9 + string-length(requests[@cached='false' and @type='Error']/component[@name='CGI']) )"/>
  357. <xsl:value-of select="requests[@cached='false' and @type='Error']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  358. <xsl:text> |</xsl:text>
  359. </xsl:if>
  360. +---------------------+-------------------------------------------------------------------------------------------------------------+
  361. <xsl:text>| Total |</xsl:text>
  362. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/rate) )"/>
  363. <xsl:value-of select="summary[@type='totals']/rate"/>
  364. <xsl:text> (100.0%)</xsl:text>
  365. <xsl:value-of select="substring($col, $offset - 19 + string-length(summary[@type='totals']/cpu) )"/>
  366. <xsl:value-of select="summary[@type='totals']/cpu"/><xsl:text>%</xsl:text>
  367. <xsl:value-of select="substring($col, $offset - 11 + string-length(summary[@type='totals']/component[@name='UL']) )"/>
  368. <xsl:value-of select="summary[@type='totals']/component[@name='UL']"/><xsl:text>%</xsl:text>
  369. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/component[@name='W3']) )"/>
  370. <xsl:value-of select="summary[@type='totals']/component[@name='W3']"/><xsl:text>%</xsl:text>
  371. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/component[@name='W3Fltr']) )"/>
  372. <xsl:value-of select="summary[@type='totals']/component[@name='W3Fltr']"/><xsl:text>%</xsl:text>
  373. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/component[@name='ISAPI']) )"/>
  374. <xsl:value-of select="summary[@type='totals']/component[@name='ISAPI']"/><xsl:text>%</xsl:text>
  375. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/component[@name='ASP']) )"/>
  376. <xsl:value-of select="summary[@type='totals']/component[@name='ASP']"/><xsl:text>%</xsl:text>
  377. <xsl:value-of select="substring($col, $offset - 9 + string-length(summary[@type='totals']/component[@name='CGI']) )"/>
  378. <xsl:value-of select="summary[@type='totals']/component[@name='CGI']"/><xsl:text>%</xsl:text>
  379. <xsl:text> |</xsl:text>
  380. +---------------------+-------------------------------------------------------------------------------------------------------------+
  381. </xsl:for-each>
  382. <xsl:for-each select="report/table[@title='Most Requested URLs']">
  383. +-----------------------------------------------------------------------------------------------------------------------------------+
  384. | 10 Most Requested URLs |
  385. +----------------------------------------------------------------------------------+------------------------------------------------+
  386. | URL | SiteID Rate/sec Cached Resp Time(ms)|
  387. +----------------------------------------------------------------------------------+------------------------------------------------+
  388. <xsl:for-each select="url">
  389. <xsl:text>| </xsl:text>
  390. <xsl:value-of select="@name"/>
  391. <xsl:value-of select="substring($col, $offset - 80 + string-length(@name) )"/>
  392. <xsl:text>|</xsl:text>
  393. <xsl:value-of select="substring($col, $offset - 6 + string-length(site_id) )"/>
  394. <xsl:value-of select="site_id"/>
  395. <xsl:value-of select="substring($col, $offset - 11 + string-length(rate) )"/>
  396. <xsl:value-of select="rate"/>
  397. <xsl:value-of select="substring($col, $offset - 10 + string-length(cache_hit) )"/>
  398. <xsl:value-of select="cache_hit"/>
  399. <xsl:value-of select="substring($col, $offset - 13 + string-length(response_time) )"/>
  400. <xsl:value-of select="response_time"/>
  401. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  402. </xsl:for-each>
  403. <xsl:text>+----------------------------------------------------------------------------------+------------------------------------------------+</xsl:text>
  404. <xsl:value-of select="'&#xA;'"/>
  405. </xsl:for-each>
  406. <xsl:for-each select="report/table[@title='Most Requested Static URLs']">
  407. +-----------------------------------------------------------------------------------------------------------------------------------+
  408. | 10 Most Requested Static URLs |
  409. +----------------------------------------------------------------------------------+------------------------------------------------+
  410. | URL | SiteID Rate/sec Cached Resp Time(ms)|
  411. +----------------------------------------------------------------------------------+------------------------------------------------+
  412. <xsl:for-each select="url">
  413. <xsl:text>| </xsl:text>
  414. <xsl:value-of select="@name"/>
  415. <xsl:value-of select="substring($col, $offset - 80 + string-length(@name) )"/>
  416. <xsl:text>|</xsl:text>
  417. <xsl:value-of select="substring($col, $offset - 6 + string-length(site_id) )"/>
  418. <xsl:value-of select="site_id"/>
  419. <xsl:value-of select="substring($col, $offset - 11 + string-length(rate) )"/>
  420. <xsl:value-of select="rate"/>
  421. <xsl:value-of select="substring($col, $offset - 10 + string-length(cache_hit) )"/>
  422. <xsl:value-of select="cache_hit"/>
  423. <xsl:value-of select="substring($col, $offset - 13 + string-length(response_time) )"/>
  424. <xsl:value-of select="response_time"/>
  425. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  426. </xsl:for-each>
  427. <xsl:text>+----------------------------------------------------------------------------------+------------------------------------------------+</xsl:text>
  428. <xsl:value-of select="'&#xA;'"/>
  429. </xsl:for-each>
  430. <xsl:for-each select="report/table[@title='Slowest URLs']">
  431. +-----------------------------------------------------------------------------------------------------------------------------------+
  432. | 10 Slowest URLs |
  433. +----------------------------------------------------------------------------------+------------------------------------------------+
  434. | URL | SiteID Rate/sec Cached Resp Time(ms)|
  435. +----------------------------------------------------------------------------------+------------------------------------------------+
  436. <xsl:for-each select="url">
  437. <xsl:text>| </xsl:text>
  438. <xsl:value-of select="@name"/>
  439. <xsl:value-of select="substring($col, $offset - 80 + string-length(@name) )"/>
  440. <xsl:text>|</xsl:text>
  441. <xsl:value-of select="substring($col, $offset - 6 + string-length(site_id) )"/>
  442. <xsl:value-of select="site_id"/>
  443. <xsl:value-of select="substring($col, $offset - 11 + string-length(rate) )"/>
  444. <xsl:value-of select="rate"/>
  445. <xsl:value-of select="substring($col, $offset - 10 + string-length(cache_hit) )"/>
  446. <xsl:value-of select="cache_hit"/>
  447. <xsl:value-of select="substring($col, $offset - 13 + string-length(response_time) )"/>
  448. <xsl:value-of select="response_time"/>
  449. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  450. </xsl:for-each>
  451. <xsl:text>+----------------------------------------------------------------------------------+------------------------------------------------+</xsl:text>
  452. <xsl:value-of select="'&#xA;'"/>
  453. </xsl:for-each>
  454. <xsl:for-each select="report/table[@title='URLs with the Most CPU Usage']">
  455. +-----------------------------------------------------------------------------------------------------------------------------------+
  456. | 10 URLs with the Most CPU Usage |
  457. +----------------------------------------------------------------------------------+------------------------------------------------+
  458. | URL | SiteID Rate/sec CPU % |
  459. +----------------------------------------------------------------------------------+------------------------------------------------+
  460. <xsl:for-each select="url">
  461. <xsl:text>| </xsl:text>
  462. <xsl:value-of select="@name"/>
  463. <xsl:value-of select="substring($col, $offset - 80 + string-length(@name) )"/>
  464. <xsl:text>|</xsl:text>
  465. <xsl:value-of select="substring($col, $offset - 6 + string-length(site_id) )"/>
  466. <xsl:value-of select="site_id"/>
  467. <xsl:value-of select="substring($col, $offset - 17 + string-length(rate) )"/>
  468. <xsl:value-of select="rate"/>
  469. <xsl:value-of select="substring($col, $offset - 15 + string-length(cpu) )"/>
  470. <xsl:value-of select="cpu"/>
  471. <xsl:text>% |</xsl:text><xsl:value-of select="'&#xA;'"/>
  472. </xsl:for-each>
  473. <xsl:text>+----------------------------------------------------------------------------------+------------------------------------------------+</xsl:text>
  474. <xsl:value-of select="'&#xA;'"/>
  475. </xsl:for-each>
  476. <xsl:for-each select="report/table[@title='URLs with the Most Bytes Sent']">
  477. +-----------------------------------------------------------------------------------------------------------------------------------+
  478. | 10 URLs with the Most Bytes Sent |
  479. +----------------------------------------------------------------------------------+------------------------------------------------+
  480. | URL | SiteID Rate/sec Cached Bytes Sent/sec |
  481. +----------------------------------------------------------------------------------+------------------------------------------------+
  482. <xsl:for-each select="url">
  483. <xsl:text>| </xsl:text>
  484. <xsl:value-of select="@name"/>
  485. <xsl:value-of select="substring($col, $offset - 80 + string-length(@name) )"/>
  486. <xsl:text>|</xsl:text>
  487. <xsl:value-of select="substring($col, $offset - 6 + string-length(site_id) )"/>
  488. <xsl:value-of select="site_id"/>
  489. <xsl:value-of select="substring($col, $offset - 11 + string-length(rate) )"/>
  490. <xsl:value-of select="rate"/>
  491. <xsl:value-of select="substring($col, $offset - 10 + string-length(cache_hit) )"/>
  492. <xsl:value-of select="cache_hit"/>
  493. <xsl:value-of select="substring($col, $offset - 11 + string-length(bytes_sent_per_sec) )"/>
  494. <xsl:value-of select="bytes_sent_per_sec"/>
  495. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  496. </xsl:for-each>
  497. <xsl:text>+----------------------------------------------------------------------------------+------------------------------------------------+</xsl:text>
  498. <xsl:value-of select="'&#xA;'"/>
  499. </xsl:for-each>
  500. <xsl:for-each select="report/table[@title='Clients with the Most Requests']">
  501. +-----------------------------------------------------------------------------------------------------------------------------------+
  502. | 10 Clients with the Most Requests |
  503. +-----------------------------------------------------------------------------------------------------------------------------------+
  504. | IP Address Rate/sec Cached Resp Time (ms) |
  505. +-----------------------------------------------------------------------------------------------------------------------------------+
  506. <xsl:for-each select="client">
  507. <xsl:text>| </xsl:text>
  508. <xsl:value-of select="@ip"/>
  509. <xsl:value-of select="substring($col, $offset - 74 + string-length(@ip) + string-length(rate) )"/>
  510. <xsl:value-of select="rate"/>
  511. <xsl:value-of select="substring($col, $offset - 15 + string-length(cache_hit) )"/>
  512. <xsl:value-of select="cache_hit"/>
  513. <xsl:value-of select="substring($col, $offset - 25 + string-length(response_time) )"/>
  514. <xsl:value-of select="response_time"/>
  515. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  516. </xsl:for-each>
  517. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  518. <xsl:value-of select="'&#xA;'"/>
  519. </xsl:for-each>
  520. <xsl:for-each select="report/table[@title='Clients with the Slowest Responses']">
  521. +-----------------------------------------------------------------------------------------------------------------------------------+
  522. | 10 Clients with the Slowest Responses |
  523. +-----------------------------------------------------------------------------------------------------------------------------------+
  524. | IP Address Rate/sec Cached Resp Time (ms) |
  525. +-----------------------------------------------------------------------------------------------------------------------------------+
  526. <xsl:for-each select="client">
  527. <xsl:text>| </xsl:text>
  528. <xsl:value-of select="@ip"/>
  529. <xsl:value-of select="substring($col, $offset - 74 + string-length(@ip) + string-length(rate) )"/>
  530. <xsl:value-of select="rate"/>
  531. <xsl:value-of select="substring($col, $offset - 15 + string-length(cache_hit) )"/>
  532. <xsl:value-of select="cache_hit"/>
  533. <xsl:value-of select="substring($col, $offset - 25 + string-length(response_time) )"/>
  534. <xsl:value-of select="response_time"/>
  535. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  536. </xsl:for-each>
  537. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  538. <xsl:value-of select="'&#xA;'"/>
  539. </xsl:for-each>
  540. <xsl:for-each select="report/table[@title='Sites with the Most Requests']">
  541. +-----------------------------------------------------------------------------------------------------------------------------------+
  542. | 10 Sites with the Most Requests |
  543. +-----------------------------------------------------------------------------------------------------------------------------------+
  544. | Site ID Rates (/s) Resp Time (ms) Cached Requests Static File CGI ASP |
  545. +-----------------------------------------------------------------------------------------------------------------------------------+
  546. <xsl:for-each select="site">
  547. <xsl:text>| </xsl:text>
  548. <xsl:value-of select="substring($col, $offset - 8 + string-length(@id) )"/>
  549. <xsl:value-of select="@id"/>
  550. <xsl:value-of select="substring($col, $offset - 12 + string-length(rate) )"/>
  551. <xsl:value-of select="rate"/>
  552. <xsl:value-of select="substring($col, $offset - 35 + string-length(response_time) )"/>
  553. <xsl:value-of select="response_time"/>
  554. <xsl:value-of select="substring($col, $offset - 24 + string-length(cache_hits) )"/>
  555. <xsl:value-of select="cache_hits"/>
  556. <xsl:value-of select="substring($col, $offset - 14 + string-length(static) )"/>
  557. <xsl:value-of select="static"/>
  558. <xsl:value-of select="substring($col, $offset - 13 + string-length(cgi) )"/>
  559. <xsl:value-of select="cgi"/>
  560. <xsl:value-of select="substring($col, $offset - 12 + string-length(asp) )"/>
  561. <xsl:value-of select="asp"/>
  562. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  563. </xsl:for-each>
  564. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  565. <xsl:value-of select="'&#xA;'"/>
  566. </xsl:for-each>
  567. <xsl:for-each select="report/table[@title='Sites with the Slowest Responses']">
  568. +-----------------------------------------------------------------------------------------------------------------------------------+
  569. | 10 Sites with the Slowest Responses |
  570. +-----------------------------------------------------------------------------------------------------------------------------------+
  571. | Site ID Rates/sec Resp Time (ms) Cached Requests Static File CGI ASP |
  572. +-----------------------------------------------------------------------------------------------------------------------------------+
  573. <xsl:for-each select="site">
  574. <xsl:text>| </xsl:text>
  575. <xsl:value-of select="substring($col, $offset - 8 + string-length(@id) )"/>
  576. <xsl:value-of select="@id"/>
  577. <xsl:value-of select="substring($col, $offset - 12 + string-length(rate) )"/>
  578. <xsl:value-of select="rate"/>
  579. <xsl:value-of select="substring($col, $offset - 35 + string-length(response_time) )"/>
  580. <xsl:value-of select="response_time"/>
  581. <xsl:value-of select="substring($col, $offset - 24 + string-length(cache_hits) )"/>
  582. <xsl:value-of select="cache_hits"/>
  583. <xsl:value-of select="substring($col, $offset - 14 + string-length(static) )"/>
  584. <xsl:value-of select="static"/>
  585. <xsl:value-of select="substring($col, $offset - 13 + string-length(cgi) )"/>
  586. <xsl:value-of select="cgi"/>
  587. <xsl:value-of select="substring($col, $offset - 12 + string-length(asp) )"/>
  588. <xsl:value-of select="asp"/>
  589. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  590. </xsl:for-each>
  591. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  592. <xsl:value-of select="'&#xA;'"/>
  593. </xsl:for-each>
  594. <xsl:for-each select="report/table[@title='Sites with the Most CPU Time Usage']">
  595. +-----------------------------------------------------------------------------------------------------------------------------------+
  596. | 10 Sites with the Most CPU Time Usage |
  597. +-----------------------------------------------------------------------------------------------------------------------------------+
  598. | Site ID Rate/sec Cached Resp Time (ms) CPU Time (ms) % CPU |
  599. +-----------------------------------------------------------------------------------------------------------------------------------+
  600. <xsl:for-each select="site">
  601. <xsl:text>| </xsl:text>
  602. <xsl:value-of select="substring($col, $offset - 8 + string-length(@id) )"/>
  603. <xsl:value-of select="@id"/>
  604. <xsl:value-of select="substring($col, $offset - 12 + string-length(rate) )"/>
  605. <xsl:value-of select="rate"/>
  606. <xsl:value-of select="substring($col, $offset - 13 + string-length(cache_hits) )"/>
  607. <xsl:value-of select="cache_hits"/>
  608. <xsl:value-of select="substring($col, $offset - 20 + string-length(response_time) )"/>
  609. <xsl:value-of select="response_time"/>
  610. <xsl:value-of select="substring($col, $offset - 24 + string-length(cpu_time) )"/>
  611. <xsl:value-of select="cpu_time"/>
  612. <xsl:value-of select="substring($col, $offset - 28 + string-length(cpu) )"/>
  613. <xsl:value-of select="cpu"/>
  614. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  615. </xsl:for-each>
  616. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  617. <xsl:value-of select="'&#xA;'"/>
  618. </xsl:for-each>
  619. <xsl:for-each select="report/table[@title='Sites with the Most Bytes Sent']">
  620. +-----------------------------------------------------------------------------------------------------------------------------------+
  621. | 10 Sites with the Most Bytes Sent |
  622. +-----------------------------------------------------------------------------------------------------------------------------------+
  623. | Site ID Rate/sec Bytes Sent/sec Cached Requests Static File CGI ASP |
  624. +-----------------------------------------------------------------------------------------------------------------------------------+
  625. <xsl:for-each select="site">
  626. <xsl:text>| </xsl:text>
  627. <xsl:value-of select="substring($col, $offset - 8 + string-length(@id) )"/>
  628. <xsl:value-of select="@id"/>
  629. <xsl:value-of select="substring($col, $offset - 12 + string-length(rate) )"/>
  630. <xsl:value-of select="rate"/>
  631. <xsl:value-of select="substring($col, $offset - 35 + string-length(bytes) )"/>
  632. <xsl:value-of select="bytes"/>
  633. <xsl:value-of select="substring($col, $offset - 24 + string-length(cache_hits) )"/>
  634. <xsl:value-of select="cache_hits"/>
  635. <xsl:value-of select="substring($col, $offset - 14 + string-length(static) )"/>
  636. <xsl:value-of select="static"/>
  637. <xsl:value-of select="substring($col, $offset - 13 + string-length(cgi) )"/>
  638. <xsl:value-of select="cgi"/>
  639. <xsl:value-of select="substring($col, $offset - 12 + string-length(asp) )"/>
  640. <xsl:value-of select="asp"/>
  641. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  642. </xsl:for-each>
  643. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  644. <xsl:value-of select="'&#xA;'"/>
  645. </xsl:for-each>
  646. <xsl:for-each select="report/table[@title='Transaction Statistics']">
  647. +-----------------------------------------------------------------------------------------------------------------------------------+
  648. | Transaction Statistics |
  649. +-----------------------------------------------------------------------------------------------------------------------------------+
  650. | Transaction Trans Response Transaction CPU % Disk/Trans Tcp/Trans |
  651. | Time(ms) Rate/sec Reads Writes Sends Receives |
  652. +-----------------------------------------------------------------------------------------------------------------------------------+
  653. <xsl:for-each select="transaction">
  654. <xsl:text>| </xsl:text>
  655. <xsl:value-of select="@name"/>
  656. <xsl:value-of select="substring($col, $offset - 40 + string-length(@name) )"/>
  657. <xsl:value-of select="substring($col, $offset - 10 + string-length(count) )"/>
  658. <xsl:value-of select="count"/>
  659. <xsl:value-of select="substring($col, $offset - 9 + string-length(response_time) )"/>
  660. <xsl:value-of select="response_time"/>
  661. <xsl:value-of select="substring($col, $offset - 11 + string-length(rate) )"/>
  662. <xsl:value-of select="rate"/>
  663. <xsl:value-of select="substring($col, $offset - 11 + string-length(cpu) )"/>
  664. <xsl:value-of select="cpu"/>
  665. <xsl:value-of select="substring($col, $offset - 9 + string-length(disk_read_per_trans) )"/>
  666. <xsl:value-of select="disk_read_per_trans"/>
  667. <xsl:value-of select="substring($col, $offset - 9 + string-length(disk_write_per_trans) )"/>
  668. <xsl:value-of select="disk_write_per_trans"/>
  669. <xsl:value-of select="substring($col, $offset - 9 + string-length(tcp_send_per_trans) )"/>
  670. <xsl:value-of select="tcp_send_per_trans"/>
  671. <xsl:value-of select="substring($col, $offset - 7 + string-length(tcp_recv_per_trans) )"/>
  672. <xsl:value-of select="tcp_recv_per_trans"/>
  673. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  674. </xsl:for-each>
  675. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  676. <xsl:value-of select="'&#xA;'"/>
  677. </xsl:for-each>
  678. <xsl:for-each select="report/table[@title='Transaction CPU Utilization']">
  679. +-----------------------------------------------------------------------------------------------------------------------------------+
  680. | Transaction CPU Utilization |
  681. +-----------------------------------------------------------------------------------------------------------------------------------+
  682. | Transaction Trans/sec Minimum CPU(ms) Maximum CPU(ms) Per Transaction(ms) Total(ms) CPU% |
  683. | Kernel User Kernel User Kernel User Kernel User |
  684. +-----------------------------------------------------------------------------------------------------------------------------------+
  685. <xsl:for-each select="transaction">
  686. <xsl:text>| </xsl:text>
  687. <xsl:value-of select="@name"/>
  688. <xsl:value-of select="substring($col, $offset - 38 + string-length(@name) )"/>
  689. <xsl:value-of select="substring($col, $offset - 8 + string-length(rate) )"/>
  690. <xsl:value-of select="rate"/>
  691. <xsl:value-of select="substring($col, $offset - 8 + string-length(min_kernel) )"/>
  692. <xsl:value-of select="min_kernel"/>
  693. <xsl:value-of select="substring($col, $offset - 8 + string-length(min_user) )"/>
  694. <xsl:value-of select="min_user"/>
  695. <xsl:value-of select="substring($col, $offset - 8 + string-length(max_kernel) )"/>
  696. <xsl:value-of select="max_kernel"/>
  697. <xsl:value-of select="substring($col, $offset - 8 + string-length(max_user) )"/>
  698. <xsl:value-of select="max_user"/>
  699. <xsl:value-of select="substring($col, $offset - 8 + string-length(per_trans_kernel) )"/>
  700. <xsl:value-of select="per_trans_kernel"/>
  701. <xsl:value-of select="substring($col, $offset - 8 + string-length(per_trans_user) )"/>
  702. <xsl:value-of select="per_trans_user"/>
  703. <xsl:value-of select="substring($col, $offset - 9 + string-length(total_kernel) )"/>
  704. <xsl:value-of select="total_kernel"/>
  705. <xsl:value-of select="substring($col, $offset - 9 + string-length(total_user) )"/>
  706. <xsl:value-of select="total_user"/>
  707. <xsl:value-of select="substring($col, $offset - 6 + string-length(cpu) )"/>
  708. <xsl:value-of select="cpu"/>
  709. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  710. </xsl:for-each>
  711. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  712. <xsl:value-of select="'&#xA;'"/>
  713. </xsl:for-each>
  714. <xsl:for-each select="report/table[@title='Transaction Instance (Job) Statistics']">
  715. +-----------------------------------------------------------------------------------------------------------------------------------+
  716. | Transaction Instance (Job) Statistics |
  717. +-----------------------------------------------------------------------------------------------------------------------------------+
  718. | Job Id Start Time Dequeue Time End Time Resp Time(ms) CPU Time(ms) |
  719. +-----------------------------------------------------------------------------------------------------------------------------------+
  720. <xsl:for-each select="job">
  721. <xsl:text>| </xsl:text>
  722. <xsl:value-of select="@id"/>
  723. <xsl:value-of select="substring($col, $offset - 6 + string-length(@id) )"/>
  724. <xsl:value-of select="substring($col, $offset - 13 + string-length(start) )"/>
  725. <xsl:value-of select="start"/>
  726. <xsl:value-of select="substring($col, $offset - 14 + string-length(dequeue) )"/>
  727. <xsl:value-of select="dequeue"/>
  728. <xsl:value-of select="substring($col, $offset - 13 + string-length(end) )"/>
  729. <xsl:value-of select="end"/>
  730. <xsl:value-of select="substring($col, $offset - 9 + string-length(response_time) )"/>
  731. <xsl:value-of select="response_time"/>
  732. <xsl:value-of select="substring($col, $offset - 13 + string-length(cpu) )"/>
  733. <xsl:value-of select="cpu"/>
  734. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  735. </xsl:for-each>
  736. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text><xsl:value-of select="'&#xA;'"/>
  737. <xsl:text>| </xsl:text>
  738. <xsl:value-of select="substring($col, $offset - 6 + string-length(count(job)) )"/>
  739. <xsl:value-of select="count(job)"/>
  740. <xsl:value-of select="substring($col, $offset - 53 + string-length(format-number( sum(job/response_time) div count(job), '#' )) )"/>
  741. <xsl:value-of select="format-number( sum(job/response_time) div count(job), '#' )"/>
  742. <xsl:value-of select="substring($col, $offset - 13 + string-length(sum(job/cpu)) )"/>
  743. <xsl:value-of select="sum(job/cpu)"/>
  744. <xsl:text> |</xsl:text>
  745. +-----------------------------------------------------------------------------------------------------------------------------------+
  746. </xsl:for-each>
  747. <xsl:for-each select="report/table[@title='Spooler Transaction Instance (Job) Data']">
  748. +-----------------------------------------------------------------------------------------------------------------------------------+
  749. | Spooler Transaction Instance (Job) Data |
  750. +-----------------------------------------------------------------------------------------------------------------------------------+
  751. | Job Id Type Job Size(Kb) Pages PPS Files GdiSize Color XRes YRes Qlty Copy TTOpt Threads |
  752. +-----------------------------------------------------------------------------------------------------------------------------------+
  753. <xsl:for-each select="job">
  754. <xsl:text>| </xsl:text>
  755. <xsl:value-of select="@id"/>
  756. <xsl:value-of select="substring($col, $offset - 5 + string-length(@id) )"/>
  757. <xsl:value-of select="substring($col, $offset - 10 + string-length(type) )"/>
  758. <xsl:value-of select="type"/>
  759. <xsl:value-of select="substring($col, $offset - 9 + string-length(size) )"/>
  760. <xsl:value-of select="size"/>
  761. <xsl:value-of select="substring($col, $offset - 10 + string-length(pages) )"/>
  762. <xsl:value-of select="pages"/>
  763. <xsl:value-of select="substring($col, $offset - 6 + string-length(PPS) )"/>
  764. <xsl:value-of select="PPS"/>
  765. <xsl:value-of select="substring($col, $offset - 8 + string-length(files) )"/>
  766. <xsl:value-of select="files"/>
  767. <xsl:value-of select="substring($col, $offset - 8 + string-length(gdisize) )"/>
  768. <xsl:value-of select="gdisize"/>
  769. <xsl:value-of select="substring($col, $offset - 8 + string-length(color) )"/>
  770. <xsl:value-of select="color"/>
  771. <xsl:value-of select="substring($col, $offset - 8 + string-length(xres) )"/>
  772. <xsl:value-of select="xres"/>
  773. <xsl:value-of select="substring($col, $offset - 8 + string-length(yres) )"/>
  774. <xsl:value-of select="yres"/>
  775. <xsl:value-of select="substring($col, $offset - 8 + string-length(qlty) )"/>
  776. <xsl:value-of select="qlty"/>
  777. <xsl:value-of select="substring($col, $offset - 7+ string-length(copies) )"/>
  778. <xsl:value-of select="copies"/>
  779. <xsl:value-of select="substring($col, $offset - 7+ string-length(ttopt) )"/>
  780. <xsl:value-of select="ttopt"/>
  781. <xsl:value-of select="substring($col, $offset - 8 + string-length(threads) )"/>
  782. <xsl:value-of select="threads"/>
  783. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  784. </xsl:for-each>
  785. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text><xsl:value-of select="'&#xA;'"/>
  786. </xsl:for-each>
  787. <xsl:for-each select="report/table[@title='Exclusive Transactions Per Process']">
  788. +-----------------------------------------------------------------------------------------------------------------------------------+
  789. | Exclusive Transactions Per Process |
  790. +-----------------------------------------------------------------------------------------------------------------------------------+
  791. | Exclusive/Trans CPU(ms) |
  792. | Name PID Trans Trans/sec Kernel User Process CPU% CPU% |
  793. +-----------------------------------------------------------------------------------------------------------------------------------+
  794. <xsl:for-each select="process">
  795. <xsl:text>| </xsl:text>
  796. <xsl:value-of select="@name"/>
  797. <xsl:value-of select="substring($col, $offset - 20 + string-length(@name) )"/>
  798. <xsl:value-of select="pid"/>
  799. <xsl:value-of select="substring($col, $offset - 108 + string-length(pid) )"/>
  800. <xsl:text>|</xsl:text><xsl:value-of select="'&#xA;'"/>
  801. <xsl:for-each select="transaction">
  802. <xsl:text>| </xsl:text>
  803. <xsl:value-of select="@name"/>
  804. <xsl:value-of select="substring($col, $offset - 40 + string-length(@name) )"/>
  805. <xsl:value-of select="substring($col, $offset - 10 + string-length(count) )"/>
  806. <xsl:value-of select="count"/>
  807. <xsl:value-of select="substring($col, $offset - 9 + string-length(rate) )"/>
  808. <xsl:value-of select="rate"/>
  809. <xsl:value-of select="substring($col, $offset - 11 + string-length(kernel) )"/>
  810. <xsl:value-of select="kernel"/>
  811. <xsl:value-of select="substring($col, $offset - 11 + string-length(user) )"/>
  812. <xsl:value-of select="user"/>
  813. <xsl:value-of select="substring($col, $offset - 12 + string-length(process_cpu) )"/>
  814. <xsl:value-of select="process_cpu"/>
  815. <xsl:value-of select="substring($col, $offset - 15 + string-length(cpu) )"/>
  816. <xsl:value-of select="cpu"/>
  817. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  818. </xsl:for-each>
  819. <xsl:text>| ------- ------ |</xsl:text>
  820. <xsl:value-of select="'&#xA;'"/>
  821. <xsl:text>|</xsl:text>
  822. <xsl:value-of select="substring($col, $offset - 104 + string-length(format-number( sum(transaction/process_cpu), '0.00' )) )"/>
  823. <xsl:value-of select="format-number( sum(transaction/process_cpu), '0.00' )"/><xsl:text>%</xsl:text>
  824. <xsl:value-of select="substring($col, $offset - 14 + string-length(format-number( sum(transaction/cpu), '0.00' )) )"/>
  825. <xsl:value-of select="format-number( sum(transaction/cpu), '0.00' )"/><xsl:text>%</xsl:text>
  826. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  827. <xsl:text>| |</xsl:text>
  828. <xsl:value-of select="'&#xA;'"/>
  829. </xsl:for-each>
  830. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  831. <xsl:value-of select="'&#xA;'"/>
  832. </xsl:for-each>
  833. <xsl:for-each select="report/table[@title='Inclusive Transactions Per Process']">
  834. +-----------------------------------------------------------------------------------------------------------------------------------+
  835. | Inclusive Transactions Per Process |
  836. +-----------------------------------------------------------------------------------------------------------------------------------+
  837. | Inclusive (ms) |
  838. | Name PID Count Kernel User |
  839. +-----------------------------------------------------------------------------------------------------------------------------------+
  840. <xsl:for-each select="process">
  841. <xsl:text>| </xsl:text>
  842. <xsl:value-of select="@name"/>
  843. <xsl:value-of select="substring($col, $offset - 30 + string-length(@name) )"/>
  844. <xsl:value-of select="pid"/>
  845. <xsl:value-of select="substring($col, $offset - 98 + string-length(pid) )"/>
  846. <xsl:text>|</xsl:text><xsl:value-of select="'&#xA;'"/>
  847. <xsl:for-each select=".//transaction">
  848. <xsl:text>| </xsl:text>
  849. <xsl:value-of select="substring($col, $offset - (@level * 2) )"/>
  850. <xsl:value-of select="@name"/>
  851. <xsl:value-of select="substring($col, $offset - 60 + string-length(@name) + (@level * 2) )"/>
  852. <xsl:value-of select="substring($col, $offset - 10 + string-length(count) )"/>
  853. <xsl:value-of select="count"/>
  854. <xsl:value-of select="substring($col, $offset - 10 + string-length(kernel) )"/>
  855. <xsl:value-of select="kernel"/>
  856. <xsl:value-of select="substring($col, $offset - 13 + string-length(user) )"/>
  857. <xsl:value-of select="user"/>
  858. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  859. </xsl:for-each>
  860. </xsl:for-each>
  861. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  862. <xsl:value-of select="'&#xA;'"/>
  863. </xsl:for-each>
  864. <xsl:for-each select="report/table[@title='Image Statistics']">
  865. +-----------------------------------------------------------------------------------------------------------------------------------+
  866. | Image Statistics |
  867. +-----------------------------------------------------------------------------------------------------------------------------------+
  868. | Image Name PID Threads Process(ms) Transaction(ms) CPU% |
  869. | Launched Used Kernel User Kernel User |
  870. +-----------------------------------------------------------------------------------------------------------------------------------+
  871. <xsl:for-each select="image">
  872. <xsl:sort select="cpu" data-type="number" order="descending"/>
  873. <xsl:if test="position() != 1"><xsl:value-of select="'&#xA;'"/></xsl:if>
  874. <xsl:text>| </xsl:text>
  875. <xsl:value-of select="@name"/><xsl:value-of select="substring($col, $offset - 22 + string-length(@name) )"/>
  876. <xsl:value-of select="pid"/><xsl:value-of select="substring($col, $offset - 9 + string-length(threads) )"/>
  877. <xsl:value-of select="threads"/><xsl:value-of select="substring($col, $offset - 9 + string-length(used_threads) )"/>
  878. <xsl:value-of select="used_threads"/><xsl:value-of select="substring($col, $offset - 10 + string-length(process_kernel) )"/>
  879. <xsl:value-of select="process_kernel"/><xsl:value-of select="substring($col, $offset - 10 + string-length(process_user) )"/>
  880. <xsl:value-of select="process_user"/><xsl:value-of select="substring($col, $offset - 10 + string-length(transaction_kernel) )"/>
  881. <xsl:value-of select="transaction_kernel"/><xsl:value-of select="substring($col, $offset - 10 + string-length(transaction_user) )"/>
  882. <xsl:value-of select="transaction_user"/><xsl:value-of select="substring($col, $offset - 15 + string-length(cpu) )"/>
  883. <xsl:value-of select="cpu"/>
  884. <xsl:text> |</xsl:text>
  885. </xsl:for-each>
  886. +-----------------------------------------------------------------------------------------------------------------------------------+
  887. <xsl:text>|</xsl:text><xsl:value-of select="substring($col, $offset - 43 + string-length(string(sum(image/threads))) )"/>
  888. <xsl:value-of select="sum(image/threads)"/><xsl:value-of select="substring($col, $offset - 9 + string-length(string(sum(image/used_threads))) )"/>
  889. <xsl:value-of select="sum(image/used_threads)"/><xsl:value-of select="substring($col, $offset - 10 + string-length(string(sum(image/process_kernel))) )"/>
  890. <xsl:value-of select="sum(image/process_kernel)"/><xsl:value-of select="substring($col, $offset - 10 + string-length(string(sum(image/process_user))) )"/>
  891. <xsl:value-of select="sum(image/process_user)"/><xsl:value-of select="substring($col, $offset - 10 + string-length(string(sum(image/transaction_kernel))) )"/>
  892. <xsl:value-of select="sum(image/transaction_kernel)"/><xsl:value-of select="substring($col, $offset - 10 + string-length(string(sum(image/transaction_user))) )"/>
  893. <xsl:value-of select="sum(image/transaction_user)"/><xsl:value-of select="substring($col, $offset - 15 + string-length(string(format-number(sum(image/cpu), '#.00'))) )"/>
  894. <xsl:value-of select="format-number(sum(image/cpu), '#.00')"/>
  895. <xsl:text>% |</xsl:text>
  896. +-----------------------------------------------------------------------------------------------------------------------------------+
  897. </xsl:for-each>
  898. <xsl:for-each select="report/table[@title='Disk Totals']">
  899. +-----------------------------------------------------------------------------------------------------------------------------------+
  900. | Disk Totals |
  901. +-----------------------------------------------------------------------------------------------------------------------------------+
  902. | Disk Name Read Rate/sec Kb/Read Write Rate/sec Kb/Write |
  903. +-----------------------------------------------------------------------------------------------------------------------------------+
  904. <xsl:for-each select="disk">
  905. <xsl:text>|</xsl:text>
  906. <xsl:value-of select="substring($col, $offset - 6 + string-length(@number) )"/>
  907. <xsl:value-of select="@number"/>
  908. <xsl:value-of select="substring($col, $offset - 19 + string-length(read_rate) )"/>
  909. <xsl:value-of select="read_rate"/>
  910. <xsl:value-of select="substring($col, $offset - 30 + string-length(read_size) )"/>
  911. <xsl:value-of select="read_size"/>
  912. <xsl:value-of select="substring($col, $offset - 25 + string-length(write_rate) )"/>
  913. <xsl:value-of select="write_rate"/>
  914. <xsl:value-of select="substring($col, $offset - 31 + string-length(write_size) )"/>
  915. <xsl:value-of select="write_size"/>
  916. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  917. </xsl:for-each>
  918. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  919. <xsl:value-of select="'&#xA;'"/>
  920. </xsl:for-each>
  921. <xsl:for-each select="report/table[@title='Disk']">
  922. +-----------------------------------------------------------------------------------------------------------------------------------+
  923. | Disk <xsl:value-of select="@number"/><xsl:value-of select="substring($col, $offset - 112 + string-length(@number) )"/> |
  924. +-----------------------------------------------------------------------------------------------------------------------------------+
  925. | Image Name PID Authority Read Write |
  926. | Rate/sec Kb/Read Rate/sec Kb/Write |
  927. +-----------------------------------------------------------------------------------------------------------------------------------+
  928. <xsl:for-each select="image">
  929. <xsl:text>| </xsl:text>
  930. <xsl:value-of select="@name"/>
  931. <xsl:value-of select="substring($col, $offset - 20 + string-length(@name) )"/>
  932. <xsl:value-of select="pid"/>
  933. <xsl:text> </xsl:text>
  934. <xsl:value-of select="authority"/>
  935. <xsl:value-of select="substring($col, $offset - 32 + string-length(authority) )"/>
  936. <xsl:value-of select="substring($col, $offset - 6 + string-length(read_rate) )"/>
  937. <xsl:value-of select="read_rate"/>
  938. <xsl:value-of select="substring($col, $offset - 13 + string-length(read_size) )"/>
  939. <xsl:value-of select="read_size"/>
  940. <xsl:value-of select="substring($col, $offset - 12 + string-length(write_rate) )"/>
  941. <xsl:value-of select="write_rate"/>
  942. <xsl:value-of select="substring($col, $offset - 11 + string-length(write_size) )"/>
  943. <xsl:value-of select="write_size"/>
  944. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  945. </xsl:for-each>
  946. <xsl:text>+-----------------------------------------------------------------------------------------------------------------------------------+</xsl:text>
  947. <xsl:value-of select="'&#xA;'"/>
  948. </xsl:for-each>
  949. <xsl:for-each select="report/table[@title='Files Causing Most Disk IOs']">
  950. +-----------------------------------------------------------------------------------------------------------------------------------+
  951. | 10 Files Causing Most Disk IOs |
  952. +-----------------------------------------------------------------------------------------------+-----------------------------------+
  953. | Disk Drive File Name | Read Kb/ Write Kb/ |
  954. | Process Name ID |Rate/sec Read Rate/sec Write|
  955. +-----------------------------------------------------------------------------------------------+-----------------------------------+
  956. <xsl:for-each select="file">
  957. <xsl:text>| </xsl:text>
  958. <xsl:value-of select="substring($col, $offset - 3 + string-length(disk) )"/>
  959. <xsl:value-of select="disk"/><xsl:text> </xsl:text>
  960. <xsl:value-of select="drive"/><xsl:value-of select="@name"/>
  961. <xsl:value-of select="substring($col, $offset - 82 + (string-length(@name)+string-length(drive)) )"/><xsl:text>|</xsl:text>
  962. <xsl:value-of select="substring($col, $offset - 7 + string-length(read_rate) )"/>
  963. <xsl:value-of select="read_rate"/>
  964. <xsl:value-of select="substring($col, $offset - 8 + string-length(read_size) )"/>
  965. <xsl:value-of select="read_size"/>
  966. <xsl:value-of select="substring($col, $offset - 7 + string-length(write_rate) )"/>
  967. <xsl:value-of select="write_rate"/>
  968. <xsl:value-of select="substring($col, $offset - 8 + string-length(write_size) )"/>
  969. <xsl:value-of select="write_size"/>
  970. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  971. <xsl:for-each select="image">
  972. <xsl:text>| </xsl:text>
  973. <xsl:value-of select="@name"/>
  974. <xsl:value-of select="substring($col, $offset - 18 + string-length(@name) )"/>
  975. <xsl:value-of select="pid"/>
  976. <xsl:value-of select="substring($col, $offset - 58 + string-length(pid) )"/><xsl:text>|</xsl:text>
  977. <xsl:value-of select="substring($col, $offset - 7 + string-length(read_rate) )"/>
  978. <xsl:value-of select="read_rate"/>
  979. <xsl:value-of select="substring($col, $offset - 8 + string-length(read_size) )"/>
  980. <xsl:value-of select="read_size"/>
  981. <xsl:value-of select="substring($col, $offset - 7 + string-length(write_rate) )"/>
  982. <xsl:value-of select="write_rate"/>
  983. <xsl:value-of select="substring($col, $offset - 8 + string-length(write_size) )"/>
  984. <xsl:value-of select="write_size"/>
  985. <xsl:text> |</xsl:text><xsl:value-of select="'&#xA;'"/>
  986. </xsl:for-each>
  987. <xsl:text>| | |</xsl:text><xsl:value-of select="'&#xA;'"/>
  988. </xsl:for-each>
  989. <xsl:text>+-----------------------------------------------------------------------------------------------+-----------------------------------+</xsl:text>
  990. <xsl:value-of select="'&#xA;'"/>
  991. </xsl:for-each>
  992. </xsl:template>
  993. </xsl:stylesheet>