perf(reports): skip computing hidden metrics in summary
Instead of filtering metrics after computation, skip the expensive database queries entirely for hidden metrics. This prevents timeouts on accounts with large datasets. - MetricBuilder now accepts hidden_metrics param and returns nil for hidden metrics (compacted from response) - Reports controller passes hidden_metrics to builder params
This commit is contained in:
@@ -15,11 +15,11 @@ class Api::V2::Accounts::ReportsController < Api::V1::Accounts::BaseController
|
||||
end
|
||||
|
||||
def summary
|
||||
render json: filter_summary_with_previous(build_summary(:summary))
|
||||
render json: build_summary(:summary)
|
||||
end
|
||||
|
||||
def bot_summary
|
||||
render json: filter_summary_with_previous(build_summary(:bot_summary))
|
||||
render json: build_summary(:bot_summary)
|
||||
end
|
||||
|
||||
def agents
|
||||
@@ -107,7 +107,8 @@ class Api::V2::Accounts::ReportsController < Api::V1::Accounts::BaseController
|
||||
common_params.merge({
|
||||
since: range[:current][:since],
|
||||
until: range[:current][:until],
|
||||
timezone_offset: params[:timezone_offset]
|
||||
timezone_offset: params[:timezone_offset],
|
||||
hidden_metrics: hidden_metrics
|
||||
})
|
||||
end
|
||||
|
||||
@@ -115,7 +116,8 @@ class Api::V2::Accounts::ReportsController < Api::V1::Accounts::BaseController
|
||||
common_params.merge({
|
||||
since: range[:previous][:since],
|
||||
until: range[:previous][:until],
|
||||
timezone_offset: params[:timezone_offset]
|
||||
timezone_offset: params[:timezone_offset],
|
||||
hidden_metrics: hidden_metrics
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user