我如何在运行时从导轨初始化器调用代码



我正在使用raygun在使用碎片数据库的应用中进行错误跟踪。单独的客户将数据存储在自己的DB服务器的碎片上。

rails c
1> MultiSite.get_shard
#=> master
2> Post.count
#=> 0
3> MultiSite.set_shard :client1_prod
#=> nil
4> MultiSite.get_shard
#=> client1_prod
5> Post.count
#=> 123

使用Raygun时,我可以使用Raygun config/initializers/raygun.rb设置错误标签:

Raygun.setup do |config|
  config.api_key = LOCAL_SETTINGS["raygun_token"]
  config.filter_parameters = Rails.application.config.filter_parameters
  config.version = EnvironmentInformation.get_version
  config.tags = [
                  EnvironmentInformation.get_server_name,
                  EnvironmentInformation.get_version,
                  EnvironmentInformation.get_commit_hash,
                  EnvironmentInformation.shard_name
                ]
  config.enable_reporting = true
end

所以我在这里尝试使用EnvironmentInformation.shard_name告诉我哪个客户端(哪个碎片)正在遇到错误,以便我可以在Raygun应用程序上过滤该标签。

不幸的是,在App启动(此初始化器中的代码运行时),我们仍在master shard上。这意味着Raygun将每个错误标记为master shard。

有什么办法可以修改初始化器,以便在实际发生错误时可以调用EnvironmentInformation.shard_name

谷歌搜索尚未提出任何内容。

通过功能请求,Raygun的家伙已经实现了一个PROC,可用于在运行时动态设置标签。

尽管仍然普遍兴趣,但我的具体问题现已解决。

https://raygun.com/thinktank/suggestion/94060

相关内容

  • 没有找到相关文章

最新更新