|
@@ -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
|
|
|
|