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:
parent
7dad3e9e54
commit
595a8759a4
1 changed files with 32 additions and 13 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue