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,656 @@
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: ResourceUsage</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/resource_usage_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
38
+ class="thickbox" title="app/models/resource_usage.rb">app/models/resource_usage.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-fill_gaps-21">::fill_gaps!</a></li>
69
+
70
+ <li><a href="#method-c-get_application_data">::get_application_data</a></li>
71
+
72
+ <li><a href="#method-c-get_latest_for_apps">::get_latest_for_apps</a></li>
73
+
74
+ <li><a href="#method-c-get_latest_for_apps_with_exceptions">::get_latest_for_apps_with_exceptions</a></li>
75
+
76
+ <li><a href="#method-c-get_latest_for_server">::get_latest_for_server</a></li>
77
+
78
+ <li><a href="#method-c-get_max_and_slab">::get_max_and_slab</a></li>
79
+
80
+ <li><a href="#method-c-get_server_resource_usage">::get_server_resource_usage</a></li>
81
+
82
+ </ul>
83
+ </div>
84
+
85
+
86
+
87
+ </div>
88
+
89
+ <div id="project-metadata">
90
+
91
+
92
+ <div id="fileindex-section" class="section project-section">
93
+ <h3 class="section-header">Files</h3>
94
+ <ul>
95
+
96
+ <li class="file"><a href="./doc/README_FOR_APP.html">README_FOR_APP</a></li>
97
+
98
+ </ul>
99
+ </div>
100
+
101
+
102
+ <div id="classindex-section" class="section project-section">
103
+ <h3 class="section-header">Class/Module Index
104
+ <span class="search-toggle"><img src="./images/find.png"
105
+ height="16" width="16" alt="[+]"
106
+ title="show/hide quicksearch" /></span></h3>
107
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
108
+ <fieldset>
109
+ <legend>Quicksearch</legend>
110
+ <input type="text" name="quicksearch" value=""
111
+ class="quicksearch-field" />
112
+ </fieldset>
113
+ </form>
114
+
115
+ <ul class="link-list">
116
+
117
+ <li><a href="./Analytics.html">Analytics</a></li>
118
+
119
+ <li><a href="./Analytics/Database.html">Analytics::Database</a></li>
120
+
121
+ <li><a href="./Analytics/ResourceUsage.html">Analytics::ResourceUsage</a></li>
122
+
123
+ <li><a href="./Analytics/Throughput.html">Analytics::Throughput</a></li>
124
+
125
+ <li><a href="./Analytics/Url.html">Analytics::Url</a></li>
126
+
127
+ <li><a href="./Analytics/UrlBreakup.html">Analytics::UrlBreakup</a></li>
128
+
129
+ <li><a href="./ActionView.html">ActionView</a></li>
130
+
131
+ <li><a href="./ActionView/Helpers.html">ActionView::Helpers</a></li>
132
+
133
+ <li><a href="./ActionView/Helpers/AssetTagHelper.html">ActionView::Helpers::AssetTagHelper</a></li>
134
+
135
+ <li><a href="./AdminController.html">AdminController</a></li>
136
+
137
+ <li><a href="./AdminHelper.html">AdminHelper</a></li>
138
+
139
+ <li><a href="./App.html">App</a></li>
140
+
141
+ <li><a href="./AppException.html">AppException</a></li>
142
+
143
+ <li><a href="./AppTimeSample.html">AppTimeSample</a></li>
144
+
145
+ <li><a href="./ApplicationController.html">ApplicationController</a></li>
146
+
147
+ <li><a href="./ApplicationHelper.html">ApplicationHelper</a></li>
148
+
149
+ <li><a href="./ApplicationSpecification.html">ApplicationSpecification</a></li>
150
+
151
+ <li><a href="./ApplicationSpecificationController.html">ApplicationSpecificationController</a></li>
152
+
153
+ <li><a href="./ApplicationSpecificationHelper.html">ApplicationSpecificationHelper</a></li>
154
+
155
+ <li><a href="./Control.html">Control</a></li>
156
+
157
+ <li><a href="./ExceptionDetail.html">ExceptionDetail</a></li>
158
+
159
+ <li><a href="./ExceptionsController.html">ExceptionsController</a></li>
160
+
161
+ <li><a href="./ExceptionsHelper.html">ExceptionsHelper</a></li>
162
+
163
+ <li><a href="./GraphController.html">GraphController</a></li>
164
+
165
+ <li><a href="./GraphHelper.html">GraphHelper</a></li>
166
+
167
+ <li><a href="./Headers.html">Headers</a></li>
168
+
169
+ <li><a href="./HeadersController.html">HeadersController</a></li>
170
+
171
+ <li><a href="./HeadersHelper.html">HeadersHelper</a></li>
172
+
173
+ <li><a href="./MailSpecification.html">MailSpecification</a></li>
174
+
175
+ <li><a href="./MailSpecificationController.html">MailSpecificationController</a></li>
176
+
177
+ <li><a href="./MailSpecificationHelper.html">MailSpecificationHelper</a></li>
178
+
179
+ <li><a href="./Mailer.html">Mailer</a></li>
180
+
181
+ <li><a href="./Object.html">Object</a></li>
182
+
183
+ <li><a href="./PseudoModel.html">PseudoModel</a></li>
184
+
185
+ <li><a href="./ResourceUsage.html">ResourceUsage</a></li>
186
+
187
+ <li><a href="./SCGI.html">SCGI</a></li>
188
+
189
+ <li><a href="./ServerSpecification.html">ServerSpecification</a></li>
190
+
191
+ <li><a href="./ServerSpecificationController.html">ServerSpecificationController</a></li>
192
+
193
+ <li><a href="./ServerSpecificationHelper.html">ServerSpecificationHelper</a></li>
194
+
195
+ <li><a href="./SignalHelper.html">SignalHelper</a></li>
196
+
197
+ <li><a href="./UrlBreakupTimeSample.html">UrlBreakupTimeSample</a></li>
198
+
199
+ <li><a href="./UrlTimeSample.html">UrlTimeSample</a></li>
200
+
201
+ <li><a href="./User.html">User</a></li>
202
+
203
+ <li><a href="./YAMLConfig.html">YAMLConfig</a></li>
204
+
205
+ <li><a href="./YAMLWriter.html">YAMLWriter</a></li>
206
+
207
+ </ul>
208
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
209
+ </div>
210
+
211
+
212
+ </div>
213
+ </div>
214
+
215
+ <div id="documentation">
216
+ <h1 class="class">ResourceUsage</h1>
217
+
218
+ <div id="description" class="description">
219
+
220
+ <p>This is the model class <a href="ResourceUsage.html">ResourceUsage</a>
221
+ related to the resource_usages table in the database.</p>
222
+
223
+ </div><!-- description -->
224
+
225
+
226
+
227
+
228
+ <div id="5Buntitled-5D" class="documentation-section">
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+ <!-- Methods -->
238
+
239
+ <div id="public-class-method-details" class="method-section section">
240
+ <h3 class="section-header">Public Class Methods</h3>
241
+
242
+
243
+ <div id="fill_gaps-21-method" class="method-detail ">
244
+ <a name="method-c-fill_gaps-21"></a>
245
+
246
+
247
+ <div class="method-heading">
248
+ <span class="method-name">fill_gaps!</span><span
249
+ class="method-args">(array)</span>
250
+ <span class="method-click-advice">click to toggle source</span>
251
+ </div>
252
+
253
+
254
+ <div class="method-description">
255
+
256
+ <p>Due to technical reasons, e.g. sleep(60) , thread can remain in sleep state
257
+ for more than 60 seconds, in this case it may not get sample for that
258
+ minute. With this method filling any such gaps(consecutive one gap at max)
259
+ by predicting usage from around values. Parameters : array(Array) of
260
+ integer or float Find out the elements having 0 or 0.0 as value, normalize
261
+ it value according to previous/next values.</p>
262
+
263
+
264
+
265
+ <div class="method-source-code" id="fill_gaps-21-source">
266
+ <pre>
267
+ <span class="ruby-comment"># File app/models/resource_usage.rb, line 195</span>
268
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">fill_gaps!</span>(<span class="ruby-identifier">array</span>)
269
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">array</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-comment"># proceed only if array is not empty</span>
270
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-comment"># if first element is zero, predict value from next two values.</span>
271
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">array</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-keyword">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-value">2</span>].<span class="ruby-identifier">nil?</span>
272
+ <span class="ruby-identifier">array</span>[<span class="ruby-value">0</span>] = (<span class="ruby-identifier">array</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">2</span>]) <span class="ruby-operator">/</span> <span class="ruby-value">2</span>
273
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if array.length &gt; 2</span>
274
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if array[0].to_i == 0</span>
275
+
276
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-comment">#if last element is zero, predict value from previous two values.</span>
277
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">array</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">-2</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">-3</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-value">-2</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-keyword">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-value">-3</span>].<span class="ruby-identifier">nil?</span>
278
+ <span class="ruby-identifier">array</span>[<span class="ruby-value">-1</span>] = (<span class="ruby-identifier">array</span>[<span class="ruby-value">-2</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">array</span>[<span class="ruby-value">-3</span>]) <span class="ruby-operator">/</span> <span class="ruby-value">2</span>
279
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if array.length &gt; 2</span>
280
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if array[-1].to_i == 0</span>
281
+
282
+ <span class="ruby-keyword">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword">in</span> <span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-identifier">array</span>.<span class="ruby-identifier">length</span><span class="ruby-operator">-</span><span class="ruby-value">1</span> <span class="ruby-comment"># checking for interminant values</span>
283
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-keyword">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>].<span class="ruby-identifier">nil?</span> <span class="ruby-keyword">and</span> <span class="ruby-operator">!</span><span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>].<span class="ruby-identifier">nil?</span>
284
+ <span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span>] = (<span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">array</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>]) <span class="ruby-operator">/</span> <span class="ruby-value">2</span>
285
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if</span>
286
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># for</span>
287
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if array.length &gt; 0</span>
288
+ <span class="ruby-keyword">end</span></pre>
289
+ </div><!-- fill_gaps-21-source -->
290
+
291
+ </div>
292
+
293
+
294
+
295
+
296
+ </div><!-- fill_gaps-21-method -->
297
+
298
+
299
+ <div id="get_application_data-method" class="method-detail ">
300
+ <a name="method-c-get_application_data"></a>
301
+
302
+
303
+ <div class="method-heading">
304
+ <span class="method-name">get_application_data</span><span
305
+ class="method-args">(app_id, start_time, end_time, type)</span>
306
+ <span class="method-click-advice">click to toggle source</span>
307
+ </div>
308
+
309
+
310
+ <div class="method-description">
311
+
312
+ <p>This method Returns the Resource Usage data for a particular application.
313
+ This data is used to plot the graph for cpu usage and memory usage for that
314
+ application. CPU usage is in percentage and the physical memory usage is
315
+ MBs.</p>
316
+
317
+
318
+
319
+ <div class="method-source-code" id="get_application_data-source">
320
+ <pre>
321
+ <span class="ruby-comment"># File app/models/resource_usage.rb, line 132</span>
322
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_application_data</span>(<span class="ruby-identifier">app_id</span>, <span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>, <span class="ruby-identifier">type</span>)
323
+ <span class="ruby-identifier">max</span> = <span class="ruby-value">0</span>
324
+ <span class="ruby-identifier">interval</span> = <span class="ruby-value">0</span>
325
+ <span class="ruby-identifier">interval</span> = ((<span class="ruby-identifier">end_time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start_time</span>) <span class="ruby-operator">/</span> <span class="ruby-value">60</span>).<span class="ruby-identifier">to_i</span>
326
+ <span class="ruby-identifier">final_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interval</span>)
327
+ <span class="ruby-identifier">wall_time</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interval</span>)
328
+ <span class="ruby-identifier">resource_usages</span> = <span class="ruby-identifier">select</span>(<span class="ruby-string">'sum(cpu_usage) as cpu_usage,
329
+ sum(memory_usage) as memory_usage,
330
+ count(*) as count,
331
+ wall_time'</span>
332
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-string">'app_id = ? and
333
+ wall_time &gt;= ? and wall_time &lt; ?'</span>,
334
+ <span class="ruby-identifier">app_id</span>,
335
+ <span class="ruby-identifier">start_time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>), <span class="ruby-identifier">end_time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>)
336
+ ).<span class="ruby-identifier">group</span>(<span class="ruby-value">:wall_time</span>)
337
+ <span class="ruby-identifier">resource_usages</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource_usage</span><span class="ruby-operator">|</span>
338
+ <span class="ruby-identifier">current_time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">year</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">month</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">day</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">hour</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">min</span>, <span class="ruby-string">'0'</span>)
339
+ <span class="ruby-identifier">index</span> = (<span class="ruby-identifier">current_time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start_time</span>) <span class="ruby-operator">/</span> <span class="ruby-value">60</span>
340
+ <span class="ruby-identifier">count</span> = <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">count</span>
341
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;cpu&quot;</span>
342
+ <span class="ruby-identifier">total_data</span> = <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">cpu_usage</span>
343
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;memory&quot;</span>
344
+ <span class="ruby-identifier">total_data</span> = <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">memory_usage</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-value">1024</span>
345
+ <span class="ruby-keyword">end</span>
346
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">total_data</span>
347
+ <span class="ruby-identifier">max</span> = <span class="ruby-identifier">total_data</span>.<span class="ruby-identifier">to_i</span>
348
+ <span class="ruby-keyword">end</span>
349
+ <span class="ruby-identifier">final_data</span>[<span class="ruby-identifier">index</span>] = <span class="ruby-identifier">total_data</span>
350
+ <span class="ruby-identifier">wall_time</span>[<span class="ruby-identifier">index</span>] = <span class="ruby-identifier">current_time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%H:%M&quot;</span>)
351
+ <span class="ruby-keyword">end</span>
352
+
353
+ <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-identifier">interval</span>
354
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">final_data</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">nil?</span>
355
+ <span class="ruby-identifier">wall_time</span>[<span class="ruby-identifier">i</span>] = (<span class="ruby-identifier">start_time</span><span class="ruby-operator">+</span><span class="ruby-identifier">i</span>*<span class="ruby-value">60</span>).<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%H:%M&quot;</span>)
356
+ <span class="ruby-keyword">end</span>
357
+ <span class="ruby-keyword">end</span>
358
+
359
+ <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>)
360
+ <span class="ruby-identifier">fill_gaps!</span>(<span class="ruby-identifier">final_data</span>)
361
+ <span class="ruby-identifier">step</span> = (<span class="ruby-identifier">interval</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>) <span class="ruby-operator">/</span> <span class="ruby-value">20</span>
362
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">wall_time</span>, <span class="ruby-identifier">final_data</span>, <span class="ruby-identifier">max</span>, <span class="ruby-identifier">slab</span>, <span class="ruby-identifier">step</span>
363
+ <span class="ruby-keyword">end</span></pre>
364
+ </div><!-- get_application_data-source -->
365
+
366
+ </div>
367
+
368
+
369
+
370
+
371
+ </div><!-- get_application_data-method -->
372
+
373
+
374
+ <div id="get_latest_for_apps-method" class="method-detail ">
375
+ <a name="method-c-get_latest_for_apps"></a>
376
+
377
+
378
+ <div class="method-heading">
379
+ <span class="method-name">get_latest_for_apps</span><span
380
+ class="method-args">()</span>
381
+ <span class="method-click-advice">click to toggle source</span>
382
+ </div>
383
+
384
+
385
+ <div class="method-description">
386
+
387
+ <p>This method is used to get the latest state of the application i.e. its cpu
388
+ usage and physical memory usage.</p>
389
+
390
+ <pre>Returns hash with application name as key and 2 element array as value. In 2 element, first element is cpu usage, 2nd is memory usage in kb</pre>
391
+
392
+
393
+
394
+ <div class="method-source-code" id="get_latest_for_apps-source">
395
+ <pre>
396
+ <span class="ruby-comment"># File app/models/resource_usage.rb, line 46</span>
397
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_latest_for_apps</span>
398
+
399
+ <span class="ruby-identifier">apps</span> = <span class="ruby-constant">App</span>.<span class="ruby-identifier">select</span>(<span class="ruby-string">'id, name'</span>)
400
+
401
+ <span class="ruby-identifier">app_hash</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
402
+ <span class="ruby-identifier">result_hash</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
403
+
404
+ <span class="ruby-identifier">apps</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">app</span><span class="ruby-operator">|</span>
405
+ <span class="ruby-identifier">app_hash</span>[<span class="ruby-identifier">app</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">app</span>.<span class="ruby-identifier">name</span>
406
+ <span class="ruby-identifier">result_hash</span>[<span class="ruby-identifier">app</span>.<span class="ruby-identifier">name</span>] = [<span class="ruby-value">0.0</span>, <span class="ruby-value">0.0</span>]
407
+ <span class="ruby-keyword">end</span>
408
+
409
+ <span class="ruby-identifier">t1</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
410
+ <span class="ruby-identifier">interval</span> = <span class="ruby-value">60</span> <span class="ruby-comment"># in seconds</span>
411
+ <span class="ruby-identifier">t2</span> = <span class="ruby-identifier">t1</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">interval</span>
412
+ <span class="ruby-identifier">result_set</span> = <span class="ruby-identifier">select</span>(<span class="ruby-string">'app_id,
413
+ sum(cpu_usage) as tot_cpu,
414
+ sum(memory_usage) as tot_memory'</span>
415
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-string">'wall_time &lt;= ? and wall_time &gt;= ?'</span>,
416
+ <span class="ruby-identifier">t1</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>),<span class="ruby-identifier">t2</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>)
417
+ ).<span class="ruby-identifier">group</span>(<span class="ruby-value">:app_id</span>)
418
+
419
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">result_set</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span>
420
+ <span class="ruby-identifier">result_set</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">result</span><span class="ruby-operator">|</span>
421
+ <span class="ruby-identifier">result_hash</span>[<span class="ruby-identifier">app_hash</span>[<span class="ruby-identifier">result</span>.<span class="ruby-identifier">app_id</span>]] = [<span class="ruby-identifier">result</span>.<span class="ruby-identifier">tot_cpu</span>.<span class="ruby-identifier">to_f</span>, <span class="ruby-identifier">result</span>.<span class="ruby-identifier">tot_memory</span>.<span class="ruby-identifier">to_i</span>]
422
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># do |result|</span>
423
+ <span class="ruby-keyword">end</span> <span class="ruby-comment"># if</span>
424
+ <span class="ruby-identifier">result_hash</span>
425
+ <span class="ruby-keyword">end</span></pre>
426
+ </div><!-- get_latest_for_apps-source -->
427
+
428
+ </div>
429
+
430
+
431
+
432
+
433
+ </div><!-- get_latest_for_apps-method -->
434
+
435
+
436
+ <div id="get_latest_for_apps_with_exceptions-method" class="method-detail ">
437
+ <a name="method-c-get_latest_for_apps_with_exceptions"></a>
438
+
439
+
440
+ <div class="method-heading">
441
+ <span class="method-name">get_latest_for_apps_with_exceptions</span><span
442
+ class="method-args">()</span>
443
+ <span class="method-click-advice">click to toggle source</span>
444
+ </div>
445
+
446
+
447
+ <div class="method-description">
448
+
449
+
450
+
451
+
452
+
453
+ <div class="method-source-code" id="get_latest_for_apps_with_exceptions-source">
454
+ <pre>
455
+ <span class="ruby-comment"># File app/models/resource_usage.rb, line 76</span>
456
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_latest_for_apps_with_exceptions</span>
457
+ <span class="ruby-identifier">latest_apps</span> = <span class="ruby-identifier">get_latest_for_apps</span>
458
+ <span class="ruby-identifier">latest_apps</span>.<span class="ruby-identifier">each_key</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
459
+ <span class="ruby-identifier">exception_count</span> = <span class="ruby-constant">App</span>.<span class="ruby-identifier">exceptions_count</span>(<span class="ruby-identifier">key</span>)
460
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">exception_count</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
461
+ <span class="ruby-identifier">latest_apps</span>[<span class="ruby-identifier">key</span>][<span class="ruby-value">2</span>] = <span class="ruby-node">&quot;&lt;a href=\&quot;exceptions/get_exceptions_list?application_name=#{key}\&quot;&gt;Yes (#{exception_count})&lt;/a&gt;&quot;</span>
462
+ <span class="ruby-keyword">else</span>
463
+ <span class="ruby-identifier">latest_apps</span>[<span class="ruby-identifier">key</span>][<span class="ruby-value">2</span>] = <span class="ruby-string">&quot;No&quot;</span>
464
+ <span class="ruby-keyword">end</span>
465
+ <span class="ruby-keyword">end</span>
466
+ <span class="ruby-identifier">latest_apps</span>
467
+ <span class="ruby-keyword">end</span></pre>
468
+ </div><!-- get_latest_for_apps_with_exceptions-source -->
469
+
470
+ </div>
471
+
472
+
473
+
474
+
475
+ </div><!-- get_latest_for_apps_with_exceptions-method -->
476
+
477
+
478
+ <div id="get_latest_for_server-method" class="method-detail ">
479
+ <a name="method-c-get_latest_for_server"></a>
480
+
481
+
482
+ <div class="method-heading">
483
+ <span class="method-name">get_latest_for_server</span><span
484
+ class="method-args">()</span>
485
+ <span class="method-click-advice">click to toggle source</span>
486
+ </div>
487
+
488
+
489
+ <div class="method-description">
490
+
491
+ <p>This method is used to get the latest state of the server i.e. its cpu
492
+ usage and physical memory usage.</p>
493
+
494
+ <pre>Returns array wtih 2 element, first element is cpu usage, 2nd is memory usage in kb</pre>
495
+
496
+
497
+
498
+ <div class="method-source-code" id="get_latest_for_server-source">
499
+ <pre>
500
+ <span class="ruby-comment"># File app/models/resource_usage.rb, line 27</span>
501
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_latest_for_server</span>
502
+ <span class="ruby-identifier">t1</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
503
+ <span class="ruby-identifier">interval</span> = <span class="ruby-value">60</span> <span class="ruby-comment"># in seconds</span>
504
+ <span class="ruby-identifier">t2</span> = <span class="ruby-identifier">t1</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">interval</span>
505
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">select</span>(<span class="ruby-string">'sum(cpu_usage) as tot_cpu,
506
+ sum(memory_usage) as tot_memory'</span>
507
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-string">'wall_time &lt;= ? and
508
+ wall_time &gt;= ?'</span>,
509
+ <span class="ruby-identifier">t1</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>),<span class="ruby-identifier">t2</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>)).<span class="ruby-identifier">first</span>
510
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">result</span>
511
+ <span class="ruby-identifier">res</span> = [<span class="ruby-value">0.0</span>, <span class="ruby-value">0.0</span>]
512
+ <span class="ruby-keyword">else</span>
513
+ <span class="ruby-identifier">res</span> = [<span class="ruby-identifier">result</span>.<span class="ruby-identifier">tot_cpu</span>.<span class="ruby-identifier">to_f</span>, <span class="ruby-identifier">result</span>.<span class="ruby-identifier">tot_memory</span>.<span class="ruby-identifier">to_i</span>]
514
+ <span class="ruby-keyword">end</span>
515
+ <span class="ruby-identifier">res</span>
516
+ <span class="ruby-keyword">end</span></pre>
517
+ </div><!-- get_latest_for_server-source -->
518
+
519
+ </div>
520
+
521
+
522
+
523
+
524
+ </div><!-- get_latest_for_server-method -->
525
+
526
+
527
+ <div id="get_max_and_slab-method" class="method-detail ">
528
+ <a name="method-c-get_max_and_slab"></a>
529
+
530
+
531
+ <div class="method-heading">
532
+ <span class="method-name">get_max_and_slab</span><span
533
+ class="method-args">(max)</span>
534
+ <span class="method-click-advice">click to toggle source</span>
535
+ </div>
536
+
537
+
538
+ <div class="method-description">
539
+
540
+ <p>This method gives the maximum value for y axis and the value by which the y
541
+ axis is to be partitioned.</p>
542
+
543
+
544
+
545
+ <div class="method-source-code" id="get_max_and_slab-source">
546
+ <pre>
547
+ <span class="ruby-comment"># File app/models/resource_usage.rb, line 176</span>
548
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_max_and_slab</span>(<span class="ruby-identifier">max</span>)
549
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
550
+ <span class="ruby-identifier">max</span> = <span class="ruby-value">1</span>
551
+ <span class="ruby-identifier">slab</span> = <span class="ruby-value">1</span>
552
+ <span class="ruby-keyword">else</span>
553
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">8</span>
554
+ <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>
555
+ <span class="ruby-keyword">else</span>
556
+ <span class="ruby-identifier">slab</span> = <span class="ruby-value">1</span>
557
+ <span class="ruby-keyword">end</span>
558
+ <span class="ruby-keyword">end</span>
559
+ <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>
560
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">max</span>, <span class="ruby-identifier">slab</span>
561
+ <span class="ruby-keyword">end</span></pre>
562
+ </div><!-- get_max_and_slab-source -->
563
+
564
+ </div>
565
+
566
+
567
+
568
+
569
+ </div><!-- get_max_and_slab-method -->
570
+
571
+
572
+ <div id="get_server_resource_usage-method" class="method-detail ">
573
+ <a name="method-c-get_server_resource_usage"></a>
574
+
575
+
576
+ <div class="method-heading">
577
+ <span class="method-name">get_server_resource_usage</span><span
578
+ class="method-args">(start_time, end_time, type)</span>
579
+ <span class="method-click-advice">click to toggle source</span>
580
+ </div>
581
+
582
+
583
+ <div class="method-description">
584
+
585
+ <p>This method Returns the Resource Usage data for the server. This data is
586
+ used to plot the graph for cpu usage and memory usage of the server. CPU
587
+ usage is in percentage and the physical memory usage is MBs.</p>
588
+
589
+
590
+
591
+ <div class="method-source-code" id="get_server_resource_usage-source">
592
+ <pre>
593
+ <span class="ruby-comment"># File app/models/resource_usage.rb, line 91</span>
594
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_server_resource_usage</span>(<span class="ruby-identifier">start_time</span>, <span class="ruby-identifier">end_time</span>, <span class="ruby-identifier">type</span>)
595
+ <span class="ruby-identifier">max</span> = <span class="ruby-value">0</span>
596
+ <span class="ruby-identifier">interval</span> = <span class="ruby-value">0</span>
597
+ <span class="ruby-identifier">interval</span> = ((<span class="ruby-identifier">end_time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start_time</span>) <span class="ruby-operator">/</span> <span class="ruby-value">60</span>).<span class="ruby-identifier">to_i</span>
598
+ <span class="ruby-identifier">final_data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interval</span>)
599
+ <span class="ruby-identifier">wall_time</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interval</span>)
600
+ <span class="ruby-identifier">resource_usages</span> = <span class="ruby-identifier">select</span>(<span class="ruby-string">'wall_time,
601
+ sum(cpu_usage) as cpu_usage,
602
+ sum(memory_usage) as memory_usage'</span>
603
+ ).<span class="ruby-identifier">where</span>(<span class="ruby-string">'wall_time &gt;= ? and wall_time &lt; ?'</span>,
604
+ <span class="ruby-identifier">start_time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>), <span class="ruby-identifier">end_time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>)
605
+ ).<span class="ruby-identifier">group</span>(<span class="ruby-value">:wall_time</span>)
606
+
607
+ <span class="ruby-identifier">resource_usages</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">resource_usage</span><span class="ruby-operator">|</span>
608
+ <span class="ruby-identifier">current_time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">local</span>(<span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">year</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">month</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">day</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">hour</span>, <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">wall_time</span>.<span class="ruby-identifier">min</span>, <span class="ruby-string">'0'</span>)
609
+ <span class="ruby-identifier">index</span> = (<span class="ruby-identifier">current_time</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">start_time</span>) <span class="ruby-operator">/</span> <span class="ruby-value">60</span>
610
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;CPU&quot;</span>
611
+ <span class="ruby-identifier">total_data</span> = <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">cpu_usage</span>
612
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;Memory&quot;</span>
613
+ <span class="ruby-identifier">total_data</span> = <span class="ruby-identifier">resource_usage</span>.<span class="ruby-identifier">memory_usage</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">/</span> <span class="ruby-value">1024</span>
614
+ <span class="ruby-keyword">end</span>
615
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">max</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">total_data</span>
616
+ <span class="ruby-identifier">max</span> = <span class="ruby-identifier">total_data</span>.<span class="ruby-identifier">to_i</span>
617
+ <span class="ruby-keyword">end</span>
618
+ <span class="ruby-identifier">final_data</span>[<span class="ruby-identifier">index</span>] = <span class="ruby-identifier">total_data</span>
619
+ <span class="ruby-identifier">wall_time</span>[<span class="ruby-identifier">index</span>] = <span class="ruby-identifier">current_time</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%H:%M&quot;</span>)
620
+ <span class="ruby-keyword">end</span>
621
+ <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-identifier">interval</span>
622
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">final_data</span>[<span class="ruby-identifier">i</span>].<span class="ruby-identifier">nil?</span>
623
+ <span class="ruby-identifier">wall_time</span>[<span class="ruby-identifier">i</span>] = (<span class="ruby-identifier">start_time</span><span class="ruby-operator">+</span><span class="ruby-identifier">i</span>*<span class="ruby-value">60</span>).<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%H:%M&quot;</span>)
624
+ <span class="ruby-keyword">end</span>
625
+ <span class="ruby-keyword">end</span>
626
+ <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>)
627
+ <span class="ruby-identifier">fill_gaps!</span>(<span class="ruby-identifier">final_data</span>)
628
+ <span class="ruby-identifier">step</span> = (<span class="ruby-identifier">interval</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>) <span class="ruby-operator">/</span> <span class="ruby-value">20</span>
629
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">wall_time</span>, <span class="ruby-identifier">final_data</span>, <span class="ruby-identifier">max</span>, <span class="ruby-identifier">slab</span>, <span class="ruby-identifier">step</span>
630
+ <span class="ruby-keyword">end</span></pre>
631
+ </div><!-- get_server_resource_usage-source -->
632
+
633
+ </div>
634
+
635
+
636
+
637
+
638
+ </div><!-- get_server_resource_usage-method -->
639
+
640
+
641
+ </div><!-- public-class-method-details -->
642
+
643
+ </div><!-- 5Buntitled-5D -->
644
+
645
+
646
+ </div><!-- documentation -->
647
+
648
+ <div id="validator-badges">
649
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
650
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
651
+ Rdoc Generator</a> 2</small>.</p>
652
+ </div>
653
+
654
+ </body>
655
+ </html>
656
+