2011-03-25 63 views
7

我需要检查我的rails应用程序的性能。我安装了newrelic_rpm。 在environment.rb中,下列补充:newrelic_rpm,rails gem显示没有开发路线

config.gem "newrelic_rpm" 

然后,在浏览器我给:

http://localhost:3000/newrelic 

然后,它示出了如下的错误消息:

路由错误没有路线匹配“/ newrelic”{:method =>:get}

能否请你帮我解决这个..提前

谢谢...

回答

2

我对Rails的3.0.5相同的问题,从newrelic_rpm升级后2.13.4 - > 2.14.0

我跟着从这里的信息:
http://support.newrelic.com/discussions/support/5547-cant-access-developer-mode

...我加在文件我$RAILS_ROOT/config.ru文件的顶部以下

 
require 'new_relic/rack_app' 
use NewRelic::Rack::DeveloperMode 

我期待这个问题被固定在newpreic_rpm

以后的版本我也注意到在newrelic.yaml文件格式的变化,应该是在config目录。你可以在创建一个账户(有一个基本的免费版本)后从你的新账户主页(账户>部署>红宝石)下载它。

基本上,它看起来像:

common: &default_settings 

    license_key: '[ Your unique license key ]' 

    app_name: My Application 

    # When "true", the agent collects performance data about your 
    # application and reports this data to the NewRelic RPM service at 
    # newrelic.com. This global switch is normally overridden for each 
    # environment below. (formerly called 'enabled') 
    monitor_mode: true 

    # Developer mode should be off in every environment but 
    # development as it has very high overhead in memory. 
    developer_mode: false 

    # The newrelic agent generates its own log file to keep its logging 
    # information separate from that of your application. Specify its 
    # log level here. 
    log_level: info 

    # The newrelic agent communicates with the RPM service via http by 
    # default. If you want to communicate via https to increase 
    # security, then turn on SSL by setting this value to true. Note, 
    # this will result in increased CPU overhead to perform the 
    # encryption involved in SSL communication, but this work is done 
    # asynchronously to the threads that process your application code, 
    # so it should not impact response times. 
    ssl: false 

    # EXPERIMENTAL: enable verification of the SSL certificate sent by 
    # the server. This setting has no effect unless SSL is enabled 
    # above. This may block your application. Only enable it if the data 
    # you send us needs end-to-end verified certificates. 
    # 
    # This means we cannot cache the DNS lookup, so each request to the 
    # RPM service will perform a lookup. It also means that we cannot 
    # use a non-blocking lookup, so in a worst case, if you have DNS 
    # problems, your app may block indefinitely. 
    # verify_certificate: true 

    # Set your application's Apdex threshold value with the 'apdex_t' 
    # setting, in seconds. The apdex_t value determines the buckets used 
    # to compute your overall Apdex score. 
    # Requests that take less than apdex_t seconds to process will be 
    # classified as Satisfying transactions; more than apdex_t seconds 
    # as Tolerating transactions; and more than four times the apdex_t 
    # value as Frustrating transactions. 
    # For more about the Apdex standard, see 
    # http://support.newrelic.com/faqs/general/apdex 

    apdex_t: 0.5 

    # Proxy settings for connecting to the RPM server. 
    # 
    # If a proxy is used, the host setting is required. Other settings 
    # are optional. Default port is 8080. 
    # 
    # proxy_host: hostname 
    # proxy_port: 8080 
    # proxy_user: 
    # proxy_pass: 


    # Tells transaction tracer and error collector (when enabled) 
    # whether or not to capture HTTP params. When true, frameworks can 
    # exclude HTTP parameters from being captured. 
    # Rails: the RoR filter_parameter_logging excludes parameters 
    # Java: create a config setting called "ignored_params" and set it to 
    #  a comma separated list of HTTP parameter names. 
    #  ex: ignored_params: credit_card, ssn, password 
    capture_params: false 


    # Transaction tracer captures deep information about slow 
    # transactions and sends this to the RPM service once a 
    # minute. Included in the transaction is the exact call sequence of 
    # the transactions including any SQL statements issued. 
    transaction_tracer: 

    # Transaction tracer is enabled by default. Set this to false to 
    # turn it off. This feature is only available at the Silver and 
    # above product levels. 
    enabled: true 

    # Threshold in seconds for when to collect a transaction 
    # trace. When the response time of a controller action exceeds 
    # this threshold, a transaction trace will be recorded and sent to 
    # RPM. Valid values are any float value, or (default) "apdex_f", 
    # which will use the threshold for an dissatisfying Apdex 
    # controller action - four times the Apdex T value. 
    transaction_threshold: apdex_f 

    # When transaction tracer is on, SQL statements can optionally be 
    # recorded. The recorder has three modes, "off" which sends no 
    # SQL, "raw" which sends the SQL statement in its original form, 
    # and "obfuscated", which strips out numeric and string literals 
    record_sql: obfuscated 

    # Threshold in seconds for when to collect stack trace for a SQL 
    # call. In other words, when SQL statements exceed this threshold, 
    # then capture and send to RPM the current stack trace. This is 
    # helpful for pinpointing where long SQL calls originate from 
    stack_trace_threshold: 0.500 

    # Determines whether the agent will capture query plans for slow 
    # SQL queries. Only supported in mysql and postgres. Should be 
    # set to false when using other adapters. 
    # explain_enabled: true 

    # Threshold for query execution time below which query plans will not 
    # not be captured. Relevant only when `explain_enabled` is true. 
    # explain_threshold: 0.5 

    # Error collector captures information about uncaught exceptions and 
    # sends them to RPM for viewing 
    error_collector: 

    # Error collector is enabled by default. Set this to false to turn 
    # it off. This feature is only available at the Silver and above 
    # product levels 
    enabled: true 

    # Rails Only - tells error collector whether or not to capture a 
    # source snippet around the place of the error when errors are View 
    # related. 
    capture_source: true  

    # To stop specific errors from reporting to RPM, set this property 
    # to comma separated values. Default is to ignore routing errors 
    # which are how 404's get triggered. 
    # 
    ignore_errors: ActionController::RoutingError 

    # (Advanced) Uncomment this to ensure the cpu and memory samplers 
    # won't run. Useful when you are using the agent to monitor an 
    # external resource 
    # disable_samplers: true 

    # If you aren't interested in visibility in these areas, you can 
    # disable the instrumentation to reduce overhead. 
    # 
    # disable_view_instrumentation: true 
    # disable_activerecord_instrumentation: true 
    # disable_memcache_instrumentation: true 
    # disable_dj: true 

    # Certain types of instrumentation such as GC stats will not work if 
    # you are running multi-threaded. Please let us know. 
    # multi_threaded = false 

# Application Environments 
# ------------------------------------------ 
# Environment specific settings are in this section. 
# For Rails applications, RAILS_ENV is used to determine the environment 
# For Java applications, pass -Dnewrelic.environment <environment> to set 
# the environment 

# NOTE if your application has other named environments, you should 
# provide newrelic configuration settings for these environments here. 

development: 
    <<: *default_settings 
    # Turn off communication to RPM service in development mode (also 
    # 'enabled'). 
    # NOTE: for initial evaluation purposes, you may want to temporarily 
    # turn the agent on in development mode. 
    monitor_mode: false 

    # Rails Only - when running in Developer Mode, the New Relic Agent will 
    # present performance information on the last 100 transactions you have 
    # executed since starting the mongrel. 
    # NOTE: There is substantial overhead when running in developer mode. 
    # Do not use for production or load testing. 
    developer_mode: true 

    # Enable textmate links 
    # textmate: true 

test: 
    <<: *default_settings 
    # It almost never makes sense to turn on the agent when running 
    # unit, functional or integration tests or the like. 
    monitor_mode: false 

# Turn on the agent in production for 24x7 monitoring. NewRelic 
# testing shows an average performance impact of < 5 ms per 
# transaction, you you can leave this on all the time without 
# incurring any user-visible performance degradation. 
production: 
    <<: *default_settings 
    monitor_mode: true 

# Many applications have a staging environment which behaves 
# identically to production. Support for that environment is provided 
# here. By default, the staging environment has the agent turned on. 
staging: 
    <<: *default_settings 
    monitor_mode: true 
    app_name: My Application (Staging) 

+0

0123解决了我的问题,尽管dev模式仍然没有看到任何事务。这是否计入将其放入“中间件堆栈”? – Kevin 2011-05-03 22:30:01

+1

在rails 3.1.3上,您必须将以下几行添加到您的config.ru(http://newrelic.github上的“机架应用程序中的开发人员模式”部分)。com/rpm /): require'new_relic/rack/developer_mode' use NewRelic :: Rack :: DeveloperMode – Murdoch 2011-12-11 18:32:47

15

我猜我的问题与运行薄(和其他进程)通过工头发展。我添加了以下获得的路由和监测工作:

config/environments/development.rb

require 'new_relic/rack/developer_mode' 
config.middleware.use NewRelic::Rack::DeveloperMode 
ENV['NEWRELIC_ENABLE'] = 'true' 

设置ENV['NEWRELIC_ENABLE'] = 'true'可以监控的东西时,你宁愿它没有(rake任务等...)

+0

感谢您的支持。首先,我的config.ru中的前2个链接对监控不起作用,然后我将最后一行添加到我的开发环境中,现在一切正常 – Will 2012-07-23 20:10:45