Class/Module Index [+]

Quicksearch

OpenShift::Runtime::ApplicationContainerExt::Metrics

Public Instance Methods

application_metrics(processor, parser) click to toggle source
# 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
cartridge_metrics(processor, parser) click to toggle source
# 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
metrics() click to toggle source

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
metrics_max_line_length() click to toggle source
# 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
metrics_metadata() click to toggle source
# 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
metrics_per_gear_timeout() click to toggle source
# 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
metrics_per_script_timeout() click to toggle source
# 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

[Validate]

Generated with the Darkfish Rdoc Generator 2.