我使用雷声枪的错误跟踪在一个应用程序,使用一个切分的数据库。单独的客户端将他们的数据存储在他们自己的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使用雷声枪时,我可以使用雷管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应用程序上过滤那个标签了。
不幸的是,在应用程序启动时(当这个初始化程序中的代码运行时),我们仍然处于master碎片上。这意味着雷声将每个错误标记为master碎片。
是否有任何方法可以修改我的初始化程序,以便在实际发生错误时调用EnvironmentInformation.shard_name?
在谷歌上搜索还没有想出什么。
发布于 2017-10-04 14:15:00
通过特性请求,Raygun的人员已经实现了一个proc,它可以用于在运行时动态设置标记。
虽然我仍然感兴趣,但我的具体问题现在已经解决了。
https://stackoverflow.com/questions/46301917
复制相似问题