mirror of
https://0xacab.org/sutty/sutty
synced 2025-02-21 11:01:47 +00:00
recolectar estadísticas de referers
This commit is contained in:
parent
5186892a87
commit
be6224ddf1
1 changed files with 18 additions and 28 deletions
|
@ -24,7 +24,6 @@ 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
|
||||||
name = 'host|uri'
|
|
||||||
beginning = beginning_of_interval
|
beginning = beginning_of_interval
|
||||||
|
|
||||||
site.hostnames.each do |host|
|
site.hostnames.each do |host|
|
||||||
|
@ -33,10 +32,18 @@ class UriCollectionJob < PeriodicJob
|
||||||
uris.each do |uri|
|
uris.each do |uri|
|
||||||
break if stop?
|
break if stop?
|
||||||
|
|
||||||
rollup_uri(uri, host, name, beginning)
|
rollup('host|uri', beginning, host: host, uri: uri)
|
||||||
|
|
||||||
|
AccessLog.where(host: host, uri: uri).distinct(:http_referer).pluck(:http_referer).each do |http_referer|
|
||||||
|
rollup('host|uri|referer', beginning, host: host, uri: uri, http_referer: http_referer)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
rollup_host(host, name, beginning)
|
rollup('host', beginning, host: host)
|
||||||
|
|
||||||
|
AccessLog.where(host: host).distinct(:http_referer).pluck(:http_referer).each do |http_referer|
|
||||||
|
rollup('host|referer', beginning, host: host, http_referer: http_referer)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
stat.touch
|
stat.touch
|
||||||
|
@ -46,9 +53,14 @@ class UriCollectionJob < PeriodicJob
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def rollup_uri(uri, host, name, beginning)
|
# Generar un rollup a partir de unas dimensiones que también sirven de
|
||||||
dimensions = { host: host, uri: uri }
|
# filtro.
|
||||||
|
#
|
||||||
|
# @param :name [String]
|
||||||
|
# @param :beginning [Time]
|
||||||
|
# @param :dimensions [Hash]
|
||||||
|
# @return [nil]
|
||||||
|
def rollup(name, beginning, **dimensions)
|
||||||
AccessLog.where(**dimensions)
|
AccessLog.where(**dimensions)
|
||||||
.where('created_at >= ?', beginning)
|
.where('created_at >= ?', beginning)
|
||||||
.completed_requests
|
.completed_requests
|
||||||
|
@ -70,28 +82,6 @@ class UriCollectionJob < PeriodicJob
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def rollup_host(host, name, beginning)
|
|
||||||
dimensions = { host: host }
|
|
||||||
new_name = 'host'
|
|
||||||
|
|
||||||
recursive_rollup(name: name,
|
|
||||||
new_name: new_name,
|
|
||||||
interval_previous: starting_interval,
|
|
||||||
interval: starting_interval,
|
|
||||||
dimensions: dimensions,
|
|
||||||
beginning: beginning)
|
|
||||||
|
|
||||||
Stat::INTERVALS.reduce do |previous, current|
|
|
||||||
recursive_rollup(name: new_name,
|
|
||||||
interval_previous: previous,
|
|
||||||
interval: current,
|
|
||||||
dimensions: dimensions,
|
|
||||||
beginning: beginning)
|
|
||||||
|
|
||||||
current
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def stat_name
|
def stat_name
|
||||||
STAT_NAME
|
STAT_NAME
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue