私は、シャードされたデータベースを使用するアプリでエラートラッキングのためにRaygunを使用しています。別々のクライアントは、DBサーバーのそれぞれの断片にデータを格納します。レール初期化子から実行時にコードを呼び出すにはどうすればよいですか?
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はを使用している場合、私はRaygunはconfig/initializers/raygun.rb
を使用してエラーのタグを設定することができ
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アプリでそのタグをフィルタリングすることができます。
残念ながら、アプリケーションの起動時(このイニシャライザのコードが実行されているとき)には、まだmaster
シャードにあります。これはRaygunがすべてのエラーをmaster
シャードとタグ付けすることを意味します。
実際にエラーが発生したときにEnvironmentInformation.shard_name
と呼ぶことができるように、初期化子を修正する方法はありますか?
Google検索ではまだ何も出ていません。