5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-16 14:41:41 +00:00

usar las uris como fuente de verdad

This commit is contained in:
f 2022-04-29 20:32:21 -03:00
parent 7dad3e9e54
commit 595a8759a4

View file

@ -24,6 +24,7 @@ class UriCollectionJob < PeriodicJob
# Recordar la última vez que se corrió la tarea # Recordar la última vez que se corrió la tarea
stat = site.stats.create! name: STAT_NAME stat = site.stats.create! name: STAT_NAME
beginning = beginning_of_interval beginning = beginning_of_interval
columns = %i[http_referer geoip2_data_country_name]
# Recorremos todos los hostnames y uris posibles y luego agrupamos # Recorremos todos los hostnames y uris posibles y luego agrupamos
# recursivamente para no tener que recalcular, asumiendo que es más # recursivamente para no tener que recalcular, asumiendo que es más
@ -33,11 +34,31 @@ class UriCollectionJob < PeriodicJob
site.hostnames.each do |host| site.hostnames.each do |host|
break if stop? break if stop?
host_dimensions = { host: host }
# Las URIs son la fuente de verdad de las visitas, porque son las
# que indican las páginas y recursos descargables, el resto son
# imágenes, CSS, JS y tipografías que no nos aportan números
# significativos.
uris.each do |uri| uris.each do |uri|
break if stop? break if stop?
rollup('host|uri', beginning, host: host, uri: uri) name = 'host|uri'
reduce_rollup('host|uri', beginning, host: host, uri: uri) dimensions = { host: host, uri: uri }
rollup(name, beginning, **dimensions)
reduce_rollup(name, beginning, **dimensions)
columns.each do |column|
# Obtener orígenes de visitas por host
AccessLog.where(**host_dimensions).distinct(column).pluck(column).each do |value|
name = "#{name}|#{column}"
dimensions[column] = value
rollup(name, beginning, **dimensions)
reduce_rollup(name, beginning, **dimensions)
end
end
end end
# Reducir todas las visitas a cantidad de visitas por host # Reducir todas las visitas a cantidad de visitas por host
@ -45,23 +66,21 @@ class UriCollectionJob < PeriodicJob
new_name: 'host', new_name: 'host',
interval_previous: starting_interval, interval_previous: starting_interval,
interval: starting_interval, interval: starting_interval,
dimensions: { host: host }, dimensions: host_dimensions,
beginning: beginning) beginning: beginning)
# Acumular por mes y año # Acumular por mes y año
reduce_rollup('host', beginning, host: host) reduce_rollup('host', beginning, **host_dimensions)
columns = %i[http_referer geoip2_data_country_name]
columns.each do |column| columns.each do |column|
# Obtener orígenes de visitas por host recursive_rollup(name: "host|uri|#{column}",
AccessLog.where(host: host).distinct(column).pluck(column).each do |value| new_name: "host|#{column}",
name = "host|#{column}" interval_previous: starting_interval,
dimensions = { host: host } interval: starting_interval,
dimensions[column] = value dimensions: host_dimensions,
beginning: beginning)
rollup(name, beginning, **dimensions) reduce_rollup("host|#{column}", beginning, **host_dimensions)
reduce_rollup(name, beginning, **dimensions)
end
end end
end end