mirror of https://github.com/BOINC/boinc.git
103 lines
2.7 KiB
SQL
103 lines
2.7 KiB
SQL
-- $Id$
|
|
|
|
-- Should be run from crontab. It will add a row in the "monitoring"
|
|
-- table with the results, for later retrieval from the "dailyreport"
|
|
-- script.
|
|
|
|
|
|
|
|
-- monitoring interval to and from
|
|
set @ut=unix_timestamp();
|
|
set @uf=@ut-3600*24; -- could be the second to latest monitor_time
|
|
|
|
-- date when the current naming conventions started
|
|
-- for later wus it is possible to reliably extract scientist names
|
|
set @begin=unix_timestamp('2009-06-01');
|
|
|
|
|
|
-- Create rows for today's monitoring
|
|
insert into monitoring (monitor_time,scientist)
|
|
select @ut monitor_time, mon_submitterof(name) sci from result
|
|
where create_time>@begin
|
|
group by sci;
|
|
|
|
|
|
-- in progress
|
|
create temporary table tmp_inprogress
|
|
select count(*) inpro, mon_submitterof(name) sci from result
|
|
where server_state=4
|
|
and create_time>@begin
|
|
group by sci;
|
|
|
|
update monitoring,tmp_inprogress as tmp
|
|
set monitoring.cur_inprogress=tmp.inpro
|
|
where monitoring.monitor_time=@ut
|
|
and monitoring.scientist=tmp.sci;
|
|
|
|
drop table tmp_inprogress;
|
|
|
|
|
|
-- unsent
|
|
create temporary table tmp_unsent
|
|
select count(*) unsent, mon_submitterof(name) sci from result
|
|
where server_state=2
|
|
and create_time>@begin
|
|
group by sci;
|
|
|
|
update monitoring,tmp_unsent as tmp
|
|
set monitoring.cur_unsent=tmp.unsent
|
|
where monitoring.monitor_time=@ut
|
|
and monitoring.scientist=tmp.sci;
|
|
|
|
drop table tmp_unsent;
|
|
|
|
|
|
-- day_successful
|
|
create temporary table tmp_suc
|
|
select count(*) suc, mon_submitterof(name) sci from result
|
|
where validate_state=1
|
|
and received_time between @uf and @ut
|
|
group by sci;
|
|
|
|
update monitoring,tmp_suc as tmp
|
|
set monitoring.day_successful=tmp.suc
|
|
where monitoring.monitor_time=@ut
|
|
and monitoring.scientist=tmp.sci;
|
|
|
|
drop table tmp_suc;
|
|
|
|
|
|
|
|
|
|
-- day_unsuccessful
|
|
create temporary table tmp_unsuc
|
|
select count(*) unsuc, mon_submitterof(name) sci from result
|
|
where validate_state=2
|
|
and received_time between @uf and @ut
|
|
group by sci;
|
|
|
|
update monitoring,tmp_unsuc as tmp
|
|
set monitoring.day_unsuccessful=tmp.unsuc
|
|
where monitoring.monitor_time=@ut
|
|
and monitoring.scientist=tmp.sci;
|
|
|
|
drop table tmp_unsuc;
|
|
|
|
|
|
|
|
-- day_credits
|
|
create temporary table tmp_cred
|
|
select sum(granted_credit) credits, mon_submitterof(name) sci from result
|
|
where validate_state=1
|
|
and received_time between @uf and @ut
|
|
group by sci;
|
|
|
|
update monitoring,tmp_cred as tmp
|
|
set monitoring.day_credits=tmp.credits
|
|
where monitoring.monitor_time=@ut
|
|
and monitoring.scientist=tmp.sci;
|
|
|
|
drop table tmp_cred;
|
|
|
|
|