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
@@ -0,0 +1,287 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: UrlBreakupTimeSample</title>
9
+
10
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="./js/jquery.js" type="text/javascript" charset="utf-8"></script>
13
+ <script src="./js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
14
+ <script src="./js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
15
+ <script src="./js/darkfish.js" type="text/javascript" charset="utf-8"></script>
16
+
17
+ </head>
18
+ <body id="top" class="class">
19
+
20
+ <div id="metadata">
21
+ <div id="home-metadata">
22
+ <div id="home-section" class="section">
23
+ <h3 class="section-header">
24
+ <a href="./index.html">Home</a>
25
+ <a href="./index.html#classes">Classes</a>
26
+ <a href="./index.html#methods">Methods</a>
27
+ </h3>
28
+ </div>
29
+ </div>
30
+
31
+ <div id="file-metadata">
32
+ <div id="file-list-section" class="section">
33
+ <h3 class="section-header">In Files</h3>
34
+ <div class="section-body">
35
+ <ul>
36
+
37
+ <li><a href="./app/models/url_breakup_time_sample_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
38
+ class="thickbox" title="app/models/url_breakup_time_sample.rb">app/models/url_breakup_time_sample.rb</a></li>
39
+
40
+ </ul>
41
+ </div>
42
+ </div>
43
+
44
+
45
+ </div>
46
+
47
+ <div id="class-metadata">
48
+
49
+ <!-- Parent Class -->
50
+ <div id="parent-class-section" class="section">
51
+ <h3 class="section-header">Parent</h3>
52
+
53
+ <p class="link">ActiveRecord::Base</p>
54
+
55
+ </div>
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+ <!-- Method Quickref -->
64
+ <div id="method-list-section" class="section">
65
+ <h3 class="section-header">Methods</h3>
66
+ <ul class="link-list">
67
+
68
+ <li><a href="#method-c-get_url_breakup_sample_data">::get_url_breakup_sample_data</a></li>
69
+
70
+ </ul>
71
+ </div>
72
+
73
+
74
+
75
+ </div>
76
+
77
+ <div id="project-metadata">
78
+
79
+
80
+ <div id="fileindex-section" class="section project-section">
81
+ <h3 class="section-header">Files</h3>
82
+ <ul>
83
+
84
+ <li class="file"><a href="./doc/README_FOR_APP.html">README_FOR_APP</a></li>
85
+
86
+ </ul>
87
+ </div>
88
+
89
+
90
+ <div id="classindex-section" class="section project-section">
91
+ <h3 class="section-header">Class/Module Index
92
+ <span class="search-toggle"><img src="./images/find.png"
93
+ height="16" width="16" alt="[+]"
94
+ title="show/hide quicksearch" /></span></h3>
95
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
96
+ <fieldset>
97
+ <legend>Quicksearch</legend>
98
+ <input type="text" name="quicksearch" value=""
99
+ class="quicksearch-field" />
100
+ </fieldset>
101
+ </form>
102
+
103
+ <ul class="link-list">
104
+
105
+ <li><a href="./Analytics.html">Analytics</a></li>
106
+
107
+ <li><a href="./Analytics/Database.html">Analytics::Database</a></li>
108
+
109
+ <li><a href="./Analytics/ResourceUsage.html">Analytics::ResourceUsage</a></li>
110
+
111
+ <li><a href="./Analytics/Throughput.html">Analytics::Throughput</a></li>
112
+
113
+ <li><a href="./Analytics/Url.html">Analytics::Url</a></li>
114
+
115
+ <li><a href="./Analytics/UrlBreakup.html">Analytics::UrlBreakup</a></li>
116
+
117
+ <li><a href="./ActionView.html">ActionView</a></li>
118
+
119
+ <li><a href="./ActionView/Helpers.html">ActionView::Helpers</a></li>
120
+
121
+ <li><a href="./ActionView/Helpers/AssetTagHelper.html">ActionView::Helpers::AssetTagHelper</a></li>
122
+
123
+ <li><a href="./AdminController.html">AdminController</a></li>
124
+
125
+ <li><a href="./AdminHelper.html">AdminHelper</a></li>
126
+
127
+ <li><a href="./App.html">App</a></li>
128
+
129
+ <li><a href="./AppException.html">AppException</a></li>
130
+
131
+ <li><a href="./AppTimeSample.html">AppTimeSample</a></li>
132
+
133
+ <li><a href="./ApplicationController.html">ApplicationController</a></li>
134
+
135
+ <li><a href="./ApplicationHelper.html">ApplicationHelper</a></li>
136
+
137
+ <li><a href="./ApplicationSpecification.html">ApplicationSpecification</a></li>
138
+
139
+ <li><a href="./ApplicationSpecificationController.html">ApplicationSpecificationController</a></li>
140
+
141
+ <li><a href="./ApplicationSpecificationHelper.html">ApplicationSpecificationHelper</a></li>
142
+
143
+ <li><a href="./Control.html">Control</a></li>
144
+
145
+ <li><a href="./ExceptionDetail.html">ExceptionDetail</a></li>
146
+
147
+ <li><a href="./ExceptionsController.html">ExceptionsController</a></li>
148
+
149
+ <li><a href="./ExceptionsHelper.html">ExceptionsHelper</a></li>
150
+
151
+ <li><a href="./GraphController.html">GraphController</a></li>
152
+
153
+ <li><a href="./GraphHelper.html">GraphHelper</a></li>
154
+
155
+ <li><a href="./Headers.html">Headers</a></li>
156
+
157
+ <li><a href="./HeadersController.html">HeadersController</a></li>
158
+
159
+ <li><a href="./HeadersHelper.html">HeadersHelper</a></li>
160
+
161
+ <li><a href="./MailSpecification.html">MailSpecification</a></li>
162
+
163
+ <li><a href="./MailSpecificationController.html">MailSpecificationController</a></li>
164
+
165
+ <li><a href="./MailSpecificationHelper.html">MailSpecificationHelper</a></li>
166
+
167
+ <li><a href="./Mailer.html">Mailer</a></li>
168
+
169
+ <li><a href="./Object.html">Object</a></li>
170
+
171
+ <li><a href="./PseudoModel.html">PseudoModel</a></li>
172
+
173
+ <li><a href="./ResourceUsage.html">ResourceUsage</a></li>
174
+
175
+ <li><a href="./SCGI.html">SCGI</a></li>
176
+
177
+ <li><a href="./ServerSpecification.html">ServerSpecification</a></li>
178
+
179
+ <li><a href="./ServerSpecificationController.html">ServerSpecificationController</a></li>
180
+
181
+ <li><a href="./ServerSpecificationHelper.html">ServerSpecificationHelper</a></li>
182
+
183
+ <li><a href="./SignalHelper.html">SignalHelper</a></li>
184
+
185
+ <li><a href="./UrlBreakupTimeSample.html">UrlBreakupTimeSample</a></li>
186
+
187
+ <li><a href="./UrlTimeSample.html">UrlTimeSample</a></li>
188
+
189
+ <li><a href="./User.html">User</a></li>
190
+
191
+ <li><a href="./YAMLConfig.html">YAMLConfig</a></li>
192
+
193
+ <li><a href="./YAMLWriter.html">YAMLWriter</a></li>
194
+
195
+ </ul>
196
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
197
+ </div>
198
+
199
+
200
+ </div>
201
+ </div>
202
+
203
+ <div id="documentation">
204
+ <h1 class="class">UrlBreakupTimeSample</h1>
205
+
206
+ <div id="description" class="description">
207
+
208
+ <p>This is the model class <a
209
+ href="UrlBreakupTimeSample.html">UrlBreakupTimeSample</a> related to the
210
+ url_breakup_samples table in the database.</p>
211
+
212
+ </div><!-- description -->
213
+
214
+
215
+
216
+
217
+ <div id="5Buntitled-5D" class="documentation-section">
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+ <!-- Methods -->
227
+
228
+ <div id="public-class-method-details" class="method-section section">
229
+ <h3 class="section-header">Public Class Methods</h3>
230
+
231
+
232
+ <div id="get_url_breakup_sample_data-method" class="method-detail ">
233
+ <a name="method-c-get_url_breakup_sample_data"></a>
234
+
235
+
236
+ <div class="method-heading">
237
+ <span class="method-name">get_url_breakup_sample_data</span><span
238
+ class="method-args">(url_id)</span>
239
+ <span class="method-click-advice">click to toggle source</span>
240
+ </div>
241
+
242
+
243
+ <div class="method-description">
244
+
245
+ <p>This method gives the data details for the url in the table. The url data
246
+ is retrived with the help of url ids. The array of url id is supplied as
247
+ input to this method.</p>
248
+
249
+
250
+
251
+ <div class="method-source-code" id="get_url_breakup_sample_data-source">
252
+ <pre>
253
+ <span class="ruby-comment"># File app/models/url_breakup_time_sample.rb, line 27</span>
254
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_url_breakup_sample_data</span>(<span class="ruby-identifier">url_id</span>)
255
+ <span class="ruby-identifier">criteria</span> = <span class="ruby-string">&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-string">&quot;, &quot;</span>) <span class="ruby-operator">||</span> <span class="ruby-string">''</span>) <span class="ruby-operator">+</span> <span class="ruby-string">')'</span>
256
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">select</span>(<span class="ruby-string">'method_name,
257
+ sum(spent_time) as time_spent'</span>
258
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-identifier">criteria</span>
259
+ ).<span class="ruby-identifier">group</span>(<span class="ruby-value">:method_name</span>
260
+ ).<span class="ruby-identifier">order</span>(<span class="ruby-string">'time_spent desc'</span>)
261
+ <span class="ruby-keyword">end</span></pre>
262
+ </div><!-- get_url_breakup_sample_data-source -->
263
+
264
+ </div>
265
+
266
+
267
+
268
+
269
+ </div><!-- get_url_breakup_sample_data-method -->
270
+
271
+
272
+ </div><!-- public-class-method-details -->
273
+
274
+ </div><!-- 5Buntitled-5D -->
275
+
276
+
277
+ </div><!-- documentation -->
278
+
279
+ <div id="validator-badges">
280
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
281
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
282
+ Rdoc Generator</a> 2</small>.</p>
283
+ </div>
284
+
285
+ </body>
286
+ </html>
287
+
@@ -0,0 +1,986 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: UrlTimeSample</title>
9
+
10
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="./js/jquery.js" type="text/javascript" charset="utf-8"></script>
13
+ <script src="./js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
14
+ <script src="./js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
15
+ <script src="./js/darkfish.js" type="text/javascript" charset="utf-8"></script>
16
+
17
+ </head>
18
+ <body id="top" class="class">
19
+
20
+ <div id="metadata">
21
+ <div id="home-metadata">
22
+ <div id="home-section" class="section">
23
+ <h3 class="section-header">
24
+ <a href="./index.html">Home</a>
25
+ <a href="./index.html#classes">Classes</a>
26
+ <a href="./index.html#methods">Methods</a>
27
+ </h3>
28
+ </div>
29
+ </div>
30
+
31
+ <div id="file-metadata">
32
+ <div id="file-list-section" class="section">
33
+ <h3 class="section-header">In Files</h3>
34
+ <div class="section-body">
35
+ <ul>
36
+
37
+ <li><a href="./app/models/url_time_sample_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
38
+ class="thickbox" title="app/models/url_time_sample.rb">app/models/url_time_sample.rb</a></li>
39
+
40
+ </ul>
41
+ </div>
42
+ </div>
43
+
44
+
45
+ </div>
46
+
47
+ <div id="class-metadata">
48
+
49
+ <!-- Parent Class -->
50
+ <div id="parent-class-section" class="section">
51
+ <h3 class="section-header">Parent</h3>
52
+
53
+ <p class="link">ActiveRecord::Base</p>
54
+
55
+ </div>
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+ <!-- Method Quickref -->
64
+ <div id="method-list-section" class="section">
65
+ <h3 class="section-header">Methods</h3>
66
+ <ul class="link-list">
67
+
68
+ <li><a href="#method-c-add_to_sample">::add_to_sample</a></li>
69
+
70
+ <li><a href="#method-c-create_breakup_sample">::create_breakup_sample</a></li>
71
+
72
+ <li><a href="#method-c-create_sample">::create_sample</a></li>
73
+
74
+ <li><a href="#method-c-get_max_and_slab">::get_max_and_slab</a></li>
75
+
76
+ <li><a href="#method-c-get_slowest_url_data">::get_slowest_url_data</a></li>
77
+
78
+ <li><a href="#method-c-get_time_consuming_url_data">::get_time_consuming_url_data</a></li>
79
+
80
+ <li><a href="#method-c-get_top_db_consuming_url_data">::get_top_db_consuming_url_data</a></li>
81
+
82
+ <li><a href="#method-c-get_url_calls_data">::get_url_calls_data</a></li>
83
+
84
+ <li><a href="#method-c-get_url_data">::get_url_data</a></li>
85
+
86
+ <li><a href="#method-c-get_url_hits_data">::get_url_hits_data</a></li>
87
+
88
+ <li><a href="#method-c-get_url_id">::get_url_id</a></li>
89
+
90
+ <li><a href="#method-c-get_urls">::get_urls</a></li>
91
+
92
+ <li><a href="#method-c-write_all_samples">::write_all_samples</a></li>
93
+
94
+ <li><a href="#method-c-write_stale_samples">::write_stale_samples</a></li>
95
+
96
+ </ul>
97
+ </div>
98
+
99
+
100
+
101
+ </div>
102
+
103
+ <div id="project-metadata">
104
+
105
+
106
+ <div id="fileindex-section" class="section project-section">
107
+ <h3 class="section-header">Files</h3>
108
+ <ul>
109
+
110
+ <li class="file"><a href="./doc/README_FOR_APP.html">README_FOR_APP</a></li>
111
+
112
+ </ul>
113
+ </div>
114
+
115
+
116
+ <div id="classindex-section" class="section project-section">
117
+ <h3 class="section-header">Class/Module Index
118
+ <span class="search-toggle"><img src="./images/find.png"
119
+ height="16" width="16" alt="[+]"
120
+ title="show/hide quicksearch" /></span></h3>
121
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
122
+ <fieldset>
123
+ <legend>Quicksearch</legend>
124
+ <input type="text" name="quicksearch" value=""
125
+ class="quicksearch-field" />
126
+ </fieldset>
127
+ </form>
128
+
129
+ <ul class="link-list">
130
+
131
+ <li><a href="./Analytics.html">Analytics</a></li>
132
+
133
+ <li><a href="./Analytics/Database.html">Analytics::Database</a></li>
134
+
135
+ <li><a href="./Analytics/ResourceUsage.html">Analytics::ResourceUsage</a></li>
136
+
137
+ <li><a href="./Analytics/Throughput.html">Analytics::Throughput</a></li>
138
+
139
+ <li><a href="./Analytics/Url.html">Analytics::Url</a></li>
140
+
141
+ <li><a href="./Analytics/UrlBreakup.html">Analytics::UrlBreakup</a></li>
142
+
143
+ <li><a href="./ActionView.html">ActionView</a></li>
144
+
145
+ <li><a href="./ActionView/Helpers.html">ActionView::Helpers</a></li>
146
+
147
+ <li><a href="./ActionView/Helpers/AssetTagHelper.html">ActionView::Helpers::AssetTagHelper</a></li>
148
+
149
+ <li><a href="./AdminController.html">AdminController</a></li>
150
+
151
+ <li><a href="./AdminHelper.html">AdminHelper</a></li>
152
+
153
+ <li><a href="./App.html">App</a></li>
154
+
155
+ <li><a href="./AppException.html">AppException</a></li>
156
+
157
+ <li><a href="./AppTimeSample.html">AppTimeSample</a></li>
158
+
159
+ <li><a href="./ApplicationController.html">ApplicationController</a></li>
160
+
161
+ <li><a href="./ApplicationHelper.html">ApplicationHelper</a></li>
162
+
163
+ <li><a href="./ApplicationSpecification.html">ApplicationSpecification</a></li>
164
+
165
+ <li><a href="./ApplicationSpecificationController.html">ApplicationSpecificationController</a></li>
166
+
167
+ <li><a href="./ApplicationSpecificationHelper.html">ApplicationSpecificationHelper</a></li>
168
+
169
+ <li><a href="./Control.html">Control</a></li>
170
+
171
+ <li><a href="./ExceptionDetail.html">ExceptionDetail</a></li>
172
+
173
+ <li><a href="./ExceptionsController.html">ExceptionsController</a></li>
174
+
175
+ <li><a href="./ExceptionsHelper.html">ExceptionsHelper</a></li>
176
+
177
+ <li><a href="./GraphController.html">GraphController</a></li>
178
+
179
+ <li><a href="./GraphHelper.html">GraphHelper</a></li>
180
+
181
+ <li><a href="./Headers.html">Headers</a></li>
182
+
183
+ <li><a href="./HeadersController.html">HeadersController</a></li>
184
+
185
+ <li><a href="./HeadersHelper.html">HeadersHelper</a></li>
186
+
187
+ <li><a href="./MailSpecification.html">MailSpecification</a></li>
188
+
189
+ <li><a href="./MailSpecificationController.html">MailSpecificationController</a></li>
190
+
191
+ <li><a href="./MailSpecificationHelper.html">MailSpecificationHelper</a></li>
192
+
193
+ <li><a href="./Mailer.html">Mailer</a></li>
194
+
195
+ <li><a href="./Object.html">Object</a></li>
196
+
197
+ <li><a href="./PseudoModel.html">PseudoModel</a></li>
198
+
199
+ <li><a href="./ResourceUsage.html">ResourceUsage</a></li>
200
+
201
+ <li><a href="./SCGI.html">SCGI</a></li>
202
+
203
+ <li><a href="./ServerSpecification.html">ServerSpecification</a></li>
204
+
205
+ <li><a href="./ServerSpecificationController.html">ServerSpecificationController</a></li>
206
+
207
+ <li><a href="./ServerSpecificationHelper.html">ServerSpecificationHelper</a></li>
208
+
209
+ <li><a href="./SignalHelper.html">SignalHelper</a></li>
210
+
211
+ <li><a href="./UrlBreakupTimeSample.html">UrlBreakupTimeSample</a></li>
212
+
213
+ <li><a href="./UrlTimeSample.html">UrlTimeSample</a></li>
214
+
215
+ <li><a href="./User.html">User</a></li>
216
+
217
+ <li><a href="./YAMLConfig.html">YAMLConfig</a></li>
218
+
219
+ <li><a href="./YAMLWriter.html">YAMLWriter</a></li>
220
+
221
+ </ul>
222
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
223
+ </div>
224
+
225
+
226
+ </div>
227
+ </div>
228
+
229
+ <div id="documentation">
230
+ <h1 class="class">UrlTimeSample</h1>
231
+
232
+ <div id="description" class="description">
233
+
234
+ <p>This is the model class <a href="UrlTimeSample.html">UrlTimeSample</a>
235
+ related to the url_samples table in the database.</p>
236
+
237
+ </div><!-- description -->
238
+
239
+
240
+
241
+
242
+ <div id="5Buntitled-5D" class="documentation-section">
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+ <!-- Methods -->
252
+
253
+ <div id="public-class-method-details" class="method-section section">
254
+ <h3 class="section-header">Public Class Methods</h3>
255
+
256
+
257
+ <div id="add_to_sample-method" class="method-detail ">
258
+ <a name="method-c-add_to_sample"></a>
259
+
260
+
261
+ <div class="method-heading">
262
+ <span class="method-name">add_to_sample</span><span
263
+ class="method-args">( message_analyzer, app_id, url, total_spent_time, db_time, rendering_time, db_time_breakup, wall_time)</span>
264
+ <span class="method-click-advice">click to toggle source</span>
265
+ </div>
266
+
267
+
268
+ <div class="method-description">
269
+
270
+ <p>url_samples contain at most one sample per url in the scope of application.
271
+ create url sample if not present if url presents, and wall_time falling in
272
+ sampling period, add it if url presents, and wall_time not falling in
273
+ sampling period and less than sampling period, check into database for that
274
+ sample and update it if url presents, and wall_time not falling in sampling
275
+ period and greater than sampling period, create new sample and insert
276
+ current into database.</p>
277
+
278
+
279
+
280
+ <div class="method-source-code" id="add_to_sample-source">
281
+ <pre>
282
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 208</span>
283
+ <span class="ruby-keyword">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>)
284
+ <span class="ruby-keyword">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">nil</span>
285
+ <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">#one more element(as a hash) come in last position for keeping db_breakup time</span>
286
+ <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>
287
+ <span class="ruby-keyword">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">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>
288
+ <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>]
289
+ <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>
290
+ <span class="ruby-identifier">sample</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">db_time</span>
291
+ <span class="ruby-identifier">sample</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">rendering_time</span>
292
+ <span class="ruby-identifier">sample</span>[<span class="ruby-value">3</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
293
+ <span class="ruby-identifier">tmp_hash</span> = <span class="ruby-identifier">sample</span>[<span class="ruby-value">4</span>]
294
+ <span class="ruby-identifier">db_time_breakup</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
295
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">tmp_hash</span>[<span class="ruby-identifier">key</span>]
296
+ <span class="ruby-identifier">tmp_hash</span>[<span class="ruby-identifier">key</span>] <span class="ruby-operator">+=</span> <span class="ruby-identifier">value</span>
297
+ <span class="ruby-keyword">else</span>
298
+ <span class="ruby-identifier">tmp_hash</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-identifier">value</span>
299
+ <span class="ruby-keyword">end</span>
300
+ <span class="ruby-keyword">end</span>
301
+ <span class="ruby-identifier">sample</span>[<span class="ruby-value">4</span>] = <span class="ruby-identifier">tmp_hash</span>
302
+ <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>
303
+ <span class="ruby-keyword">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>
304
+ <span class="ruby-identifier">url_sample</span> = <span class="ruby-identifier">find</span>(<span class="ruby-value">:first</span>, <span class="ruby-value">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-string">&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>])
305
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">url_sample</span>
306
+ <span class="ruby-identifier">url_breakup_sample</span> = <span class="ruby-constant">UrlBreakupTimeSample</span>.<span class="ruby-identifier">find</span>(<span class="ruby-value">:all</span>, <span class="ruby-value">:conditions</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-string">&quot;url_sample_id = ?&quot;</span>,<span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">id</span>])
307
+ <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>
308
+ <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>
309
+ <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>
310
+ <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>
311
+ <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">save!</span> <span class="ruby-keyword">rescue</span> <span class="ruby-keyword">nil</span>
312
+ <span class="ruby-identifier">db_breakup_keys</span> = <span class="ruby-identifier">db_time_breakup</span>.<span class="ruby-identifier">keys</span>
313
+ <span class="ruby-identifier">covered_keys</span> = []
314
+ <span class="ruby-identifier">url_breakup_sample</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">breakup</span><span class="ruby-operator">|</span>
315
+ <span class="ruby-keyword">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>)
316
+ <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>]
317
+ <span class="ruby-identifier">breakup</span>.<span class="ruby-identifier">save!</span> <span class="ruby-keyword">rescue</span> <span class="ruby-keyword">nil</span>
318
+ <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>)
319
+ <span class="ruby-keyword">end</span>
320
+ <span class="ruby-keyword">end</span>
321
+ <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>
322
+ <span class="ruby-identifier">remaining_keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
323
+ <span class="ruby-constant">UrlBreakupTimeSample</span>.<span class="ruby-identifier">create</span>({<span class="ruby-value">:app_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">app_id</span>, <span class="ruby-value">: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-value">:method_name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>, <span class="ruby-value">: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-value">: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">rescue</span> <span class="ruby-keyword">nil</span>
324
+ <span class="ruby-keyword">end</span>
325
+ <span class="ruby-keyword">else</span>
326
+ <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>
327
+ <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>)
328
+ <span class="ruby-comment">#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>
329
+ <span class="ruby-comment">#db_time_breakup.each_pair do |key, value|</span>
330
+ <span class="ruby-comment"># 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>
331
+ <span class="ruby-comment">#end</span>
332
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if url_sample</span>
333
+ <span class="ruby-keyword">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>
334
+ <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>
335
+ <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>]
336
+ <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>])
337
+ <span class="ruby-comment"># 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>
338
+ <span class="ruby-comment"># tmp_hash = sample[4]</span>
339
+ <span class="ruby-comment"># tmp_hash.each_pair do |key, value|</span>
340
+ <span class="ruby-comment"># 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>
341
+ <span class="ruby-comment"># end</span>
342
+ <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>]]
343
+ <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>
344
+ <span class="ruby-keyword">else</span>
345
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">UndefinedSituation</span>, <span class="ruby-string">&quot;Think of this possibility!&quot;</span>
346
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if</span>
347
+ <span class="ruby-keyword">end</span></pre>
348
+ </div><!-- add_to_sample-source -->
349
+
350
+ </div>
351
+
352
+
353
+
354
+
355
+ </div><!-- add_to_sample-method -->
356
+
357
+
358
+ <div id="create_breakup_sample-method" class="method-detail ">
359
+ <a name="method-c-create_breakup_sample"></a>
360
+
361
+
362
+ <div class="method-heading">
363
+ <span class="method-name">create_breakup_sample</span><span
364
+ class="method-args">(app_id, url_sample_id, key, value, wall_time)</span>
365
+ <span class="method-click-advice">click to toggle source</span>
366
+ </div>
367
+
368
+
369
+ <div class="method-description">
370
+
371
+
372
+
373
+
374
+
375
+ <div class="method-source-code" id="create_breakup_sample-source">
376
+ <pre>
377
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 197</span>
378
+ <span class="ruby-keyword">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>)
379
+ <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">do</span>
380
+ <span class="ruby-constant">UrlBreakupTimeSample</span>.<span class="ruby-identifier">create</span>({<span class="ruby-value">:app_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">app_id</span>, <span class="ruby-value">:url_sample_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url_sample_id</span>, <span class="ruby-value">:method_name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">key</span>, <span class="ruby-value">:spent_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">value</span>, <span class="ruby-value">:wall_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">wall_time</span>})
381
+ <span class="ruby-keyword">end</span>
382
+ <span class="ruby-keyword">end</span></pre>
383
+ </div><!-- create_breakup_sample-source -->
384
+
385
+ </div>
386
+
387
+
388
+
389
+
390
+ </div><!-- create_breakup_sample-method -->
391
+
392
+
393
+ <div id="create_sample-method" class="method-detail ">
394
+ <a name="method-c-create_sample"></a>
395
+
396
+
397
+ <div class="method-heading">
398
+ <span class="method-name">create_sample</span><span
399
+ class="method-args">(app_id, url, sample, wall_time, sampling_rate, db_time_breakup)</span>
400
+ <span class="method-click-advice">click to toggle source</span>
401
+ </div>
402
+
403
+
404
+ <div class="method-description">
405
+
406
+ <p>This section of the model is used by the Webraor Analyzer.</p>
407
+
408
+
409
+
410
+ <div class="method-source-code" id="create_sample-source">
411
+ <pre>
412
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 185</span>
413
+ <span class="ruby-keyword">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>)
414
+ <span class="ruby-identifier">url_sample</span> = <span class="ruby-keyword">nil</span>
415
+ <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">do</span>
416
+ <span class="ruby-identifier">url_sample</span> = <span class="ruby-identifier">create</span>({<span class="ruby-value">:app_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">app_id</span>, <span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url</span>, <span class="ruby-value">:total_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sample</span>[<span class="ruby-value">0</span>], <span class="ruby-value">:db_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sample</span>[<span class="ruby-value">1</span>], <span class="ruby-value">:rendering_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sample</span>[<span class="ruby-value">2</span>], <span class="ruby-value">: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-value">:wall_time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">wall_time</span>, <span class="ruby-value">:sampling_rate</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">sampling_rate</span>})
417
+ <span class="ruby-keyword">end</span>
418
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">url_sample</span>.<span class="ruby-identifier">id</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">db_time_breakup</span>
419
+ <span class="ruby-identifier">db_time_breakup</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
420
+ <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>)
421
+ <span class="ruby-keyword">end</span>
422
+ <span class="ruby-keyword">end</span>
423
+ <span class="ruby-keyword">end</span></pre>
424
+ </div><!-- create_sample-source -->
425
+
426
+ </div>
427
+
428
+
429
+
430
+
431
+ </div><!-- create_sample-method -->
432
+
433
+
434
+ <div id="get_max_and_slab-method" class="method-detail ">
435
+ <a name="method-c-get_max_and_slab"></a>
436
+
437
+
438
+ <div class="method-heading">
439
+ <span class="method-name">get_max_and_slab</span><span
440
+ class="method-args">(max)</span>
441
+ <span class="method-click-advice">click to toggle source</span>
442
+ </div>
443
+
444
+
445
+ <div class="method-description">
446
+
447
+ <p>This method gives the maximum value for y axis and the value by which the y
448
+ axis is to be partitioned.</p>
449
+
450
+
451
+
452
+ <div class="method-source-code" id="get_max_and_slab-source">
453
+ <pre>
454
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 124</span>
455
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_max_and_slab</span>(<span class="ruby-identifier">max</span>)
456
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
457
+ <span class="ruby-identifier">max</span> = <span class="ruby-value">1</span>
458
+ <span class="ruby-identifier">slab</span> = <span class="ruby-value">1</span>
459
+ <span class="ruby-keyword">else</span>
460
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">8</span>
461
+ <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>
462
+ <span class="ruby-keyword">else</span>
463
+ <span class="ruby-identifier">slab</span> = <span class="ruby-value">1</span>
464
+ <span class="ruby-keyword">end</span>
465
+ <span class="ruby-keyword">end</span>
466
+ <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>
467
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">max</span>, <span class="ruby-identifier">slab</span>
468
+ <span class="ruby-keyword">end</span></pre>
469
+ </div><!-- get_max_and_slab-source -->
470
+
471
+ </div>
472
+
473
+
474
+
475
+
476
+ </div><!-- get_max_and_slab-method -->
477
+
478
+
479
+ <div id="get_slowest_url_data-method" class="method-detail ">
480
+ <a name="method-c-get_slowest_url_data"></a>
481
+
482
+
483
+ <div class="method-heading">
484
+ <span class="method-name">get_slowest_url_data</span><span
485
+ class="method-args">(app_id, start_time, end_time)</span>
486
+ <span class="method-click-advice">click to toggle source</span>
487
+ </div>
488
+
489
+
490
+ <div class="method-description">
491
+
492
+ <p>This method is get data of the slowest urls of an application. This method
493
+ is called by the <a
494
+ href="UrlTimeSample.html#method-c-get_url_calls_data">get_url_calls_data</a>
495
+ method.</p>
496
+
497
+
498
+
499
+ <div class="method-source-code" id="get_slowest_url_data-source">
500
+ <pre>
501
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 88</span>
502
+ <span class="ruby-keyword">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>)
503
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">select</span>(<span class="ruby-string">'url,
504
+ sum(total_time) / sum(number_of_requests) as result'</span>
505
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-string">'app_id = ? and
506
+ wall_time &gt;= ? and wall_time &lt; ?'</span>,
507
+ <span class="ruby-identifier">app_id</span>,
508
+ <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>
509
+ ).<span class="ruby-identifier">group</span>(<span class="ruby-value">:url</span>
510
+ ).<span class="ruby-identifier">order</span>(<span class="ruby-string">'result desc'</span>)
511
+ <span class="ruby-keyword">end</span></pre>
512
+ </div><!-- get_slowest_url_data-source -->
513
+
514
+ </div>
515
+
516
+
517
+
518
+
519
+ </div><!-- get_slowest_url_data-method -->
520
+
521
+
522
+ <div id="get_time_consuming_url_data-method" class="method-detail ">
523
+ <a name="method-c-get_time_consuming_url_data"></a>
524
+
525
+
526
+ <div class="method-heading">
527
+ <span class="method-name">get_time_consuming_url_data</span><span
528
+ class="method-args">(app_id, start_time, end_time)</span>
529
+ <span class="method-click-advice">click to toggle source</span>
530
+ </div>
531
+
532
+
533
+ <div class="method-description">
534
+
535
+ <p>This method is get data of the time consuming urls of an application. This
536
+ method is called by the <a
537
+ href="UrlTimeSample.html#method-c-get_url_calls_data">get_url_calls_data</a>
538
+ method.</p>
539
+
540
+
541
+
542
+ <div class="method-source-code" id="get_time_consuming_url_data-source">
543
+ <pre>
544
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 100</span>
545
+ <span class="ruby-keyword">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>)
546
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">select</span>(<span class="ruby-string">'url,
547
+ sum(total_time) as time'</span>
548
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-string">'app_id = ? and
549
+ wall_time &gt;= ? and wall_time &lt; ?'</span>,
550
+ <span class="ruby-identifier">app_id</span>,
551
+ <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>
552
+ ).<span class="ruby-identifier">group</span>(<span class="ruby-value">:url</span>
553
+ ).<span class="ruby-identifier">order</span>(<span class="ruby-string">'time desc'</span>)
554
+ <span class="ruby-keyword">end</span></pre>
555
+ </div><!-- get_time_consuming_url_data-source -->
556
+
557
+ </div>
558
+
559
+
560
+
561
+
562
+ </div><!-- get_time_consuming_url_data-method -->
563
+
564
+
565
+ <div id="get_top_db_consuming_url_data-method" class="method-detail ">
566
+ <a name="method-c-get_top_db_consuming_url_data"></a>
567
+
568
+
569
+ <div class="method-heading">
570
+ <span class="method-name">get_top_db_consuming_url_data</span><span
571
+ class="method-args">(app_id, start_time, end_time)</span>
572
+ <span class="method-click-advice">click to toggle source</span>
573
+ </div>
574
+
575
+
576
+ <div class="method-description">
577
+
578
+ <p>This method is get data of the top database consuming urls of an
579
+ application. This method is called by the <a
580
+ href="UrlTimeSample.html#method-c-get_url_calls_data">get_url_calls_data</a>
581
+ method.</p>
582
+
583
+
584
+
585
+ <div class="method-source-code" id="get_top_db_consuming_url_data-source">
586
+ <pre>
587
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 112</span>
588
+ <span class="ruby-keyword">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>)
589
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">select</span>(<span class="ruby-string">'url,
590
+ sum(db_time) as time'</span>
591
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-string">'app_id = ? and
592
+ wall_time &gt;= ? and wall_time &lt; ?'</span>,
593
+ <span class="ruby-identifier">app_id</span>,
594
+ <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>
595
+ ).<span class="ruby-identifier">group</span>(<span class="ruby-value">:url</span>
596
+ ).<span class="ruby-identifier">order</span>(<span class="ruby-string">'time desc'</span>)
597
+ <span class="ruby-keyword">end</span></pre>
598
+ </div><!-- get_top_db_consuming_url_data-source -->
599
+
600
+ </div>
601
+
602
+
603
+
604
+
605
+ </div><!-- get_top_db_consuming_url_data-method -->
606
+
607
+
608
+ <div id="get_url_calls_data-method" class="method-detail ">
609
+ <a name="method-c-get_url_calls_data"></a>
610
+
611
+
612
+ <div class="method-heading">
613
+ <span class="method-name">get_url_calls_data</span><span
614
+ class="method-args">(app_id, from_date, to_date, type)</span>
615
+ <span class="method-click-advice">click to toggle source</span>
616
+ </div>
617
+
618
+
619
+ <div class="method-description">
620
+
621
+ <p>This method returns a hash of data for the graphs Url HIts , Slowest Url
622
+ and Most time Consuming Url for an application.</p>
623
+
624
+
625
+
626
+ <div class="method-source-code" id="get_url_calls_data-source">
627
+ <pre>
628
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 28</span>
629
+ <span class="ruby-keyword">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>)
630
+ <span class="ruby-identifier">max</span> = <span class="ruby-value">0</span>
631
+ <span class="ruby-identifier">urls</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
632
+ <span class="ruby-identifier">final_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
633
+ <span class="ruby-identifier">start_time</span> = <span class="ruby-identifier">from_date</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d&quot;</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&quot; 00:00:00&quot;</span>
634
+ <span class="ruby-identifier">end_time</span> = <span class="ruby-identifier">to_date</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d&quot;</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&quot; 23:59:59&quot;</span>
635
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;requests&quot;</span>
636
+ <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>)
637
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;slowesturl&quot;</span>
638
+ <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>)
639
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;timeconsumingurl&quot;</span>
640
+ <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>)
641
+ <span class="ruby-keyword">else</span>
642
+ <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>)
643
+ <span class="ruby-keyword">end</span>
644
+ <span class="ruby-identifier">url_samples</span> = <span class="ruby-identifier">url_samples</span>.<span class="ruby-identifier">to_a</span>
645
+ <span class="ruby-keyword">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>
646
+ <span class="ruby-identifier">url_samples</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">url_sample</span><span class="ruby-operator">|</span>
647
+ <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>
648
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;requests&quot;</span>
649
+ <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>
650
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;slowesturl&quot;</span>
651
+ <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>
652
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;timeconsumingurl&quot;</span>
653
+ <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>
654
+ <span class="ruby-keyword">else</span>
655
+ <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>
656
+ <span class="ruby-keyword">end</span>
657
+ <span class="ruby-identifier">final_data</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">data</span>
658
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">data</span>
659
+ <span class="ruby-identifier">max</span> = <span class="ruby-identifier">data</span>
660
+ <span class="ruby-keyword">end</span>
661
+ <span class="ruby-keyword">end</span>
662
+ <span class="ruby-keyword">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>
663
+ <span class="ruby-keyword">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword">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>
664
+ <span class="ruby-identifier">urls</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&quot;&quot;</span>
665
+ <span class="ruby-identifier">final_data</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-value">0</span>
666
+ <span class="ruby-keyword">end</span>
667
+ <span class="ruby-keyword">else</span>
668
+ <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>]
669
+ <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>]
670
+ <span class="ruby-keyword">end</span>
671
+ <span class="ruby-keyword">end</span>
672
+ <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>)
673
+ <span class="ruby-keyword">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>
674
+ <span class="ruby-keyword">end</span></pre>
675
+ </div><!-- get_url_calls_data-source -->
676
+
677
+ </div>
678
+
679
+
680
+
681
+
682
+ </div><!-- get_url_calls_data-method -->
683
+
684
+
685
+ <div id="get_url_data-method" class="method-detail ">
686
+ <a name="method-c-get_url_data"></a>
687
+
688
+
689
+ <div class="method-heading">
690
+ <span class="method-name">get_url_data</span><span
691
+ class="method-args">(start_time, end_time, app_id, url_name)</span>
692
+ <span class="method-click-advice">click to toggle source</span>
693
+ </div>
694
+
695
+
696
+ <div class="method-description">
697
+
698
+ <p>This method returns the total_time, db_time and rendering time for an url
699
+ of an application for the given period between start_time and end_time</p>
700
+
701
+
702
+
703
+ <div class="method-source-code" id="get_url_data-source">
704
+ <pre>
705
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 158</span>
706
+ <span class="ruby-keyword">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>)
707
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">select</span>(<span class="ruby-string">'sum(total_time) as total_time,
708
+ sum(db_time) as db_time,
709
+ sum(rendering_time) as rendering_time,
710
+ sum(number_of_requests) as requests'</span>
711
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-string">'app_id = ? and
712
+ url = ? and
713
+ wall_time &gt;= ? and wall_time &lt; ?'</span>,
714
+ <span class="ruby-identifier">app_id</span>,
715
+ <span class="ruby-identifier">url_name</span>,
716
+ <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>)
717
+ <span class="ruby-keyword">end</span></pre>
718
+ </div><!-- get_url_data-source -->
719
+
720
+ </div>
721
+
722
+
723
+
724
+
725
+ </div><!-- get_url_data-method -->
726
+
727
+
728
+ <div id="get_url_hits_data-method" class="method-detail ">
729
+ <a name="method-c-get_url_hits_data"></a>
730
+
731
+
732
+ <div class="method-heading">
733
+ <span class="method-name">get_url_hits_data</span><span
734
+ class="method-args">(app_id, start_time, end_time)</span>
735
+ <span class="method-click-advice">click to toggle source</span>
736
+ </div>
737
+
738
+
739
+ <div class="method-description">
740
+
741
+ <p>This method is get data of the url hits for an application. This method is
742
+ called by the <a
743
+ href="UrlTimeSample.html#method-c-get_url_calls_data">get_url_calls_data</a>
744
+ method.</p>
745
+
746
+
747
+
748
+ <div class="method-source-code" id="get_url_hits_data-source">
749
+ <pre>
750
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 76</span>
751
+ <span class="ruby-keyword">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>)
752
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">select</span>(<span class="ruby-string">'url,
753
+ sum(number_of_requests) as requests'</span>
754
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-string">'app_id = ? and
755
+ wall_time &gt;= ? and wall_time &lt; ?'</span>,
756
+ <span class="ruby-identifier">app_id</span>,
757
+ <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>
758
+ ).<span class="ruby-identifier">group</span>(<span class="ruby-value">:url</span>
759
+ ).<span class="ruby-identifier">order</span>(<span class="ruby-string">'requests desc'</span>)
760
+ <span class="ruby-keyword">end</span></pre>
761
+ </div><!-- get_url_hits_data-source -->
762
+
763
+ </div>
764
+
765
+
766
+
767
+
768
+ </div><!-- get_url_hits_data-method -->
769
+
770
+
771
+ <div id="get_url_id-method" class="method-detail ">
772
+ <a name="method-c-get_url_id"></a>
773
+
774
+
775
+ <div class="method-heading">
776
+ <span class="method-name">get_url_id</span><span
777
+ class="method-args">(start_time, end_time, url_name,app_id)</span>
778
+ <span class="method-click-advice">click to toggle source</span>
779
+ </div>
780
+
781
+
782
+ <div class="method-description">
783
+
784
+ <p>This method returns the array of the url ids for a particular url of an
785
+ application that was hit in a period between start_time and end_time</p>
786
+
787
+
788
+
789
+ <div class="method-source-code" id="get_url_id-source">
790
+ <pre>
791
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 173</span>
792
+ <span class="ruby-keyword">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>)
793
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">select</span>(<span class="ruby-string">'id, url'</span>
794
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-string">'url = ? and
795
+ app_id = ? and
796
+ wall_time &gt;= ? and wall_time &lt; ?'</span>,
797
+ <span class="ruby-identifier">url_name</span>,
798
+ <span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>)
799
+ <span class="ruby-keyword">end</span></pre>
800
+ </div><!-- get_url_id-source -->
801
+
802
+ </div>
803
+
804
+
805
+
806
+
807
+ </div><!-- get_url_id-method -->
808
+
809
+
810
+ <div id="get_urls-method" class="method-detail ">
811
+ <a name="method-c-get_urls"></a>
812
+
813
+
814
+ <div class="method-heading">
815
+ <span class="method-name">get_urls</span><span
816
+ class="method-args">(start_time, end_time, app_id)</span>
817
+ <span class="method-click-advice">click to toggle source</span>
818
+ </div>
819
+
820
+
821
+ <div class="method-description">
822
+
823
+ <p>This method returns the array of the url for an application that were hit
824
+ between start_time and end_time</p>
825
+
826
+
827
+
828
+ <div class="method-source-code" id="get_urls-source">
829
+ <pre>
830
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 140</span>
831
+ <span class="ruby-keyword">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>)
832
+ <span class="ruby-identifier">urls</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
833
+ <span class="ruby-identifier">url_samples</span> = <span class="ruby-identifier">select</span>(<span class="ruby-string">'url,
834
+ sum(total_time) as time'</span>
835
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-string">'app_id = ? and
836
+ wall_time &gt;= ? and wall_time &lt; ?'</span>,
837
+ <span class="ruby-identifier">app_id</span>,
838
+ <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>
839
+ ).<span class="ruby-identifier">group</span>(<span class="ruby-value">:url</span>
840
+ ).<span class="ruby-identifier">order</span>(<span class="ruby-string">'time desc'</span>)
841
+ <span class="ruby-identifier">url_samples</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">url_sample</span><span class="ruby-operator">|</span>
842
+ <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>
843
+ <span class="ruby-keyword">end</span>
844
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">urls</span>
845
+ <span class="ruby-keyword">end</span></pre>
846
+ </div><!-- get_urls-source -->
847
+
848
+ </div>
849
+
850
+
851
+
852
+
853
+ </div><!-- get_urls-method -->
854
+
855
+
856
+ <div id="write_all_samples-method" class="method-detail ">
857
+ <a name="method-c-write_all_samples"></a>
858
+
859
+
860
+ <div class="method-heading">
861
+ <span class="method-name">write_all_samples</span><span
862
+ class="method-args">(message_analyzer)</span>
863
+ <span class="method-click-advice">click to toggle source</span>
864
+ </div>
865
+
866
+
867
+ <div class="method-description">
868
+
869
+ <p>At time of stopping a script, we would write the samples which are in
870
+ memory.</p>
871
+
872
+
873
+
874
+ <div class="method-source-code" id="write_all_samples-source">
875
+ <pre>
876
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 302</span>
877
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">write_all_samples</span>(<span class="ruby-identifier">message_analyzer</span>)
878
+ <span class="ruby-keyword">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>
879
+ <span class="ruby-keyword">return</span>
880
+ <span class="ruby-keyword">end</span>
881
+
882
+ <span class="ruby-comment"># it will contain all the url samples for all the application.</span>
883
+ <span class="ruby-identifier">all_samples</span> = <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>
884
+ <span class="ruby-identifier">all_samples</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword">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>
885
+ <span class="ruby-keyword">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>
886
+ <span class="ruby-identifier">app_samples</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">url</span>, <span class="ruby-identifier">sample</span><span class="ruby-operator">|</span>
887
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">sample</span> <span class="ruby-keyword">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>
888
+ <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>
889
+ <span class="ruby-identifier">tmp_sample</span> = <span class="ruby-identifier">sample</span>[<span class="ruby-value">1</span>]
890
+ <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>])
891
+ <span class="ruby-comment">#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>
892
+ <span class="ruby-comment">#tmp_hash = tmp_sample[4]</span>
893
+ <span class="ruby-comment">#p tmp_hash</span>
894
+ <span class="ruby-comment">#if tmp_hash and tmp_hash.length &gt; 0</span>
895
+ <span class="ruby-comment"># tmp_hash.each_pair do |key, value|</span>
896
+ <span class="ruby-comment"># 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>
897
+ <span class="ruby-comment"># end # do |key, value|</span>
898
+ <span class="ruby-comment">#end</span>
899
+ <span class="ruby-keyword">end</span>
900
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># do |url, sample|</span>
901
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if app_samples.length != 0</span>
902
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># do |app_id, app_samples|</span>
903
+ <span class="ruby-keyword">end</span></pre>
904
+ </div><!-- write_all_samples-source -->
905
+
906
+ </div>
907
+
908
+
909
+
910
+
911
+ </div><!-- write_all_samples-method -->
912
+
913
+
914
+ <div id="write_stale_samples-method" class="method-detail ">
915
+ <a name="method-c-write_stale_samples"></a>
916
+
917
+
918
+ <div class="method-heading">
919
+ <span class="method-name">write_stale_samples</span><span
920
+ class="method-args">(message_analyzer)</span>
921
+ <span class="method-click-advice">click to toggle source</span>
922
+ </div>
923
+
924
+
925
+ <div class="method-description">
926
+
927
+ <p>We have kept sampling period of one minute and would keep any sample in
928
+ memory for maximum one minute. By this method we # would
929
+ write all such samples which are in memory for more than a minute.</p>
930
+
931
+
932
+
933
+ <div class="method-source-code" id="write_stale_samples-source">
934
+ <pre>
935
+ <span class="ruby-comment"># File app/models/url_time_sample.rb, line 275</span>
936
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">write_stale_samples</span>(<span class="ruby-identifier">message_analyzer</span>)
937
+ <span class="ruby-keyword">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>
938
+ <span class="ruby-keyword">return</span>
939
+ <span class="ruby-keyword">end</span>
940
+ <span class="ruby-comment"># it will contain all the url samples for all the application.</span>
941
+ <span class="ruby-identifier">all_samples</span> = <span class="ruby-identifier">message_analyzer</span>.<span class="ruby-identifier">url_samples</span>
942
+ <span class="ruby-identifier">all_samples</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword">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>
943
+ <span class="ruby-keyword">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>
944
+ <span class="ruby-identifier">app_samples</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">url</span>, <span class="ruby-identifier">sample</span><span class="ruby-operator">|</span>
945
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">sample</span> <span class="ruby-keyword">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">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>
946
+ <span class="ruby-identifier">tmp_sample</span> = <span class="ruby-identifier">sample</span>[<span class="ruby-value">1</span>]
947
+ <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>])
948
+ <span class="ruby-comment">#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>
949
+ <span class="ruby-comment">#tmp_hash = tmp_sample[4]</span>
950
+ <span class="ruby-comment">#if tmp_hash and tmp_hash.length &gt; 0</span>
951
+ <span class="ruby-comment"># tmp_hash.each_pair do |key, value|</span>
952
+ <span class="ruby-comment"># 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>
953
+ <span class="ruby-comment"># end # do |key, value|</span>
954
+ <span class="ruby-comment">#end</span>
955
+ <span class="ruby-identifier">app_samples</span>[<span class="ruby-identifier">url</span>] = <span class="ruby-keyword">nil</span>
956
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if (o_wall_time = url_sample.first + message_analyzer.sampling_rate) &lt; Time.now</span>
957
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># do |url, sample|</span>
958
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if app_samples.length != 0</span>
959
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># do |app_id, app_samples|</span>
960
+ <span class="ruby-keyword">end</span></pre>
961
+ </div><!-- write_stale_samples-source -->
962
+
963
+ </div>
964
+
965
+
966
+
967
+
968
+ </div><!-- write_stale_samples-method -->
969
+
970
+
971
+ </div><!-- public-class-method-details -->
972
+
973
+ </div><!-- 5Buntitled-5D -->
974
+
975
+
976
+ </div><!-- documentation -->
977
+
978
+ <div id="validator-badges">
979
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
980
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
981
+ Rdoc Generator</a> 2</small>.</p>
982
+ </div>
983
+
984
+ </body>
985
+ </html>
986
+