2017-09-19 4 views
0

私は、シャードされたデータベースを使用するアプリでエラートラッキングのために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検索ではまだ何も出ていません。

答えて

0

機能リクエストを介して、Raygunのユーザーは実行時にタグを動的に設定するために使用できるprocを実装しました。

まだ一般的に関心がありますが、私の特定の問題が解決されました。

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

関連する問題