【问题标题】:Radiant and NewRelic with Memcached doesn't log traffic带有 Memcached 的 Radiant 和 NewRelic 不记录流量
【发布时间】:2012-11-09 05:21:00
【问题描述】:

我已经使用 Memcached 作为 Radiant 缓存资源设置了 Radiant 实例,但是,缓存命中似乎没有记录到 Radiant。

这是一个缓存实现的例子:

# file: :rails_root/config/environments/[RAILS_ENV].rb
require 'dalli'
$cache = Dalli::Client.new(["remotehost.com:11211", "127.0.0.1:11211"], :compress => true)
config.middleware.use ::Radiant::Cache, :metastore => $cache, :entitystore => $cache

当我在 Radiant 实例(通过 httperf)上扔负载时,只有缓存未命中会在 NewRelic 中注册。

::编辑::

一些可能还值得注意的事情:

  1. 我正在使用 nginx 和 unicorn。
  2. 我目前在 :rails_root/config.ru 中需要 newrelic,如下所示:

    begin
      require 'newrelic_rpm'
      NewRelic::Agent.after_fork(:force_reconnect => true)
    rescue LoadError
      # proceed without NewRelic
    end
    
  3. 我正在使用捆绑器,这是我的 Gemfile 的示例:

    source "http://my_gem_server"
    source :rubygems
    
    gem "radiant", "~> 1.1.0"
    gem 'unicorn'
    gem 'therubyracer', '~> 0.9'
    gem 'newrelic_rpm'
    gem 'rack-cache'
    gem 'dalli'
    gem "compass-rails", "~> 1.0.3"
    group :extensions do
      # radiant extensions
      gem "radiant-archive-extension",             "~> 1.0.7"
      gem "radiant-clipped-extension",             "~> 1.1.0"
      gem "radiant-debug-extension",               "~> 1.0.2"
      gem "radiant-exporter-extension",            "~> 1.1.0"
      gem "radiant-markdown_filter-extension",     "~> 1.0.2"
      gem "radiant-snippets-extension",            "~> 1.1.0"
      gem "radiant-site_templates-extension",      "~> 1.0.4"
      gem "radiant-smarty_pants_filter-extension", "~> 1.0.2"
      gem "radiant-textile_filter-extension",      "~> 1.0.4"
    
      # additional extensions
      gem "radiant-index_page-extension",          "~> 1.0.1"
      gem "radiant-vapor-extension",               "~> 2.1.4"
      gem "radiant-reorder_children-extension",    "~> 1.0.6"
      gem "radiant-layouts-extension",             "~> 1.1.3"
      gem "radiant-sibling_tags-extension",        "~> 0.2.1"
      gem "radiant-if_param_tags-extension",       "~> 1.0.1"
      gem "radiant-cache_buster-extension",        "~> 0.0.1"
    
      # forked extensions
      gem "radiant-sheets-extension",              "1.1.0my1"
    end
    
  4. 我试过的东西:
    • 将 newrelic 的 require 代码移动到 config.ru 的顶部和底部。
    • gem "newrelic_rpm" 移动到我的 Gemfile 的顶部和底部(底部:https://newrelic.com/docs/ruby/does-new-relic-work-with-the-bundler-gem
    • 将 newrelic 的 require 代码移动到我的 :rails_root/config/enivornments/[RAILS_ENV].rb 底部
    • 将 newrelic 的 require 代码移动到 :rails_env/config/boot.rb:rails_env/config/environment.rb -- 顶部和底部。
    • 在 Gemfile 中使用 gem "newrelic_rpm", :require => 'newrelic_rpm' 明确要求 newrelic_rpm

::/编辑::

有人有什么想法吗?

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby memcached newrelic radiant


    【解决方案1】:

    在与 NewRelics 支持人员合作后,他们让我发了这个帖子:http://newrelic.github.com/rpm/NewRelic/Agent/Instrumentation/Rack.html

    然后我稍微解构了这个方法,想出了以下解决方案:

    https://gist.github.com/4076773

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-05
      • 2017-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 2014-03-21
      相关资源
      最近更新 更多