webroar 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. data/CHANGELOG +7 -0
  2. data/README +1 -1
  3. data/doc/user-guide.html +125 -85
  4. data/doc/user-guide.txt +2 -2
  5. data/lib/constant.rb +23 -16
  6. data/lib/db_connect.rb +2 -3
  7. data/lib/installer.rb +17 -10
  8. data/lib/user_interaction.rb +21 -10
  9. data/lib/webroar_command.rb +21 -23
  10. data/src/admin_panel/Gemfile +8 -0
  11. data/src/admin_panel/Rakefile +2 -5
  12. data/src/admin_panel/app/controllers/application_controller.rb +1 -1
  13. data/src/admin_panel/app/controllers/exceptions_controller.rb +25 -26
  14. data/src/admin_panel/app/controllers/graph_controller.rb +2 -1
  15. data/src/admin_panel/app/helpers/admin_helper.rb +1 -1
  16. data/src/admin_panel/app/{models → mailers}/mailer.rb +5 -8
  17. data/src/admin_panel/app/models/app.rb +1 -1
  18. data/src/admin_panel/app/models/app_exception.rb +15 -11
  19. data/src/admin_panel/app/models/app_time_sample.rb +40 -10
  20. data/src/admin_panel/app/models/application_specification.rb +71 -41
  21. data/src/admin_panel/app/models/resource_usage.rb +76 -55
  22. data/src/admin_panel/app/models/url_breakup_time_sample.rb +6 -11
  23. data/src/admin_panel/app/models/url_time_sample.rb +57 -13
  24. data/src/admin_panel/app/views/admin/_application_table.html.erb +5 -5
  25. data/src/admin_panel/app/views/admin/_feedback_partial.html.erb +4 -4
  26. data/src/admin_panel/app/views/admin/_report_bug_partial.html.erb +5 -5
  27. data/src/admin_panel/app/views/admin/change_password_form.html.erb +3 -3
  28. data/src/admin_panel/app/views/admin/configuration.html.erb +6 -6
  29. data/src/admin_panel/app/views/admin/home.html.erb +4 -4
  30. data/src/admin_panel/app/views/admin/index.html.erb +5 -5
  31. data/src/admin_panel/app/views/application_specification/_application_specification_form.html.erb +15 -6
  32. data/src/admin_panel/app/views/exceptions/_add_and_list_exception_classes.html.erb +7 -6
  33. data/src/admin_panel/app/views/exceptions/_exception_backtrace_partial.html.erb +1 -1
  34. data/src/admin_panel/app/views/exceptions/_exception_environment_partial.html.erb +30 -30
  35. data/src/admin_panel/app/views/exceptions/_exception_list_partial.html.erb +11 -11
  36. data/src/admin_panel/app/views/exceptions/_show.html.erb +8 -8
  37. data/src/admin_panel/app/views/exceptions/index.html.erb +0 -1
  38. data/src/admin_panel/app/views/graph/_get_database_data.html.erb +1 -1
  39. data/src/admin_panel/app/views/graph/_get_resource_usage_data_app.html.erb +2 -2
  40. data/src/admin_panel/app/views/graph/_get_resource_usage_data_server.html.erb +2 -2
  41. data/src/admin_panel/app/views/graph/_get_throughput_data.html.erb +2 -2
  42. data/src/admin_panel/app/views/graph/_get_url_data.html.erb +4 -4
  43. data/src/admin_panel/app/views/graph/_pie.html.erb +2 -2
  44. data/src/admin_panel/app/views/graph/_query_date.html.erb +1 -1
  45. data/src/admin_panel/app/views/graph/_query_period.html.erb +1 -1
  46. data/src/admin_panel/app/views/graph/_slider_partial.html.erb +5 -4
  47. data/src/admin_panel/app/views/graph/index.html.erb +0 -1
  48. data/src/admin_panel/app/views/headers/_add_expires_text_box.html.erb +5 -5
  49. data/src/admin_panel/app/views/headers/_expires_by_type_form.html.erb +1 -1
  50. data/src/admin_panel/app/views/headers/_headers_table.html.erb +12 -12
  51. data/src/admin_panel/app/views/layouts/application.html.erb +71 -51
  52. data/src/admin_panel/app/views/mail_specification/_current_spec.html.erb +4 -4
  53. data/src/admin_panel/app/views/mail_specification/_sendmail_form.html.erb +3 -3
  54. data/src/admin_panel/app/views/mail_specification/_smtp_form.html.erb +3 -3
  55. data/src/admin_panel/app/views/server_specification/_add_div.html.erb +4 -4
  56. data/src/admin_panel/app/views/server_specification/_ssl_support_form.html.erb +3 -2
  57. data/src/admin_panel/config.ru +4 -0
  58. data/src/admin_panel/config/application.rb +46 -0
  59. data/src/admin_panel/config/boot.rb +4 -112
  60. data/src/admin_panel/config/environment.rb +4 -85
  61. data/src/admin_panel/config/environments/development.rb +20 -13
  62. data/src/admin_panel/config/environments/production.rb +44 -17
  63. data/src/admin_panel/config/environments/test.rb +31 -18
  64. data/src/admin_panel/config/initializers/application_constants.rb +13 -11
  65. data/src/admin_panel/config/initializers/secret_token.rb +7 -0
  66. data/src/admin_panel/config/initializers/session_store.rb +8 -0
  67. data/src/admin_panel/config/initializers/ssl.rb +6 -2
  68. data/src/admin_panel/config/routes.rb +15 -57
  69. data/src/admin_panel/doc/README_FOR_APP +1 -1
  70. data/src/admin_panel/doc/app/ActionView.html +229 -0
  71. data/src/admin_panel/doc/app/ActionView/Helpers.html +229 -0
  72. data/src/admin_panel/doc/app/ActionView/Helpers/AssetTagHelper.html +277 -0
  73. data/src/admin_panel/doc/app/AdminController.html +814 -0
  74. data/src/admin_panel/doc/app/AdminHelper.html +495 -0
  75. data/src/admin_panel/doc/app/Analytics.html +272 -0
  76. data/src/admin_panel/doc/app/Analytics/Database.html +401 -0
  77. data/src/admin_panel/doc/app/Analytics/ResourceUsage.html +683 -0
  78. data/src/admin_panel/doc/app/Analytics/Throughput.html +488 -0
  79. data/src/admin_panel/doc/app/Analytics/Url.html +484 -0
  80. data/src/admin_panel/doc/app/Analytics/UrlBreakup.html +537 -0
  81. data/src/admin_panel/doc/app/App.html +489 -0
  82. data/src/admin_panel/doc/app/AppException.html +710 -0
  83. data/src/admin_panel/doc/app/AppTimeSample.html +620 -0
  84. data/src/admin_panel/doc/app/ApplicationController.html +239 -0
  85. data/src/admin_panel/doc/app/ApplicationHelper.html +296 -0
  86. data/src/admin_panel/doc/app/ApplicationSpecification.html +876 -0
  87. data/src/admin_panel/doc/app/ApplicationSpecificationController.html +552 -0
  88. data/src/admin_panel/doc/app/ApplicationSpecificationHelper.html +219 -0
  89. data/src/admin_panel/doc/app/Control.html +431 -0
  90. data/src/admin_panel/doc/app/ExceptionDetail.html +227 -0
  91. data/src/admin_panel/doc/app/ExceptionsController.html +754 -0
  92. data/src/admin_panel/doc/app/ExceptionsHelper.html +219 -0
  93. data/src/admin_panel/doc/app/GraphController.html +1101 -0
  94. data/src/admin_panel/doc/app/GraphHelper.html +285 -0
  95. data/src/admin_panel/doc/app/Headers.html +549 -0
  96. data/src/admin_panel/doc/app/HeadersController.html +507 -0
  97. data/src/admin_panel/doc/app/HeadersHelper.html +219 -0
  98. data/src/admin_panel/doc/app/MailSpecification.html +685 -0
  99. data/src/admin_panel/doc/app/MailSpecificationController.html +541 -0
  100. data/src/admin_panel/doc/app/MailSpecificationHelper.html +219 -0
  101. data/src/admin_panel/doc/app/Mailer.html +589 -0
  102. data/src/admin_panel/doc/app/Object.html +240 -0
  103. data/src/admin_panel/doc/app/PseudoModel.html +354 -0
  104. data/src/admin_panel/doc/app/ResourceUsage.html +656 -0
  105. data/src/admin_panel/doc/app/SCGI.html +674 -0
  106. data/src/admin_panel/doc/app/ServerSpecification.html +479 -0
  107. data/src/admin_panel/doc/app/ServerSpecificationController.html +500 -0
  108. data/src/admin_panel/doc/app/ServerSpecificationHelper.html +219 -0
  109. data/src/admin_panel/doc/app/SignalHelper.html +287 -0
  110. data/src/admin_panel/doc/app/UrlBreakupTimeSample.html +287 -0
  111. data/src/admin_panel/doc/app/UrlTimeSample.html +986 -0
  112. data/src/admin_panel/doc/app/User.html +290 -0
  113. data/src/admin_panel/doc/app/YAMLConfig.html +247 -0
  114. data/src/admin_panel/doc/app/YAMLWriter.html +284 -0
  115. data/src/admin_panel/doc/app/app/controllers/admin_controller_rb.html +52 -0
  116. data/src/admin_panel/doc/app/app/controllers/application_controller_rb.html +54 -0
  117. data/src/admin_panel/doc/app/app/controllers/application_specification_controller_rb.html +52 -0
  118. data/src/admin_panel/doc/app/app/controllers/exceptions_controller_rb.html +52 -0
  119. data/src/admin_panel/doc/app/app/controllers/graph_controller_rb.html +52 -0
  120. data/src/admin_panel/doc/app/app/controllers/headers_controller_rb.html +52 -0
  121. data/src/admin_panel/doc/app/app/controllers/mail_specification_controller_rb.html +52 -0
  122. data/src/admin_panel/doc/app/app/controllers/server_specification_controller_rb.html +52 -0
  123. data/src/admin_panel/doc/app/app/helpers/admin_helper_rb.html +52 -0
  124. data/src/admin_panel/doc/app/app/helpers/application_helper_rb.html +52 -0
  125. data/src/admin_panel/doc/app/app/helpers/application_specification_helper_rb.html +52 -0
  126. data/src/admin_panel/doc/app/app/helpers/exceptions_helper_rb.html +52 -0
  127. data/src/admin_panel/doc/app/app/helpers/graph_helper_rb.html +52 -0
  128. data/src/admin_panel/doc/app/app/helpers/headers_helper_rb.html +52 -0
  129. data/src/admin_panel/doc/app/app/helpers/mail_specification_helper_rb.html +52 -0
  130. data/src/admin_panel/doc/app/app/helpers/server_specification_helper_rb.html +52 -0
  131. data/src/admin_panel/doc/app/app/mailers/mailer_rb.html +56 -0
  132. data/src/admin_panel/doc/app/app/models/app_exception_rb.html +52 -0
  133. data/src/admin_panel/doc/app/app/models/app_rb.html +54 -0
  134. data/src/admin_panel/doc/app/app/models/app_time_sample_rb.html +52 -0
  135. data/src/admin_panel/doc/app/app/models/application_specification_rb.html +52 -0
  136. data/src/admin_panel/doc/app/app/models/exception_detail_rb.html +52 -0
  137. data/src/admin_panel/doc/app/app/models/headers_rb.html +52 -0
  138. data/src/admin_panel/doc/app/app/models/mail_specification_rb.html +52 -0
  139. data/src/admin_panel/doc/app/app/models/pseudo_model_rb.html +52 -0
  140. data/src/admin_panel/doc/app/app/models/resource_usage_rb.html +52 -0
  141. data/src/admin_panel/doc/app/app/models/server_specification_rb.html +52 -0
  142. data/src/admin_panel/doc/app/app/models/url_breakup_time_sample_rb.html +52 -0
  143. data/src/admin_panel/doc/app/app/models/url_time_sample_rb.html +52 -0
  144. data/src/admin_panel/doc/app/app/models/user_rb.html +52 -0
  145. data/src/admin_panel/doc/app/created.rid +42 -1
  146. data/src/admin_panel/doc/app/doc/README_FOR_APP.html +172 -0
  147. data/src/admin_panel/doc/app/images/brick.png +0 -0
  148. data/src/admin_panel/doc/app/images/brick_link.png +0 -0
  149. data/src/admin_panel/doc/app/images/bug.png +0 -0
  150. data/src/admin_panel/doc/app/images/bullet_black.png +0 -0
  151. data/src/admin_panel/doc/app/images/bullet_toggle_minus.png +0 -0
  152. data/src/admin_panel/doc/app/images/bullet_toggle_plus.png +0 -0
  153. data/src/admin_panel/doc/app/images/date.png +0 -0
  154. data/src/admin_panel/doc/app/images/find.png +0 -0
  155. data/src/admin_panel/doc/app/images/loadingAnimation.gif +0 -0
  156. data/src/admin_panel/doc/app/images/macFFBgHack.png +0 -0
  157. data/src/admin_panel/doc/app/images/package.png +0 -0
  158. data/src/admin_panel/doc/app/images/page_green.png +0 -0
  159. data/src/admin_panel/doc/app/images/page_white_text.png +0 -0
  160. data/src/admin_panel/doc/app/images/page_white_width.png +0 -0
  161. data/src/admin_panel/doc/app/images/plugin.png +0 -0
  162. data/src/admin_panel/doc/app/images/ruby.png +0 -0
  163. data/src/admin_panel/doc/app/images/tag_green.png +0 -0
  164. data/src/admin_panel/doc/app/images/wrench.png +0 -0
  165. data/src/admin_panel/doc/app/images/wrench_orange.png +0 -0
  166. data/src/admin_panel/doc/app/images/zoom.png +0 -0
  167. data/src/admin_panel/doc/app/index.html +564 -20
  168. data/src/admin_panel/doc/app/js/darkfish.js +116 -0
  169. data/src/admin_panel/doc/app/js/jquery.js +32 -0
  170. data/src/admin_panel/doc/app/js/quicksearch.js +114 -0
  171. data/src/admin_panel/doc/app/js/thickbox-compressed.js +10 -0
  172. data/src/admin_panel/doc/app/lib/asset_tag_helper_ext_rb.html +52 -0
  173. data/src/admin_panel/doc/app/lib/control_rb.html +58 -0
  174. data/src/admin_panel/doc/app/lib/graph_controller_extensions/database_analytics_rb.html +52 -0
  175. data/src/admin_panel/doc/app/lib/graph_controller_extensions/resource_usage_analytics_rb.html +52 -0
  176. data/src/admin_panel/doc/app/lib/graph_controller_extensions/throughput_analytics_rb.html +52 -0
  177. data/src/admin_panel/doc/app/lib/graph_controller_extensions/url_analytics_rb.html +52 -0
  178. data/src/admin_panel/doc/app/lib/graph_controller_extensions/url_breakup_analytics_rb.html +52 -0
  179. data/src/admin_panel/doc/app/lib/helper_rb.html +52 -0
  180. data/src/admin_panel/doc/app/lib/scgi_rb.html +54 -0
  181. data/src/admin_panel/doc/app/lib/yaml_writer_rb.html +52 -0
  182. data/src/admin_panel/doc/app/rdoc.css +763 -0
  183. data/src/admin_panel/lib/helper.rb +6 -2
  184. data/src/admin_panel/public/stylesheets/other/login.css +8 -4
  185. data/src/admin_panel/public/stylesheets/other/style.css +21 -17
  186. data/src/admin_panel/script/rails +6 -0
  187. data/src/admin_panel/test/test_helper.rb +2 -2
  188. data/src/admin_panel/vendor/plugins/calendar_date_select/History.txt +281 -0
  189. data/src/admin_panel/vendor/plugins/calendar_date_select/MIT-LICENSE +20 -0
  190. data/src/admin_panel/vendor/plugins/calendar_date_select/Manifest.txt +42 -0
  191. data/src/admin_panel/vendor/plugins/calendar_date_select/README.txt +17 -0
  192. data/src/admin_panel/vendor/plugins/calendar_date_select/Rakefile +37 -0
  193. data/src/admin_panel/vendor/plugins/calendar_date_select/VERSION +1 -0
  194. data/src/admin_panel/vendor/plugins/calendar_date_select/calendar_date_select.gemspec +95 -0
  195. data/src/admin_panel/vendor/plugins/calendar_date_select/init.rb +1 -0
  196. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/functional/cds_test.html +376 -0
  197. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/functional/format_iso_date_test.html +52 -0
  198. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/prototype.js +4184 -0
  199. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/test.css +40 -0
  200. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/unit/cds_helper_methods.html +46 -0
  201. data/src/admin_panel/vendor/plugins/calendar_date_select/js_test/unittest.js +564 -0
  202. data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select.rb +33 -0
  203. data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select/calendar_date_select.rb +122 -0
  204. data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select/form_helpers.rb +237 -0
  205. data/src/admin_panel/vendor/plugins/calendar_date_select/lib/calendar_date_select/includes_helper.rb +29 -0
  206. data/src/admin_panel/vendor/plugins/calendar_date_select/public/blank_iframe.html +2 -0
  207. data/src/admin_panel/vendor/plugins/calendar_date_select/public/images/calendar_date_select/calendar.gif +0 -0
  208. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/calendar_date_select.js +459 -0
  209. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_american.js +35 -0
  210. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_danish.js +31 -0
  211. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_db.js +27 -0
  212. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_euro_24hr.js +7 -0
  213. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_euro_24hr_ymd.js +7 -0
  214. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_finnish.js +32 -0
  215. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_hyphen_ampm.js +37 -0
  216. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_iso_date.js +29 -0
  217. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_italian.js +24 -0
  218. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/ar.js +10 -0
  219. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/cs.js +11 -0
  220. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/da.js +11 -0
  221. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/de.js +11 -0
  222. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/es.js +11 -0
  223. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/fi.js +10 -0
  224. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/fr.js +11 -0
  225. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/hu.js +11 -0
  226. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/it.js +9 -0
  227. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/ja.js +11 -0
  228. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/nl.js +11 -0
  229. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/pl.js +11 -0
  230. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/pt.js +11 -0
  231. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/ru.js +10 -0
  232. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/sl.js +11 -0
  233. data/src/admin_panel/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/sv.js +9 -0
  234. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/blue.css +130 -0
  235. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/default.css +135 -0
  236. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/green.css +142 -0
  237. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/plain.css +128 -0
  238. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/red.css +135 -0
  239. data/src/admin_panel/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/silver.css +133 -0
  240. data/src/admin_panel/vendor/plugins/calendar_date_select/spec/calendar_date_select/calendar_date_select_spec.rb +14 -0
  241. data/src/admin_panel/vendor/plugins/calendar_date_select/spec/calendar_date_select/form_helpers_spec.rb +189 -0
  242. data/src/admin_panel/vendor/plugins/calendar_date_select/spec/calendar_date_select/includes_helper_spec.rb +46 -0
  243. data/src/admin_panel/vendor/plugins/calendar_date_select/spec/spec_helper.rb +26 -0
  244. data/src/admin_panel/vendor/plugins/open_flash_chart_2_plugin/install.rb +2 -2
  245. data/src/admin_panel/vendor/plugins/open_flash_chart_2_plugin/uninstall.rb +2 -2
  246. data/src/admin_panel/vendor/plugins/prototype_legacy_helper/README.markdown +13 -0
  247. data/src/admin_panel/vendor/plugins/prototype_legacy_helper/init.rb +1 -0
  248. data/src/admin_panel/vendor/plugins/prototype_legacy_helper/lib/prototype_legacy_helper.rb +432 -0
  249. data/src/admin_panel/vendor/plugins/prototype_legacy_helper/test/test_prototype_helper.rb +297 -0
  250. data/src/helper/wr_config.c +1 -1
  251. data/src/ruby_lib/analyzer/message_analyzer.rb +1 -0
  252. data/src/ruby_lib/analyzer/webroar_analyzer.rb +2 -2
  253. data/src/ruby_lib/profiler/message_dispatcher.rb +1 -1
  254. data/src/ruby_lib/ruby_interface/version.rb +2 -2
  255. data/src/ruby_lib/webroar_app_loader.rb +1 -1
  256. data/tasks/gem.rake +5 -7
  257. data/tasks/test.rake +1 -0
  258. data/test/spec/analytics_spec.rb +25 -24
  259. data/test/spec/test_app/README +142 -129
  260. data/test/spec/test_app/Rakefile +2 -5
  261. data/test/spec/test_app/app/controllers/application_controller.rb +3 -8
  262. data/test/spec/test_app/app/controllers/test_controller.rb +3 -3
  263. data/test/spec/test_app/app/controllers/users_controller.rb +8 -8
  264. data/test/spec/test_app/app/helpers/application_helper.rb +2 -1
  265. data/test/spec/test_app/app/helpers/test_helper.rb +2 -0
  266. data/test/spec/test_app/app/helpers/users_helper.rb +2 -0
  267. data/test/spec/test_app/app/models/user.rb +2 -0
  268. data/test/spec/test_app/app/views/layouts/{users.html.erb → application.html.erb} +6 -9
  269. data/test/spec/test_app/app/views/test/post_data.html.erb +2 -2
  270. data/test/spec/test_app/app/views/test/upload_file.html.erb +1 -1
  271. data/test/spec/test_app/{db/migrate/20090602102438_create_users.rb → app/views/users/_form.html.erb} +22 -11
  272. data/test/spec/test_app/app/views/users/edit.html.erb +19 -28
  273. data/test/spec/test_app/app/views/users/index.html.erb +23 -19
  274. data/test/spec/test_app/app/views/users/new.html.erb +19 -28
  275. data/test/spec/test_app/app/views/users/show.html.erb +21 -18
  276. data/test/spec/test_app/config/application.rb +45 -0
  277. data/test/spec/test_app/config/boot.rb +4 -112
  278. data/test/spec/test_app/config/database.yml +1 -1
  279. data/test/spec/test_app/config/environment.rb +4 -41
  280. data/test/spec/test_app/config/environments/development.rb +22 -13
  281. data/test/spec/test_app/config/environments/production.rb +41 -20
  282. data/test/spec/test_app/config/environments/test.rb +35 -28
  283. data/test/spec/test_app/config/initializers/backtrace_silencers.rb +2 -2
  284. data/test/spec/test_app/config/initializers/inflections.rb +1 -1
  285. data/test/spec/test_app/config/initializers/secret_token.rb +7 -0
  286. data/test/spec/test_app/config/initializers/session_store.rb +3 -10
  287. data/test/spec/test_app/config/locales/en.yml +5 -0
  288. data/test/spec/test_app/config/routes.rb +37 -22
  289. data/test/spec/test_app/db/migrate/20110906113329_create_users.rb +13 -0
  290. data/test/spec/test_app/db/seeds.rb +7 -0
  291. data/test/spec/test_app/public/404.html +15 -19
  292. data/test/spec/test_app/public/422.html +15 -19
  293. data/test/spec/test_app/public/500.html +14 -18
  294. data/test/spec/test_app/public/index.html +41 -77
  295. data/test/spec/test_app/public/javascripts/controls.js +5 -3
  296. data/test/spec/test_app/public/javascripts/dragdrop.js +7 -6
  297. data/test/spec/test_app/public/javascripts/effects.js +8 -13
  298. data/test/spec/test_app/public/javascripts/prototype.js +3381 -1700
  299. data/test/spec/test_app/public/javascripts/rails.js +191 -0
  300. data/test/spec/test_app/public/stylesheets/scaffold.css +15 -13
  301. data/test/spec/test_app/script/rails +6 -0
  302. metadata +340 -163
  303. data/src/admin_panel/Gemfile.lock +0 -79
  304. data/src/admin_panel/doc/app/classes/ActionView.html +0 -111
  305. data/src/admin_panel/doc/app/classes/ActionView/Helpers.html +0 -111
  306. data/src/admin_panel/doc/app/classes/ActionView/Helpers/AssetTagHelper.html +0 -149
  307. data/src/admin_panel/doc/app/classes/AdminController.html +0 -628
  308. data/src/admin_panel/doc/app/classes/AdminHelper.html +0 -482
  309. data/src/admin_panel/doc/app/classes/Analytics.html +0 -138
  310. data/src/admin_panel/doc/app/classes/Analytics/Database.html +0 -245
  311. data/src/admin_panel/doc/app/classes/Analytics/ResourceUsage.html +0 -478
  312. data/src/admin_panel/doc/app/classes/Analytics/Throughput.html +0 -316
  313. data/src/admin_panel/doc/app/classes/Analytics/Url.html +0 -314
  314. data/src/admin_panel/doc/app/classes/Analytics/UrlBreakup.html +0 -372
  315. data/src/admin_panel/doc/app/classes/App.html +0 -298
  316. data/src/admin_panel/doc/app/classes/AppException.html +0 -330
  317. data/src/admin_panel/doc/app/classes/AppTimeSample.html +0 -427
  318. data/src/admin_panel/doc/app/classes/ApplicationController.html +0 -118
  319. data/src/admin_panel/doc/app/classes/ApplicationHelper.html +0 -172
  320. data/src/admin_panel/doc/app/classes/ApplicationSpecification.html +0 -641
  321. data/src/admin_panel/doc/app/classes/ApplicationSpecificationController.html +0 -354
  322. data/src/admin_panel/doc/app/classes/Control.html +0 -273
  323. data/src/admin_panel/doc/app/classes/ExceptionsController.html +0 -612
  324. data/src/admin_panel/doc/app/classes/ExceptionsHelper.html +0 -105
  325. data/src/admin_panel/doc/app/classes/GraphController.html +0 -804
  326. data/src/admin_panel/doc/app/classes/GraphHelper.html +0 -164
  327. data/src/admin_panel/doc/app/classes/MailSpecification.html +0 -357
  328. data/src/admin_panel/doc/app/classes/MailSpecificationController.html +0 -304
  329. data/src/admin_panel/doc/app/classes/PseudoModel.html +0 -206
  330. data/src/admin_panel/doc/app/classes/ResourceUsage.html +0 -425
  331. data/src/admin_panel/doc/app/classes/SCGI.html +0 -406
  332. data/src/admin_panel/doc/app/classes/ServerSpecification.html +0 -325
  333. data/src/admin_panel/doc/app/classes/ServerSpecificationController.html +0 -273
  334. data/src/admin_panel/doc/app/classes/UrlBreakupTimeSample.html +0 -169
  335. data/src/admin_panel/doc/app/classes/UrlTimeSample.html +0 -708
  336. data/src/admin_panel/doc/app/classes/User.html +0 -165
  337. data/src/admin_panel/doc/app/classes/YAMLWriter.html +0 -159
  338. data/src/admin_panel/doc/app/files/app/controllers/admin_controller_rb.html +0 -101
  339. data/src/admin_panel/doc/app/files/app/controllers/application_controller_rb.html +0 -108
  340. data/src/admin_panel/doc/app/files/app/controllers/application_specification_controller_rb.html +0 -101
  341. data/src/admin_panel/doc/app/files/app/controllers/exceptions_controller_rb.html +0 -101
  342. data/src/admin_panel/doc/app/files/app/controllers/graph_controller_rb.html +0 -101
  343. data/src/admin_panel/doc/app/files/app/controllers/mail_specification_controller_rb.html +0 -101
  344. data/src/admin_panel/doc/app/files/app/controllers/server_specification_controller_rb.html +0 -101
  345. data/src/admin_panel/doc/app/files/app/helpers/admin_helper_rb.html +0 -101
  346. data/src/admin_panel/doc/app/files/app/helpers/application_helper_rb.html +0 -101
  347. data/src/admin_panel/doc/app/files/app/helpers/exceptions_helper_rb.html +0 -101
  348. data/src/admin_panel/doc/app/files/app/helpers/graph_helper_rb.html +0 -101
  349. data/src/admin_panel/doc/app/files/app/models/app_exception_rb.html +0 -101
  350. data/src/admin_panel/doc/app/files/app/models/app_rb.html +0 -108
  351. data/src/admin_panel/doc/app/files/app/models/app_time_sample_rb.html +0 -101
  352. data/src/admin_panel/doc/app/files/app/models/application_specification_rb.html +0 -101
  353. data/src/admin_panel/doc/app/files/app/models/mail_specification_rb.html +0 -101
  354. data/src/admin_panel/doc/app/files/app/models/pseudo_model_rb.html +0 -101
  355. data/src/admin_panel/doc/app/files/app/models/resource_usage_rb.html +0 -101
  356. data/src/admin_panel/doc/app/files/app/models/server_specification_rb.html +0 -101
  357. data/src/admin_panel/doc/app/files/app/models/url_breakup_time_sample_rb.html +0 -101
  358. data/src/admin_panel/doc/app/files/app/models/url_time_sample_rb.html +0 -101
  359. data/src/admin_panel/doc/app/files/app/models/user_rb.html +0 -101
  360. data/src/admin_panel/doc/app/files/doc/README_FOR_APP.html +0 -109
  361. data/src/admin_panel/doc/app/files/lib/asset_tag_helper_ext_rb.html +0 -101
  362. data/src/admin_panel/doc/app/files/lib/control_rb.html +0 -110
  363. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/database_analytics_rb.html +0 -101
  364. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/resource_usage_analytics_rb.html +0 -101
  365. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/throughput_analytics_rb.html +0 -101
  366. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/url_analytics_rb.html +0 -101
  367. data/src/admin_panel/doc/app/files/lib/graph_controller_extensions/url_breakup_analytics_rb.html +0 -101
  368. data/src/admin_panel/doc/app/files/lib/scgi_rb.html +0 -101
  369. data/src/admin_panel/doc/app/files/lib/yaml_writer_rb.html +0 -101
  370. data/src/admin_panel/doc/app/fr_class_index.html +0 -60
  371. data/src/admin_panel/doc/app/fr_file_index.html +0 -58
  372. data/src/admin_panel/doc/app/fr_method_index.html +0 -206
  373. data/src/admin_panel/doc/app/rdoc-style.css +0 -208
  374. data/src/admin_panel/public/dispatch.cgi +0 -10
  375. data/src/admin_panel/public/dispatch.fcgi +0 -24
  376. data/src/admin_panel/public/dispatch.rb +0 -10
  377. data/src/admin_panel/script/about +0 -4
  378. data/src/admin_panel/script/console +0 -3
  379. data/src/admin_panel/script/dbconsole +0 -3
  380. data/src/admin_panel/script/destroy +0 -3
  381. data/src/admin_panel/script/generate +0 -3
  382. data/src/admin_panel/script/performance/benchmarker +0 -3
  383. data/src/admin_panel/script/performance/profiler +0 -3
  384. data/src/admin_panel/script/performance/request +0 -3
  385. data/src/admin_panel/script/plugin +0 -3
  386. data/src/admin_panel/script/process/inspector +0 -3
  387. data/src/admin_panel/script/process/reaper +0 -3
  388. data/src/admin_panel/script/process/spawner +0 -3
  389. data/src/admin_panel/script/runner +0 -3
  390. data/src/admin_panel/script/server +0 -3
  391. data/test/spec/test_app/config/initializers/new_rails_defaults.rb +0 -19
  392. data/test/spec/test_app/script/about +0 -4
  393. data/test/spec/test_app/script/console +0 -3
  394. data/test/spec/test_app/script/dbconsole +0 -3
  395. data/test/spec/test_app/script/destroy +0 -3
  396. data/test/spec/test_app/script/generate +0 -3
  397. data/test/spec/test_app/script/performance/benchmarker +0 -3
  398. data/test/spec/test_app/script/performance/profiler +0 -3
  399. data/test/spec/test_app/script/plugin +0 -3
  400. data/test/spec/test_app/script/runner +0 -3
  401. data/test/spec/test_app/script/server +0 -3
  402. data/test/spec/test_app/vendor/.placeholder +0 -0
@@ -1,169 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: UrlBreakupTimeSample</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">UrlBreakupTimeSample</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../files/app/models/url_breakup_time_sample_rb.html">
59
- app/models/url_breakup_time_sample.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- ActiveRecord::Base
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
-
81
- <div id="description">
82
- <p>
83
- This is the model class <a
84
- href="UrlBreakupTimeSample.html">UrlBreakupTimeSample</a> related to the
85
- url_breakup_samples table in the database.
86
- </p>
87
-
88
- </div>
89
-
90
-
91
- </div>
92
-
93
- <div id="method-list">
94
- <h3 class="section-bar">Methods</h3>
95
-
96
- <div class="name-list">
97
- <a href="#M000078">get_url_breakup_sample_data</a>&nbsp;&nbsp;
98
- </div>
99
- </div>
100
-
101
- </div>
102
-
103
-
104
- <!-- if includes -->
105
-
106
- <div id="section">
107
-
108
-
109
-
110
-
111
-
112
-
113
-
114
-
115
- <!-- if method_list -->
116
- <div id="methods">
117
- <h3 class="section-bar">Public Class methods</h3>
118
-
119
- <div id="method-M000078" class="method-detail">
120
- <a name="M000078"></a>
121
-
122
- <div class="method-heading">
123
- <a href="#M000078" class="method-signature">
124
- <span class="method-name">get_url_breakup_sample_data</span><span class="method-args">(url_id)</span>
125
- </a>
126
- </div>
127
-
128
- <div class="method-description">
129
- <p>
130
- This method gives the data details for the url in the table. The url data
131
- is retrived with the help of url ids. The array of url id is supplied as
132
- input to this method.
133
- </p>
134
- <p><a class="source-toggle" href="#"
135
- onclick="toggleCode('M000078-source');return false;">[Source]</a></p>
136
- <div class="method-source-code" id="M000078-source">
137
- <pre>
138
- <span class="ruby-comment cmt"># File app/models/url_breakup_time_sample.rb, line 26</span>
139
- 26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_url_breakup_sample_data</span>(<span class="ruby-identifier">url_id</span>)
140
- 27: <span class="ruby-comment cmt"># url_id_array_size = url_id.size</span>
141
- 28: <span class="ruby-identifier">criteria</span> = <span class="ruby-value str">&quot;url_sample_id in (&quot;</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">url_id</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">&quot;, &quot;</span>) <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">')'</span>
142
- 29: <span class="ruby-comment cmt"># for i in 0..url_id_array_size-1</span>
143
- 30: <span class="ruby-comment cmt"># str1 = str1 + &quot;url_sample_id =&quot;+url_id[i].to_s</span>
144
- 31: <span class="ruby-comment cmt"># if i != url_id_array_size-1</span>
145
- 32: <span class="ruby-comment cmt"># str1 = str1 + &quot; or &quot;</span>
146
- 33: <span class="ruby-comment cmt"># end</span>
147
- 34: <span class="ruby-comment cmt"># end</span>
148
- 35: <span class="ruby-identifier">query_str</span> = <span class="ruby-value str">&quot;select method_name, sum(spent_time) as time_spent from url_breakup_time_samples where &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">criteria</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot; group by method_name order by time_spent desc&quot;</span>
149
- 36: <span class="ruby-identifier">url_breakup_sample</span> = <span class="ruby-identifier">find_by_sql</span>(<span class="ruby-identifier">query_str</span>)
150
- 37: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">url_breakup_sample</span>
151
- 38: <span class="ruby-keyword kw">end</span>
152
- </pre>
153
- </div>
154
- </div>
155
- </div>
156
-
157
-
158
- </div>
159
-
160
-
161
- </div>
162
-
163
-
164
- <div id="validator-badges">
165
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
166
- </div>
167
-
168
- </body>
169
- </html>
@@ -1,708 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: UrlTimeSample</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">UrlTimeSample</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../files/app/models/url_time_sample_rb.html">
59
- app/models/url_time_sample.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- ActiveRecord::Base
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
-
81
- <div id="description">
82
- <p>
83
- This is the model class <a href="UrlTimeSample.html">UrlTimeSample</a>
84
- related to the url_samples table in the database.
85
- </p>
86
-
87
- </div>
88
-
89
-
90
- </div>
91
-
92
- <div id="method-list">
93
- <h3 class="section-bar">Methods</h3>
94
-
95
- <div class="name-list">
96
- <a href="#M000118">add_to_sample</a>&nbsp;&nbsp;
97
- <a href="#M000117">create_breakup_sample</a>&nbsp;&nbsp;
98
- <a href="#M000116">create_sample</a>&nbsp;&nbsp;
99
- <a href="#M000112">get_max_and_slab</a>&nbsp;&nbsp;
100
- <a href="#M000109">get_slowest_url_data</a>&nbsp;&nbsp;
101
- <a href="#M000110">get_time_consuming_url_data</a>&nbsp;&nbsp;
102
- <a href="#M000111">get_top_db_consuming_url_data</a>&nbsp;&nbsp;
103
- <a href="#M000107">get_url_calls_data</a>&nbsp;&nbsp;
104
- <a href="#M000114">get_url_data</a>&nbsp;&nbsp;
105
- <a href="#M000108">get_url_hits_data</a>&nbsp;&nbsp;
106
- <a href="#M000115">get_url_id</a>&nbsp;&nbsp;
107
- <a href="#M000113">get_urls</a>&nbsp;&nbsp;
108
- <a href="#M000120">write_all_samples</a>&nbsp;&nbsp;
109
- <a href="#M000119">write_stale_samples</a>&nbsp;&nbsp;
110
- </div>
111
- </div>
112
-
113
- </div>
114
-
115
-
116
- <!-- if includes -->
117
-
118
- <div id="section">
119
-
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
- <!-- if method_list -->
128
- <div id="methods">
129
- <h3 class="section-bar">Public Class methods</h3>
130
-
131
- <div id="method-M000118" class="method-detail">
132
- <a name="M000118"></a>
133
-
134
- <div class="method-heading">
135
- <a href="#M000118" class="method-signature">
136
- <span class="method-name">add_to_sample</span><span class="method-args">( message_analyzer, app_id, url, total_spent_time, db_time, rendering_time, db_time_breakup, wall_time)</span>
137
- </a>
138
- </div>
139
-
140
- <div class="method-description">
141
- <p>
142
- url_samples contain at most one sample per url in the scope of application.
143
- create url sample if not present if url presents, and wall_time falling in
144
- sampling period, add it if url presents, and wall_time not falling in
145
- sampling period and less than sampling period, check into database for that
146
- sample and update it if url presents, and wall_time not falling in sampling
147
- period and greater than sampling period, create new sample and insert
148
- current into database.
149
- </p>
150
- <p><a class="source-toggle" href="#"
151
- onclick="toggleCode('M000118-source');return false;">[Source]</a></p>
152
- <div class="method-source-code" id="M000118-source">
153
- <pre>
154
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 163</span>
155
- 163: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">add_to_sample</span>( <span class="ruby-identifier">message_analyzer</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">total_spent_time</span>, <span class="ruby-identifier">db_time</span>, <span class="ruby-identifier">rendering_time</span>, <span class="ruby-identifier">db_time_breakup</span>, <span class="ruby-identifier">wall_time</span>)
156
- 164: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword kw">nil</span>
157
- 165: <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>] = [<span class="ruby-identifier">wall_time</span>, [ <span class="ruby-identifier">total_spent_time</span>, <span class="ruby-identifier">db_time</span>, <span class="ruby-identifier">rendering_time</span>, <span class="ruby-value">1</span>]] <span class="ruby-comment cmt">#one more element(as a hash) come in last position for keeping db_breakup time</span>
158
- 166: <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>][<span class="ruby-value">1</span>][<span class="ruby-value">4</span>] = <span class="ruby-identifier">db_time_breakup</span>.<span class="ruby-identifier">dup</span>
159
- 167: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">wall_time</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>].<span class="ruby-identifier">first</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">wall_time</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>].<span class="ruby-identifier">first</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">sampling_rate</span>
160
- 168: <span class="ruby-identifier">sample</span> = <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>][<span class="ruby-value">1</span>]
161
- 169: <span class="ruby-identifier">sample</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">total_spent_time</span>
162
- 170: <span class="ruby-identifier">sample</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">db_time</span>
163
- 171: <span class="ruby-identifier">sample</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">rendering_time</span>
164
- 172: <span class="ruby-identifier">sample</span>[<span class="ruby-value">3</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
165
- 173: <span class="ruby-identifier">tmp_hash</span> = <span class="ruby-identifier">sample</span>[<span class="ruby-value">4</span>]
166
- 174: <span class="ruby-identifier">db_time_breakup</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
167
- 175: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tmp_hash</span>[<span class="ruby-identifier">key</span>]
168
- 176: <span class="ruby-identifier">tmp_hash</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">value</span>
169
- 177: <span class="ruby-keyword kw">else</span>
170
- 178: <span class="ruby-identifier">tmp_hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
171
- 179: <span class="ruby-keyword kw">end</span>
172
- 180: <span class="ruby-keyword kw">end</span>
173
- 181: <span class="ruby-identifier">sample</span>[<span class="ruby-value">4</span>] = <span class="ruby-identifier">tmp_hash</span>
174
- 182: <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>][<span class="ruby-value">1</span>] = <span class="ruby-identifier">sample</span>
175
- 183: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">wall_time</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>].<span class="ruby-identifier">first</span>
176
- 184: <span class="ruby-identifier">url_sample</span> = <span class="ruby-identifier">find</span>(<span class="ruby-identifier">:first</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">&quot;app_id = ? and url = ? and wall_time &gt;= ? and wall_time &lt;= ?&quot;</span>,<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">wall_time</span>, <span class="ruby-identifier">wall_time</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">sampling_rate</span>])
177
- 185: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url_sample</span>
178
- 186: <span class="ruby-identifier">url_breakup_sample</span> = <span class="ruby-constant">UrlBreakupTimeSample</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">&quot;url_sample_id = ?&quot;</span>,<span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">id</span>])
179
- 187: <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">total_time</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">total_spent_time</span>
180
- 188: <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">db_time</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">db_time</span>
181
- 189: <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">rendering_time</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">rendering_time</span>
182
- 190: <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">number_of_requests</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
183
- 191: <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">save!</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
184
- 192: <span class="ruby-identifier">db_breakup_keys</span> = <span class="ruby-identifier">db_time_breakup</span>.<span class="ruby-identifier">keys</span>
185
- 193: <span class="ruby-identifier">covered_keys</span> = []
186
- 194: <span class="ruby-identifier">url_breakup_sample</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">breakup</span><span class="ruby-operator">|</span>
187
- 195: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">db_breakup_keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">breakup</span>.<span class="ruby-identifier">method_name</span>)
188
- 196: <span class="ruby-identifier">breakup</span>.<span class="ruby-identifier">spent_time</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">db_time_breakup</span>[<span class="ruby-identifier">breakup</span>.<span class="ruby-identifier">method_name</span>]
189
- 197: <span class="ruby-identifier">breakup</span>.<span class="ruby-identifier">save!</span> <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
190
- 198: <span class="ruby-identifier">covered_keys</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">breakup</span>.<span class="ruby-identifier">method_name</span>)
191
- 199: <span class="ruby-keyword kw">end</span>
192
- 200: <span class="ruby-keyword kw">end</span>
193
- 201: <span class="ruby-identifier">remaining_keys</span> = <span class="ruby-identifier">db_breakup_keys</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">covered_keys</span>
194
- 202: <span class="ruby-identifier">remaining_keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
195
- 203: <span class="ruby-constant">UrlBreakupTimeSample</span>.<span class="ruby-identifier">create</span>({<span class="ruby-identifier">:app_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">:url_sample_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">:method_name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>, <span class="ruby-identifier">:spent_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">db_time_breakup</span>[<span class="ruby-identifier">key</span>], <span class="ruby-identifier">:wall_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">wall_time</span>}) <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">nil</span>
196
- 204: <span class="ruby-keyword kw">end</span>
197
- 205: <span class="ruby-keyword kw">else</span>
198
- 206: <span class="ruby-identifier">wall_time</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">sampling_rate</span>
199
- 207: <span class="ruby-identifier">create_sample</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">url</span>, [<span class="ruby-identifier">total_spent_time</span>, <span class="ruby-identifier">db_time</span>, <span class="ruby-identifier">rendering_time</span>, <span class="ruby-value">1</span>], <span class="ruby-identifier">wall_time</span>, <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">sampling_rate</span>, <span class="ruby-identifier">db_time_breakup</span>)
200
- 208: <span class="ruby-comment cmt">#url_sample = create({:app_id =&gt; app_id, :url =&gt; url, :total_time =&gt; total_spent_time, :db_time =&gt; db_time, :rendering_time =&gt; rendering_time, :number_of_requests =&gt; 1, :wall_time =&gt; wall_time, :sampling_rate =&gt; message_analyzer.sampling_rate})</span>
201
- 209: <span class="ruby-comment cmt">#db_time_breakup.each_pair do |key, value|</span>
202
- 210: <span class="ruby-comment cmt"># UrlBreakupTimeSample.create({:app_id =&gt; app_id, :url_sample_id =&gt; url_sample.id, :method_name =&gt; key, :spent_time =&gt; value, :wall_time =&gt; url_sample.wall_time})</span>
203
- 211: <span class="ruby-comment cmt">#end</span>
204
- 212: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if url_sample</span>
205
- 213: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">wall_time</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>].<span class="ruby-identifier">first</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">sampling_rate</span>
206
- 214: <span class="ruby-identifier">o_wall_time</span> = <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>].<span class="ruby-identifier">first</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">sampling_rate</span>
207
- 215: <span class="ruby-identifier">sample</span> = <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>][<span class="ruby-value">1</span>]
208
- 216: <span class="ruby-identifier">create_sample</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">sample</span>, <span class="ruby-identifier">wall_time</span>, <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">sampling_rate</span>, <span class="ruby-identifier">sample</span>[<span class="ruby-value">4</span>])
209
- 217: <span class="ruby-comment cmt"># url_sample = create({:app_id =&gt; app_id, :url =&gt; url, :total_time =&gt; sample[0], :db_time =&gt; sample[1], :rendering_time =&gt; sample[2], :number_of_requests =&gt; sample[3], :wall_time =&gt; o_wall_time, :sampling_rate =&gt; message_analyzer.sampling_rate})</span>
210
- 218: <span class="ruby-comment cmt"># tmp_hash = sample[4]</span>
211
- 219: <span class="ruby-comment cmt"># tmp_hash.each_pair do |key, value|</span>
212
- 220: <span class="ruby-comment cmt"># UrlBreakupTimeSample.create({:app_id =&gt; app_id, :url_sample_id =&gt; url_sample.id, :method_name =&gt; key, :spent_time =&gt; value, :wall_time =&gt; url_sample.wall_time})</span>
213
- 221: <span class="ruby-comment cmt"># end</span>
214
- 222: <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>] = [<span class="ruby-identifier">wall_time</span>, [ <span class="ruby-identifier">total_spent_time</span>, <span class="ruby-identifier">db_time</span>, <span class="ruby-identifier">rendering_time</span>, <span class="ruby-value">1</span>]]
215
- 223: <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>[<span class="ruby-identifier">app_id</span>][<span class="ruby-identifier">url</span>][<span class="ruby-value">1</span>][<span class="ruby-value">4</span>] = <span class="ruby-identifier">db_time_breakup</span>.<span class="ruby-identifier">dup</span>
216
- 224: <span class="ruby-keyword kw">else</span>
217
- 225: <span class="ruby-identifier">raise</span> <span class="ruby-constant">UndefinedSituation</span>, <span class="ruby-value str">&quot;Think of this possibility!&quot;</span>
218
- 226: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if</span>
219
- 227: <span class="ruby-keyword kw">end</span>
220
- </pre>
221
- </div>
222
- </div>
223
- </div>
224
-
225
- <div id="method-M000117" class="method-detail">
226
- <a name="M000117"></a>
227
-
228
- <div class="method-heading">
229
- <a href="#M000117" class="method-signature">
230
- <span class="method-name">create_breakup_sample</span><span class="method-args">(app_id, url_sample_id, key, value, wall_time)</span>
231
- </a>
232
- </div>
233
-
234
- <div class="method-description">
235
- <p><a class="source-toggle" href="#"
236
- onclick="toggleCode('M000117-source');return false;">[Source]</a></p>
237
- <div class="method-source-code" id="M000117-source">
238
- <pre>
239
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 152</span>
240
- 152: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_breakup_sample</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">url_sample_id</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">wall_time</span>)
241
- 153: <span class="ruby-identifier">with_exception_handling</span>(<span class="ruby-node">&quot;URL breakup sample creation for application #{app_id}, url_sample_id #{url_sample_id}, wall_time #{wall_time} failed.&quot;</span>) <span class="ruby-keyword kw">do</span>
242
- 154: <span class="ruby-constant">UrlBreakupTimeSample</span>.<span class="ruby-identifier">create</span>({<span class="ruby-identifier">:app_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">:url_sample_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url_sample_id</span>, <span class="ruby-identifier">:method_name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>, <span class="ruby-identifier">:spent_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">value</span>, <span class="ruby-identifier">:wall_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">wall_time</span>})
243
- 155: <span class="ruby-keyword kw">end</span>
244
- 156: <span class="ruby-keyword kw">end</span>
245
- </pre>
246
- </div>
247
- </div>
248
- </div>
249
-
250
- <div id="method-M000116" class="method-detail">
251
- <a name="M000116"></a>
252
-
253
- <div class="method-heading">
254
- <a href="#M000116" class="method-signature">
255
- <span class="method-name">create_sample</span><span class="method-args">(app_id, url, sample, wall_time, sampling_rate, db_time_breakup)</span>
256
- </a>
257
- </div>
258
-
259
- <div class="method-description">
260
- <p>
261
- This section of the model is used by the Webraor Analyzer.
262
- </p>
263
- <p><a class="source-toggle" href="#"
264
- onclick="toggleCode('M000116-source');return false;">[Source]</a></p>
265
- <div class="method-source-code" id="M000116-source">
266
- <pre>
267
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 140</span>
268
- 140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create_sample</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">sample</span>, <span class="ruby-identifier">wall_time</span>, <span class="ruby-identifier">sampling_rate</span>, <span class="ruby-identifier">db_time_breakup</span>)
269
- 141: <span class="ruby-identifier">url_sample</span> = <span class="ruby-keyword kw">nil</span>
270
- 142: <span class="ruby-identifier">with_exception_handling</span>(<span class="ruby-node">&quot;URL sample creation for application #{app_id}, URL #{url}, wall_time #{wall_time}&quot;</span>) <span class="ruby-keyword kw">do</span>
271
- 143: <span class="ruby-identifier">url_sample</span> = <span class="ruby-identifier">create</span>({<span class="ruby-identifier">:app_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url</span>, <span class="ruby-identifier">:total_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sample</span>[<span class="ruby-value">0</span>], <span class="ruby-identifier">:db_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sample</span>[<span class="ruby-value">1</span>], <span class="ruby-identifier">:rendering_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sample</span>[<span class="ruby-value">2</span>], <span class="ruby-identifier">:number_of_requests</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sample</span>[<span class="ruby-value">3</span>], <span class="ruby-identifier">:wall_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">wall_time</span>, <span class="ruby-identifier">:sampling_rate</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sampling_rate</span>})
272
- 144: <span class="ruby-keyword kw">end</span>
273
- 145: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">id</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">db_time_breakup</span>
274
- 146: <span class="ruby-identifier">db_time_breakup</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
275
- 147: <span class="ruby-identifier">create_breakup_sample</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">wall_time</span>)
276
- 148: <span class="ruby-keyword kw">end</span>
277
- 149: <span class="ruby-keyword kw">end</span>
278
- 150: <span class="ruby-keyword kw">end</span>
279
- </pre>
280
- </div>
281
- </div>
282
- </div>
283
-
284
- <div id="method-M000112" class="method-detail">
285
- <a name="M000112"></a>
286
-
287
- <div class="method-heading">
288
- <a href="#M000112" class="method-signature">
289
- <span class="method-name">get_max_and_slab</span><span class="method-args">(max)</span>
290
- </a>
291
- </div>
292
-
293
- <div class="method-description">
294
- <p>
295
- This method gives the maximum value for y axis and the value by which the y
296
- axis is to be partitioned.
297
- </p>
298
- <p><a class="source-toggle" href="#"
299
- onclick="toggleCode('M000112-source');return false;">[Source]</a></p>
300
- <div class="method-source-code" id="M000112-source">
301
- <pre>
302
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 98</span>
303
- 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_max_and_slab</span>(<span class="ruby-identifier">max</span>)
304
- 99: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
305
- 100: <span class="ruby-identifier">max</span> = <span class="ruby-value">1</span>
306
- 101: <span class="ruby-identifier">slab</span> = <span class="ruby-value">1</span>
307
- 102: <span class="ruby-keyword kw">else</span>
308
- 103: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">8</span>
309
- 104: <span class="ruby-identifier">slab</span> = (<span class="ruby-identifier">max</span> <span class="ruby-operator">/</span> <span class="ruby-value">8</span>.<span class="ruby-identifier">to_i</span>).<span class="ruby-identifier">to_i</span>
310
- 105: <span class="ruby-keyword kw">else</span>
311
- 106: <span class="ruby-identifier">slab</span> = <span class="ruby-value">1</span>
312
- 107: <span class="ruby-keyword kw">end</span>
313
- 108: <span class="ruby-keyword kw">end</span>
314
- 109: <span class="ruby-identifier">max</span> = <span class="ruby-identifier">max</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">slab</span>
315
- 110: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">max</span>, <span class="ruby-identifier">slab</span>
316
- 111: <span class="ruby-keyword kw">end</span>
317
- </pre>
318
- </div>
319
- </div>
320
- </div>
321
-
322
- <div id="method-M000109" class="method-detail">
323
- <a name="M000109"></a>
324
-
325
- <div class="method-heading">
326
- <a href="#M000109" class="method-signature">
327
- <span class="method-name">get_slowest_url_data</span><span class="method-args">(app_id, start_time, end_time)</span>
328
- </a>
329
- </div>
330
-
331
- <div class="method-description">
332
- <p>
333
- This method is get data of the slowest urls of an application. This method
334
- is called by the <a
335
- href="UrlTimeSample.html#M000107">get_url_calls_data</a> method.
336
- </p>
337
- <p><a class="source-toggle" href="#"
338
- onclick="toggleCode('M000109-source');return false;">[Source]</a></p>
339
- <div class="method-source-code" id="M000109-source">
340
- <pre>
341
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 80</span>
342
- 80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_slowest_url_data</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>)
343
- 81: <span class="ruby-identifier">url_samples</span> = <span class="ruby-identifier">find</span>(<span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:select=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'url, (sum(total_time) / sum(number_of_requests)) as result'</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">'app_id = ? and wall_time &gt;= ? and wall_time &lt; ?'</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>], <span class="ruby-identifier">:group</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'url'</span>, <span class="ruby-identifier">:order</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'result desc'</span>)
344
- 82: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">url_samples</span>
345
- 83: <span class="ruby-keyword kw">end</span>
346
- </pre>
347
- </div>
348
- </div>
349
- </div>
350
-
351
- <div id="method-M000110" class="method-detail">
352
- <a name="M000110"></a>
353
-
354
- <div class="method-heading">
355
- <a href="#M000110" class="method-signature">
356
- <span class="method-name">get_time_consuming_url_data</span><span class="method-args">(app_id, start_time, end_time)</span>
357
- </a>
358
- </div>
359
-
360
- <div class="method-description">
361
- <p>
362
- This method is get data of the time consuming urls of an application. This
363
- method is called by the <a
364
- href="UrlTimeSample.html#M000107">get_url_calls_data</a> method.
365
- </p>
366
- <p><a class="source-toggle" href="#"
367
- onclick="toggleCode('M000110-source');return false;">[Source]</a></p>
368
- <div class="method-source-code" id="M000110-source">
369
- <pre>
370
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 86</span>
371
- 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_time_consuming_url_data</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>)
372
- 87: <span class="ruby-identifier">url_samples</span> = <span class="ruby-identifier">find</span>(<span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:select</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'url, sum(total_time) as time'</span>, <span class="ruby-identifier">:conditions=</span><span class="ruby-operator">&gt;</span>[<span class="ruby-value str">'app_id = ? and wall_time &gt;= ? and wall_time &lt; ?'</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>], <span class="ruby-identifier">:group</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'url'</span>, <span class="ruby-identifier">:order</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'time desc'</span>)
373
- 88: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">url_samples</span>
374
- 89: <span class="ruby-keyword kw">end</span>
375
- </pre>
376
- </div>
377
- </div>
378
- </div>
379
-
380
- <div id="method-M000111" class="method-detail">
381
- <a name="M000111"></a>
382
-
383
- <div class="method-heading">
384
- <a href="#M000111" class="method-signature">
385
- <span class="method-name">get_top_db_consuming_url_data</span><span class="method-args">(app_id, start_time, end_time)</span>
386
- </a>
387
- </div>
388
-
389
- <div class="method-description">
390
- <p>
391
- This method is get data of the top database consuming urls of an
392
- application. This method is called by the <a
393
- href="UrlTimeSample.html#M000107">get_url_calls_data</a> method.
394
- </p>
395
- <p><a class="source-toggle" href="#"
396
- onclick="toggleCode('M000111-source');return false;">[Source]</a></p>
397
- <div class="method-source-code" id="M000111-source">
398
- <pre>
399
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 92</span>
400
- 92: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_top_db_consuming_url_data</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>)
401
- 93: <span class="ruby-identifier">url_samples</span> = <span class="ruby-identifier">find</span>(<span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:select</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'url, sum(db_time) as time'</span>, <span class="ruby-identifier">:conditions=</span><span class="ruby-operator">&gt;</span>[<span class="ruby-value str">'app_id = ? and wall_time &gt;= ? and wall_time &lt; ?'</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>], <span class="ruby-identifier">:group</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'url'</span>, <span class="ruby-identifier">:order</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'time desc'</span>)
402
- 94: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">url_samples</span>
403
- 95: <span class="ruby-keyword kw">end</span>
404
- </pre>
405
- </div>
406
- </div>
407
- </div>
408
-
409
- <div id="method-M000107" class="method-detail">
410
- <a name="M000107"></a>
411
-
412
- <div class="method-heading">
413
- <a href="#M000107" class="method-signature">
414
- <span class="method-name">get_url_calls_data</span><span class="method-args">(app_id, from_date, to_date, type)</span>
415
- </a>
416
- </div>
417
-
418
- <div class="method-description">
419
- <p>
420
- This method returns a hash of data for the graphs Url HIts , Slowest Url
421
- and Most time Consuming Url for an application.
422
- </p>
423
- <p><a class="source-toggle" href="#"
424
- onclick="toggleCode('M000107-source');return false;">[Source]</a></p>
425
- <div class="method-source-code" id="M000107-source">
426
- <pre>
427
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 27</span>
428
- 27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_url_calls_data</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">from_date</span>, <span class="ruby-identifier">to_date</span>, <span class="ruby-identifier">type</span>)
429
- 28: <span class="ruby-identifier">max</span> = <span class="ruby-value">0</span>
430
- 29: <span class="ruby-identifier">urls</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
431
- 30: <span class="ruby-identifier">final_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
432
- 31: <span class="ruby-identifier">start_time</span> = <span class="ruby-identifier">from_date</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y-%m-%d&quot;</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot; 00:00:00&quot;</span>
433
- 32: <span class="ruby-identifier">end_time</span> = <span class="ruby-identifier">to_date</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-value str">&quot;%Y-%m-%d&quot;</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot; 23:59:59&quot;</span>
434
- 33: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;requests&quot;</span>
435
- 34: <span class="ruby-identifier">url_samples</span> = <span class="ruby-identifier">get_url_hits_data</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>)
436
- 35: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;slowesturl&quot;</span>
437
- 36: <span class="ruby-identifier">url_samples</span> = <span class="ruby-identifier">get_slowest_url_data</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>)
438
- 37: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;timeconsumingurl&quot;</span>
439
- 38: <span class="ruby-identifier">url_samples</span> = <span class="ruby-identifier">get_time_consuming_url_data</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>)
440
- 39: <span class="ruby-keyword kw">else</span>
441
- 40: <span class="ruby-identifier">url_samples</span> = <span class="ruby-identifier">get_top_db_consuming_url_data</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>)
442
- 41: <span class="ruby-keyword kw">end</span>
443
- 42: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">url_samples</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
444
- 43: <span class="ruby-identifier">url_samples</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">url_sample</span><span class="ruby-operator">|</span>
445
- 44: <span class="ruby-identifier">urls</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">url</span>
446
- 45: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;requests&quot;</span>
447
- 46: <span class="ruby-identifier">data</span> = <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">requests</span>.<span class="ruby-identifier">to_i</span>
448
- 47: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;slowesturl&quot;</span>
449
- 48: <span class="ruby-identifier">data</span> = <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">result</span>.<span class="ruby-identifier">to_i</span>
450
- 49: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;timeconsumingurl&quot;</span>
451
- 50: <span class="ruby-identifier">data</span> = <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">time</span>.<span class="ruby-identifier">to_f</span><span class="ruby-operator">/</span><span class="ruby-value">1000</span>
452
- 51: <span class="ruby-keyword kw">else</span>
453
- 52: <span class="ruby-identifier">data</span> = <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">time</span>.<span class="ruby-identifier">to_f</span><span class="ruby-operator">/</span><span class="ruby-value">1000</span>
454
- 53: <span class="ruby-keyword kw">end</span>
455
- 54: <span class="ruby-identifier">final_data</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">data</span>
456
- 55: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">data</span>
457
- 56: <span class="ruby-identifier">max</span> = <span class="ruby-identifier">data</span>
458
- 57: <span class="ruby-keyword kw">end</span>
459
- 58: <span class="ruby-keyword kw">end</span>
460
- 59: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">urls</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">15</span>
461
- 60: <span class="ruby-keyword kw">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword kw">in</span> <span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">14</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">urls</span>.<span class="ruby-identifier">size</span>
462
- 61: <span class="ruby-identifier">urls</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value str">&quot;&quot;</span>
463
- 62: <span class="ruby-identifier">final_data</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">0</span>
464
- 63: <span class="ruby-keyword kw">end</span>
465
- 64: <span class="ruby-keyword kw">else</span>
466
- 65: <span class="ruby-identifier">urls</span> = <span class="ruby-identifier">urls</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">14</span>]
467
- 66: <span class="ruby-identifier">final_data</span> = <span class="ruby-identifier">final_data</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">14</span>]
468
- 67: <span class="ruby-keyword kw">end</span>
469
- 68: <span class="ruby-keyword kw">end</span>
470
- 69: <span class="ruby-identifier">max</span>, <span class="ruby-identifier">slab</span> = <span class="ruby-identifier">get_max_and_slab</span>(<span class="ruby-identifier">max</span>)
471
- 70: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">urls</span>, <span class="ruby-identifier">final_data</span>, <span class="ruby-identifier">max</span>, <span class="ruby-identifier">slab</span>
472
- 71: <span class="ruby-keyword kw">end</span>
473
- </pre>
474
- </div>
475
- </div>
476
- </div>
477
-
478
- <div id="method-M000114" class="method-detail">
479
- <a name="M000114"></a>
480
-
481
- <div class="method-heading">
482
- <a href="#M000114" class="method-signature">
483
- <span class="method-name">get_url_data</span><span class="method-args">(start_time, end_time, app_id, url_name)</span>
484
- </a>
485
- </div>
486
-
487
- <div class="method-description">
488
- <p>
489
- This method returns the total_time, db_time and rendering time for an url
490
- of an application for the given period between start_time and end_time
491
- </p>
492
- <p><a class="source-toggle" href="#"
493
- onclick="toggleCode('M000114-source');return false;">[Source]</a></p>
494
- <div class="method-source-code" id="M000114-source">
495
- <pre>
496
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 125</span>
497
- 125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_url_data</span>(<span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">url_name</span>)
498
- 126: <span class="ruby-identifier">url_samples</span>=<span class="ruby-constant">UrlTimeSample</span>.<span class="ruby-identifier">find</span><span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:select=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'sum(total_time) as total_time, sum(db_time) as db_time, sum(rendering_time) as rendering_time, sum(number_of_requests) as requests'</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">'app_id = ? and url = ? and wall_time &gt;= ? and wall_time &lt; ?'</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">url_name</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>]
499
- 127: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">url_samples</span>
500
- 128: <span class="ruby-keyword kw">end</span>
501
- </pre>
502
- </div>
503
- </div>
504
- </div>
505
-
506
- <div id="method-M000108" class="method-detail">
507
- <a name="M000108"></a>
508
-
509
- <div class="method-heading">
510
- <a href="#M000108" class="method-signature">
511
- <span class="method-name">get_url_hits_data</span><span class="method-args">(app_id, start_time, end_time)</span>
512
- </a>
513
- </div>
514
-
515
- <div class="method-description">
516
- <p>
517
- This method is get data of the url hits for an application. This method is
518
- called by the <a href="UrlTimeSample.html#M000107">get_url_calls_data</a>
519
- method.
520
- </p>
521
- <p><a class="source-toggle" href="#"
522
- onclick="toggleCode('M000108-source');return false;">[Source]</a></p>
523
- <div class="method-source-code" id="M000108-source">
524
- <pre>
525
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 74</span>
526
- 74: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_url_hits_data</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>)
527
- 75: <span class="ruby-identifier">url_samples</span> = <span class="ruby-identifier">find</span>(<span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:select</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'url, sum(number_of_requests) as requests'</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">'app_id = ? and wall_time &gt;= ? and wall_time &lt; ?'</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>], <span class="ruby-identifier">:group</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'url'</span>, <span class="ruby-identifier">:order</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'requests desc'</span>)
528
- 76: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">url_samples</span>
529
- 77: <span class="ruby-keyword kw">end</span>
530
- </pre>
531
- </div>
532
- </div>
533
- </div>
534
-
535
- <div id="method-M000115" class="method-detail">
536
- <a name="M000115"></a>
537
-
538
- <div class="method-heading">
539
- <a href="#M000115" class="method-signature">
540
- <span class="method-name">get_url_id</span><span class="method-args">(start_time, end_time, url_name,app_id)</span>
541
- </a>
542
- </div>
543
-
544
- <div class="method-description">
545
- <p>
546
- This method returns the array of the url ids for a particular url of an
547
- application that was hit in a period between start_time and end_time
548
- </p>
549
- <p><a class="source-toggle" href="#"
550
- onclick="toggleCode('M000115-source');return false;">[Source]</a></p>
551
- <div class="method-source-code" id="M000115-source">
552
- <pre>
553
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 132</span>
554
- 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_url_id</span>(<span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>, <span class="ruby-identifier">url_name</span>,<span class="ruby-identifier">app_id</span>)
555
- 133: <span class="ruby-identifier">url_samples</span> = <span class="ruby-constant">UrlTimeSample</span>.<span class="ruby-identifier">find</span><span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:select</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'id, url'</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">'url = ? and app_id = ? and wall_time &gt;= ? and wall_time &lt; ?'</span>, <span class="ruby-identifier">url_name</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>]
556
- 134: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">url_samples</span>
557
- 135: <span class="ruby-keyword kw">end</span>
558
- </pre>
559
- </div>
560
- </div>
561
- </div>
562
-
563
- <div id="method-M000113" class="method-detail">
564
- <a name="M000113"></a>
565
-
566
- <div class="method-heading">
567
- <a href="#M000113" class="method-signature">
568
- <span class="method-name">get_urls</span><span class="method-args">(start_time, end_time, app_id)</span>
569
- </a>
570
- </div>
571
-
572
- <div class="method-description">
573
- <p>
574
- This method returns the array of the url for an application that were hit
575
- between start_time and end_time
576
- </p>
577
- <p><a class="source-toggle" href="#"
578
- onclick="toggleCode('M000113-source');return false;">[Source]</a></p>
579
- <div class="method-source-code" id="M000113-source">
580
- <pre>
581
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 114</span>
582
- 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get_urls</span>(<span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>, <span class="ruby-identifier">app_id</span>)
583
- 115: <span class="ruby-identifier">urls</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
584
- 116: <span class="ruby-identifier">url_samples</span> = <span class="ruby-constant">UrlTimeSample</span>.<span class="ruby-identifier">find</span><span class="ruby-identifier">:all</span>, <span class="ruby-identifier">:select=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'id, url, sum(total_time) as time'</span>, <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-value str">'app_id = ? and wall_time &gt;= ? and wall_time &lt; ?'</span>, <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>], <span class="ruby-identifier">:group</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'url'</span>, <span class="ruby-identifier">:order</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value str">'time desc'</span>
585
- 117: <span class="ruby-identifier">url_samples</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">url_sample</span><span class="ruby-operator">|</span>
586
- 118: <span class="ruby-identifier">urls</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">url</span>
587
- 119: <span class="ruby-keyword kw">end</span>
588
- 120: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">urls</span>
589
- 121: <span class="ruby-keyword kw">end</span>
590
- </pre>
591
- </div>
592
- </div>
593
- </div>
594
-
595
- <div id="method-M000120" class="method-detail">
596
- <a name="M000120"></a>
597
-
598
- <div class="method-heading">
599
- <a href="#M000120" class="method-signature">
600
- <span class="method-name">write_all_samples</span><span class="method-args">(message_analyzer)</span>
601
- </a>
602
- </div>
603
-
604
- <div class="method-description">
605
- <p>
606
- At time of stopping a script, we would write the samples which are in
607
- memory.
608
- </p>
609
- <p><a class="source-toggle" href="#"
610
- onclick="toggleCode('M000120-source');return false;">[Source]</a></p>
611
- <div class="method-source-code" id="M000120-source">
612
- <pre>
613
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 257</span>
614
- 257: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write_all_samples</span>(<span class="ruby-identifier">message_analyzer</span>)
615
- 258: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
616
- 259: <span class="ruby-keyword kw">return</span>
617
- 260: <span class="ruby-keyword kw">end</span>
618
- 261:
619
- 262: <span class="ruby-comment cmt"># it will contain all the url samples for all the application.</span>
620
- 263: <span class="ruby-identifier">all_samples</span> = <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>
621
- 264: <span class="ruby-identifier">all_samples</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">app_samples</span><span class="ruby-operator">|</span>
622
- 265: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">app_samples</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
623
- 266: <span class="ruby-identifier">app_samples</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">url</span>, <span class="ruby-identifier">sample</span><span class="ruby-operator">|</span>
624
- 267: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sample</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">sample</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
625
- 268: <span class="ruby-identifier">o_wall_time</span> = <span class="ruby-identifier">sample</span>.<span class="ruby-identifier">first</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">sampling_rate</span>
626
- 269: <span class="ruby-identifier">tmp_sample</span> = <span class="ruby-identifier">sample</span>[<span class="ruby-value">1</span>]
627
- 270: <span class="ruby-identifier">create_sample</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">tmp_sample</span>, <span class="ruby-identifier">o_wall_time</span>, <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">sampling_rate</span>, <span class="ruby-identifier">tmp_sample</span>[<span class="ruby-value">4</span>])
628
- 271: <span class="ruby-comment cmt">#url_sample = create({:app_id =&gt; app_id, :url =&gt; url, :total_time =&gt; tmp_sample[0], :db_time =&gt; tmp_sample[1], :rendering_time =&gt; tmp_sample[2], :number_of_requests =&gt; tmp_sample[3], :wall_time =&gt; o_wall_time, :sampling_rate =&gt; message_analyzer.sampling_rate})</span>
629
- 272: <span class="ruby-comment cmt">#tmp_hash = tmp_sample[4]</span>
630
- 273: <span class="ruby-comment cmt">#p tmp_hash</span>
631
- 274: <span class="ruby-comment cmt">#if tmp_hash and tmp_hash.length &gt; 0</span>
632
- 275: <span class="ruby-comment cmt"># tmp_hash.each_pair do |key, value|</span>
633
- 276: <span class="ruby-comment cmt"># UrlBreakupTimeSample.create({:app_id =&gt; app_id, :url_sample_id =&gt; url_sample.id, :method_name =&gt; key, :spent_time =&gt; value, :wall_time =&gt; url_sample.wall_time})</span>
634
- 277: <span class="ruby-comment cmt"># end # do |key, value|</span>
635
- 278: <span class="ruby-comment cmt">#end</span>
636
- 279: <span class="ruby-keyword kw">end</span>
637
- 280: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># do |url, sample|</span>
638
- 281: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if app_samples.length != 0</span>
639
- 282: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># do |app_id, app_samples|</span>
640
- 283: <span class="ruby-keyword kw">end</span>
641
- </pre>
642
- </div>
643
- </div>
644
- </div>
645
-
646
- <div id="method-M000119" class="method-detail">
647
- <a name="M000119"></a>
648
-
649
- <div class="method-heading">
650
- <a href="#M000119" class="method-signature">
651
- <span class="method-name">write_stale_samples</span><span class="method-args">(message_analyzer)</span>
652
- </a>
653
- </div>
654
-
655
- <div class="method-description">
656
- <p>
657
- We have kept sampling period of one minute and would keep any sample in
658
- memory for maximum one minute. By this method we # would write all such
659
- samples which are in memory for more than a minute.
660
- </p>
661
- <p><a class="source-toggle" href="#"
662
- onclick="toggleCode('M000119-source');return false;">[Source]</a></p>
663
- <div class="method-source-code" id="M000119-source">
664
- <pre>
665
- <span class="ruby-comment cmt"># File app/models/url_time_sample.rb, line 230</span>
666
- 230: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write_stale_samples</span>(<span class="ruby-identifier">message_analyzer</span>)
667
- 231: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
668
- 232: <span class="ruby-keyword kw">return</span>
669
- 233: <span class="ruby-keyword kw">end</span>
670
- 234: <span class="ruby-comment cmt"># it will contain all the url samples for all the application.</span>
671
- 235: <span class="ruby-identifier">all_samples</span> = <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>
672
- 236: <span class="ruby-identifier">all_samples</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">app_samples</span><span class="ruby-operator">|</span>
673
- 237: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">app_samples</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
674
- 238: <span class="ruby-identifier">app_samples</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">url</span>, <span class="ruby-identifier">sample</span><span class="ruby-operator">|</span>
675
- 239: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">sample</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">sample</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> (<span class="ruby-identifier">o_wall_time</span> = <span class="ruby-identifier">sample</span>.<span class="ruby-identifier">first</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">sampling_rate</span>) <span class="ruby-operator">&lt;</span> <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
676
- 240: <span class="ruby-identifier">tmp_sample</span> = <span class="ruby-identifier">sample</span>[<span class="ruby-value">1</span>]
677
- 241: <span class="ruby-identifier">create_sample</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">tmp_sample</span>, <span class="ruby-identifier">o_wall_time</span>, <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">sampling_rate</span>, <span class="ruby-identifier">tmp_sample</span>[<span class="ruby-value">4</span>])
678
- 242: <span class="ruby-comment cmt">#url_sample = create({:app_id =&gt; app_id, :url =&gt; url, :total_time =&gt; tmp_sample[0], :db_time =&gt; tmp_sample[1], :rendering_time =&gt; tmp_sample[2], :number_of_requests =&gt; tmp_sample[3], :wall_time =&gt; o_wall_time, :sampling_rate =&gt; message_analyzer.sampling_rate})</span>
679
- 243: <span class="ruby-comment cmt">#tmp_hash = tmp_sample[4]</span>
680
- 244: <span class="ruby-comment cmt">#if tmp_hash and tmp_hash.length &gt; 0</span>
681
- 245: <span class="ruby-comment cmt"># tmp_hash.each_pair do |key, value|</span>
682
- 246: <span class="ruby-comment cmt"># UrlBreakupTimeSample.create({:app_id =&gt; app_id, :url_sample_id =&gt; url_sample.id, :method_name =&gt; key, :spent_time =&gt; value, :wall_time =&gt; url_sample.wall_time})</span>
683
- 247: <span class="ruby-comment cmt"># end # do |key, value|</span>
684
- 248: <span class="ruby-comment cmt">#end</span>
685
- 249: <span class="ruby-identifier">app_samples</span>[<span class="ruby-identifier">url</span>] = <span class="ruby-keyword kw">nil</span>
686
- 250: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if (o_wall_time = url_sample.first + message_analyzer.sampling_rate) &lt; Time.now</span>
687
- 251: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># do |url, sample|</span>
688
- 252: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># if app_samples.length != 0</span>
689
- 253: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># do |app_id, app_samples|</span>
690
- 254: <span class="ruby-keyword kw">end</span>
691
- </pre>
692
- </div>
693
- </div>
694
- </div>
695
-
696
-
697
- </div>
698
-
699
-
700
- </div>
701
-
702
-
703
- <div id="validator-badges">
704
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
705
- </div>
706
-
707
- </body>
708
- </html>