Browse Source

More instrumentation for checks

Andrew Kane 8 years ago
parent
commit
0df59fb740
1 changed files with 6 additions and 4 deletions
  1. 6 4
      lib/blazer.rb

+ 6 - 4
lib/blazer.rb

@@ -73,10 +73,11 @@ module Blazer
 
       ActiveSupport::Notifications.instrument("run_check.blazer", check_id: check.id, query_id: check.query.id, state_was: check.state) do |instrument|
         # try 3 times on timeout errors
+        data_source = data_sources[check.query.data_source]
+        statement = check.query.statement
+        Blazer.transform_statement.call(data_source, statement) if Blazer.transform_statement
+
         while tries <= 3
-          data_source = data_sources[check.query.data_source]
-          statement = check.query.statement
-          Blazer.transform_statement.call(data_source, statement) if Blazer.transform_statement
           columns, rows, error, cached_at = data_source.run_statement(statement, refresh_cache: true)
           if error == Blazer::TIMEOUT_MESSAGE
             Rails.logger.info "[blazer timeout] query=#{check.query.name}"
@@ -95,12 +96,13 @@ module Blazer
         # TODO use proper logfmt
         Rails.logger.info "[blazer check] query=#{check.query.name} state=#{check.state} rows=#{rows.try(:size)} error=#{error}"
 
+        instrument[:statement] = statement
+        instrument[:data_source] = data_source
         instrument[:state] = check.state
         instrument[:rows] = rows.try(:size)
         instrument[:error] = error
         instrument[:tries] = tries
       end
-
     end
   end