# File lib/openshift-origin-node/model/application_container_ext/metrics.rb, line 152 def application_metrics(processor, parser) begin metrics_hook = PathUtils.join(@container_dir, "app-root", "repo", ".openshift", "action_hooks", "metrics") if File.exist?(metrics_hook) and File.executable?(metrics_hook) processor.cartridge = nil run_in_container_context(metrics_hook, buffer_size: metrics_max_line_length, out: parser, timeout: metrics_per_script_timeout) end #FIXME should really be doing 'rescue => e' once ShellExecutionException is modified #to extend StandardError instead of Exception rescue Exception => e puts("Error retrieving application metrics for gear #{uuid}: #{e.message}") end end
# File lib/openshift-origin-node/model/application_container_ext/metrics.rb, line 128 def cartridge_metrics(processor, parser) @cartridge_model.each_cartridge do |cart| # Check if cartridge has a metrics entry in its manifest unless cart.metrics.nil? begin cart_metrics = PathUtils.join(@container_dir, cart.directory, "bin", "metrics") if File.file?(cart_metrics) and File.executable?(cart_metrics) processor.cartridge = cart run_in_container_context(cart_metrics, buffer_size: metrics_max_line_length, out: parser, timeout: metrics_per_script_timeout) end #FIXME should really be doing 'rescue => e' once ShellExecutionException is modified #to extend StandardError instead of Exception rescue Exception => e puts("Error retrieving metrics for gear #{uuid}, cartridge '#{cart.name}': #{e.message}") end end end end
Run metrics for cartridges and the application.
Each cartridge must have a Metrics entry in its manifest for its bin/metrics script to be invoked.
If the application's repo has a metrics action hook, run that as well.
# File lib/openshift-origin-node/model/application_container_ext/metrics.rb, line 114 def metrics begin Timeout::timeout(metrics_per_gear_timeout) do processor = MetricsLineProcessor.new(self) parser = BufferedLineParser.new(metrics_max_line_length, processor) cartridge_metrics(processor, parser) application_metrics(processor, parser) end rescue Timeout::Error => e puts("Gear metrics exceeded timeout of #{metrics_per_gear_timeout}s for gear #{uuid}") end end
# File lib/openshift-origin-node/model/application_container_ext/metrics.rb, line 98 def metrics_max_line_length # default the metrics line parser's buffer size to 2000 if not configured in node.conf @metrics_max_line_length ||= (@config.get("METRICS_MAX_LINE_LENGTH") || 2000).to_i end
# File lib/openshift-origin-node/model/application_container_ext/metrics.rb, line 103 def metrics_metadata @metrics_metadata ||= ::OpenShift::Runtime::Utils::MetricsHelper.metrics_metadata(@config) end
# File lib/openshift-origin-node/model/application_container_ext/metrics.rb, line 88 def metrics_per_gear_timeout # default overall metrics timeout per gear to 3 seconds if not configured in node.conf @metrics_per_gear_timeout ||= (@config.get("METRICS_PER_GEAR_TIMEOUT") || 3).to_f end
# File lib/openshift-origin-node/model/application_container_ext/metrics.rb, line 93 def metrics_per_script_timeout # default metrics oo_spawn timeout to 1 second if not configured in node.conf @metrics_per_script_timeout ||= (@config.get("METRICS_PER_SCRIPT_TIMEOUT") || 1).to_f end
Generated with the Darkfish Rdoc Generator 2.