5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-07-03 23:45:45 +00:00

generar los rollups para los siguientes intervalos

This commit is contained in:
f 2022-04-30 20:40:54 -03:00
parent 8a3c9a76a7
commit 158c224449

View file

@ -11,8 +11,6 @@
# Los hostnames de un sitio van a poder obtenerse a partir de # Los hostnames de un sitio van a poder obtenerse a partir de
# Site#hostnames con la garantía de que son únicos. # Site#hostnames con la garantía de que son únicos.
class UriCollectionJob < PeriodicJob class UriCollectionJob < PeriodicJob
include RecursiveRollup
# Ignoramos imágenes porque suelen ser demasiadas y no aportan a las # Ignoramos imágenes porque suelen ser demasiadas y no aportan a las
# estadísticas. # estadísticas.
IMAGES = %w[.png .jpg .jpeg .gif .webp .jfif].freeze IMAGES = %w[.png .jpg .jpeg .gif .webp .jfif].freeze
@ -76,13 +74,29 @@ class UriCollectionJob < PeriodicJob
# @param :dimensions [Hash] # @param :dimensions [Hash]
# @param :filter [Hash] # @param :filter [Hash]
# @return [nil] # @return [nil]
def rollup(name:, dimensions:, filter: nil) def rollup(name:, dimensions:, interval: starting_interval, filter: nil)
AccessLog.where(**(filter || dimensions)) AccessLog.where(**(filter || dimensions))
.where('created_at >= ?', beginning_of_interval) .where('created_at >= ?', beginning_of_interval)
.completed_requests .completed_requests
.non_robots .non_robots
.group(*dimensions.keys) .group(*dimensions.keys)
.rollup(name, interval: starting_interval, update: true) .rollup(name, interval: interval, update: true)
end
# Generar rollups con el resto de la información
#
# @param :name [String]
# @param :dimensions [Hash]
# @param :filter [Hash]
# @return [nil]
def reduce_rollup(name:, dimensions:, filter: nil)
Stat::INTERVALS.reduce do |_previous, current|
rollup(name: name, dimensions: dimensions, filter: filter, interval: current)
current
end
nil
end end
def stat_name def stat_name