class Corn::Generators::ConfigGenerator

Public Instance Methods

do_config() click to toggle source
# File lib/generators/corn/config/config_generator.rb, line 6
      def do_config
        create_file "config/initializers/corn_config.rb", <<-RUBY
Corn.config({
              # setup Corn logger, default is output to STDOUT.
              :logger => Rails.logger,

              # Every Corn project has its own client id, you can find it in your
              # Corn project page. This is a unique identifier for reporting your
              # data, please keep it secret.
              # :client_id => ENV["CORN_CLIENT_ID"],

              # Corn only reprots requests that are exceeded this threshold;
              # default threshold is 5 seconds. Please use your 97 percentile response
              # time as slow_request_threshold value, so that you can focus on
              # improving slow requests. Doing nothing with generated reports
              # is a waste.
              # You can change this value to 0 for testing Corn configurations,
              # and learn how Corn works.
              # Set this threshold to smaller value may cause performance overhead.
              # :slow_request_threshold => 5,

              # Sampling interval controls how frequent profiler should take
              # sample of processing request threads' stacktrace. The default value
              # is 0.1 seconds. Change the value to larger number will reduce the
              # performance impact to your application. Change the value to smaller
              # number will increase performance impact.
              # The more samples we have for processing a request, the more accurate
              # of the profiling call-graph report we will have.
              # Hence it needs a balance.
              # For example, when a request processing time is 5 seconds, sampling_interval
              # value is 0.1 second, then we will get approximately 50 samples, which
              # is good enough for you to understand what's your code doing in most
              # of cases.
              # :sampling_interval => 0.1,

              # Corn launchs a standalone thread to post profiling data back to Corn server.
              # post_interval controls how frequent we will post one report back to
              # Corn server. Default value is 2 seconds. It means the posting thread will
              # sleep 2 seconds after Corn posted one processed slow request profiling
              # data to Corn server. If you had too many reports need to be posted to Corn
              # server, we recommend you increase slow_request_threshold instead of reduce
              # post_interval value.
              # :post_interval => 2,

              # Why we need this configuration? The anwser is runtime toggle.
              # You may like to turn off the Corn profiler in most of time,
              # and only turn on profiling when you need it in production.
              # The value can be "true", "false" or a lambda (or Proc).
              # For example: Corn.config(:profiling => lambda {|env| YourAppConfig.corn_profiling? })
              # The "env" argument is the Rack env argument when a Rack middleware is
              # called. So you can also use it to turn on profiling by a request parameter.
              # For example: Corn.config(:profiling => lambda {|env| env["QUERY_STRING"] =~ /corn_profiling=true/ })
              # This configuration will be checked for every request, so don't do anything
              # expensive here.
              # :profiling => true,
            })
# Install corn rack middleware for profiling slow requests
Rails.configuration.middleware.use(Corn.rack_middleware)
RUBY
      end