mirror of
https://github.com/Mibew/mibew.git
synced 2025-02-12 10:31:09 +03:00
Improve statistics aggregation algorithm a little
This commit is contained in:
parent
9f3ce28877
commit
fc789e6ef9
@ -207,9 +207,8 @@ function calculate_thread_statistics()
|
|||||||
. "GROUP BY m.threadid) tmp "
|
. "GROUP BY m.threadid) tmp "
|
||||||
. "WHERE t.threadid = tmp.threadid "
|
. "WHERE t.threadid = tmp.threadid "
|
||||||
. "AND (t.dtmcreated - :start) > :interval "
|
. "AND (t.dtmcreated - :start) > :interval "
|
||||||
// Calculate statistics only for threads that older than
|
// Calculate statistics only for yesterday
|
||||||
// statistics aggregation interval
|
. "AND :today > t.dtmcreated "
|
||||||
. "AND (:today - t.dtmcreated) > :interval "
|
|
||||||
// Ignore threads when operator does not start chat
|
// Ignore threads when operator does not start chat
|
||||||
. "AND t.dtmchatstarted <> 0 "
|
. "AND t.dtmchatstarted <> 0 "
|
||||||
// Ignore not accepted invitations
|
// Ignore not accepted invitations
|
||||||
@ -241,9 +240,8 @@ function calculate_thread_statistics()
|
|||||||
. "COUNT(*) as missed_threads "
|
. "COUNT(*) as missed_threads "
|
||||||
. "FROM {thread} "
|
. "FROM {thread} "
|
||||||
. "WHERE (dtmcreated - :start) > :interval "
|
. "WHERE (dtmcreated - :start) > :interval "
|
||||||
// Calculate statistics only for threads that older than
|
// Calculate statistics only for yesterday
|
||||||
// statistics aggregation interval
|
. "AND :today > dtmcreated "
|
||||||
. "AND (:today - dtmcreated) > :interval "
|
|
||||||
// Ignore threads when operator does not start chat
|
// Ignore threads when operator does not start chat
|
||||||
. "AND dtmchatstarted = 0 "
|
. "AND dtmchatstarted = 0 "
|
||||||
// Ignore not accepted invitations
|
// Ignore not accepted invitations
|
||||||
@ -271,9 +269,8 @@ function calculate_thread_statistics()
|
|||||||
. "ROUND(AVG(dtmchatstarted-dtmcreated),1) AS avg_waiting_time "
|
. "ROUND(AVG(dtmchatstarted-dtmcreated),1) AS avg_waiting_time "
|
||||||
. "FROM {thread} "
|
. "FROM {thread} "
|
||||||
. "WHERE (dtmcreated - :start) > :interval "
|
. "WHERE (dtmcreated - :start) > :interval "
|
||||||
// Calculate statistics only for threads that older than
|
// Calculate statistics only for yesterday
|
||||||
// statistics aggregation interval
|
. "AND :today > dtmcreated "
|
||||||
. "AND (:today - dtmcreated) > :interval "
|
|
||||||
// Ignore threads when operator does not start chat
|
// Ignore threads when operator does not start chat
|
||||||
. "AND dtmchatstarted <> 0 "
|
. "AND dtmchatstarted <> 0 "
|
||||||
// Ignore all invitations
|
// Ignore all invitations
|
||||||
@ -304,9 +301,8 @@ function calculate_thread_statistics()
|
|||||||
. "SUM(invitationstate = :invitation_ignored) AS invitations_ignored "
|
. "SUM(invitationstate = :invitation_ignored) AS invitations_ignored "
|
||||||
. "FROM {thread} "
|
. "FROM {thread} "
|
||||||
. "WHERE (dtmcreated - :start) > :interval "
|
. "WHERE (dtmcreated - :start) > :interval "
|
||||||
// Calculate statistics only for threads that older than
|
// Calculate statistics only for yesterday
|
||||||
// statistics aggregation interval
|
. "AND :today > dtmcreated "
|
||||||
. "AND (:today - dtmcreated) > :interval "
|
|
||||||
. "AND (invitationstate = :invitation_accepted "
|
. "AND (invitationstate = :invitation_accepted "
|
||||||
. "OR invitationstate = :invitation_rejected "
|
. "OR invitationstate = :invitation_rejected "
|
||||||
. "OR invitationstate = :invitation_ignored) "
|
. "OR invitationstate = :invitation_ignored) "
|
||||||
@ -428,9 +424,8 @@ function calculate_operator_statistics()
|
|||||||
. "WHERE m.ikind = :kind_agent "
|
. "WHERE m.ikind = :kind_agent "
|
||||||
. "AND m.threadid = t.threadid "
|
. "AND m.threadid = t.threadid "
|
||||||
. "AND (m.dtmcreated - :start) > :interval "
|
. "AND (m.dtmcreated - :start) > :interval "
|
||||||
// Calculate statistics only for messages that older
|
// Calculate statistics only for yesterday
|
||||||
// statistics aggregation interval
|
. "AND :today > m.dtmcreated "
|
||||||
. "AND (:today - m.dtmcreated) > :interval "
|
|
||||||
// Ignore not accepted invitations
|
// Ignore not accepted invitations
|
||||||
. "AND (t.invitationstate = :not_invited "
|
. "AND (t.invitationstate = :not_invited "
|
||||||
. "OR t.invitationstate = :invitation_accepted) "
|
. "OR t.invitationstate = :invitation_accepted) "
|
||||||
@ -463,9 +458,8 @@ function calculate_operator_statistics()
|
|||||||
. "SUM(invitationstate = :invitation_ignored) AS invitations_ignored "
|
. "SUM(invitationstate = :invitation_ignored) AS invitations_ignored "
|
||||||
. "FROM {thread} "
|
. "FROM {thread} "
|
||||||
. "WHERE (dtmcreated - :start) > :interval "
|
. "WHERE (dtmcreated - :start) > :interval "
|
||||||
// Calculate statistics only for threads that older than
|
// Calculate statistics only for yesterday
|
||||||
// statistics aggregation interval
|
. "AND :today > dtmcreated "
|
||||||
. "AND (:today - dtmcreated) > :interval "
|
|
||||||
// Check if thread has related operator
|
// Check if thread has related operator
|
||||||
. "AND agentid != 0 "
|
. "AND agentid != 0 "
|
||||||
// Ignore not accepted invitations
|
// Ignore not accepted invitations
|
||||||
@ -581,7 +575,8 @@ function calculate_page_statistics()
|
|||||||
. "FROM {visitedpage} "
|
. "FROM {visitedpage} "
|
||||||
. "WHERE calculated = 0 "
|
. "WHERE calculated = 0 "
|
||||||
. "AND (visittime - :start) > :interval "
|
. "AND (visittime - :start) > :interval "
|
||||||
. "AND (:today - visittime) > :interval "
|
// Calculate statistics only for yesterday
|
||||||
|
. "AND :today > visittime "
|
||||||
. "GROUP BY date, address"),
|
. "GROUP BY date, address"),
|
||||||
array(
|
array(
|
||||||
':start' => $start,
|
':start' => $start,
|
||||||
@ -616,7 +611,8 @@ function calculate_page_statistics()
|
|||||||
. "AND tmp.msgs > 0 "
|
. "AND tmp.msgs > 0 "
|
||||||
. "AND t.dtmchatstarted <> 0 "
|
. "AND t.dtmchatstarted <> 0 "
|
||||||
. "AND (p.visittime - :start) > :interval "
|
. "AND (p.visittime - :start) > :interval "
|
||||||
. "AND (:today - p.visittime) > :interval "
|
// Calculate statistics only for yesterday
|
||||||
|
. "AND :today > p.visittime "
|
||||||
. "AND DATE(FROM_UNIXTIME(p.visittime)) "
|
. "AND DATE(FROM_UNIXTIME(p.visittime)) "
|
||||||
. "= DATE(FROM_UNIXTIME(t.dtmcreated)) "
|
. "= DATE(FROM_UNIXTIME(t.dtmcreated)) "
|
||||||
. "AND (t.invitationstate = :not_invited "
|
. "AND (t.invitationstate = :not_invited "
|
||||||
@ -650,7 +646,8 @@ function calculate_page_statistics()
|
|||||||
. "WHERE t.referer = p.address "
|
. "WHERE t.referer = p.address "
|
||||||
. "AND p.calculated = 0 "
|
. "AND p.calculated = 0 "
|
||||||
. "AND (p.visittime - :start) > :interval "
|
. "AND (p.visittime - :start) > :interval "
|
||||||
. "AND (:today - p.visittime) > :interval "
|
// Calculate statistics only for yesterday
|
||||||
|
. "AND :today > p.visittime "
|
||||||
. "AND DATE(FROM_UNIXTIME(p.visittime)) "
|
. "AND DATE(FROM_UNIXTIME(p.visittime)) "
|
||||||
. "= DATE(FROM_UNIXTIME(t.dtmcreated)) "
|
. "= DATE(FROM_UNIXTIME(t.dtmcreated)) "
|
||||||
. "AND t.invitationstate = :invitation_accepted "
|
. "AND t.invitationstate = :invitation_accepted "
|
||||||
@ -680,7 +677,8 @@ function calculate_page_statistics()
|
|||||||
. "WHERE t.referer = p.address "
|
. "WHERE t.referer = p.address "
|
||||||
. "AND p.calculated = 0 "
|
. "AND p.calculated = 0 "
|
||||||
. "AND (p.visittime - :start) > :interval "
|
. "AND (p.visittime - :start) > :interval "
|
||||||
. "AND (:today - p.visittime) > :interval "
|
// Calculate statistics only for yesterday
|
||||||
|
. "AND :today > p.visittime "
|
||||||
. "AND DATE(FROM_UNIXTIME(p.visittime)) "
|
. "AND DATE(FROM_UNIXTIME(p.visittime)) "
|
||||||
. "= DATE(FROM_UNIXTIME(t.dtmcreated)) "
|
. "= DATE(FROM_UNIXTIME(t.dtmcreated)) "
|
||||||
. "AND t.invitationstate = :invitation_rejected "
|
. "AND t.invitationstate = :invitation_rejected "
|
||||||
@ -710,7 +708,8 @@ function calculate_page_statistics()
|
|||||||
. "WHERE t.referer = p.address "
|
. "WHERE t.referer = p.address "
|
||||||
. "AND p.calculated = 0 "
|
. "AND p.calculated = 0 "
|
||||||
. "AND (p.visittime - :start) > :interval "
|
. "AND (p.visittime - :start) > :interval "
|
||||||
. "AND (:today - p.visittime) > :interval "
|
// Calculate statistics only for yesterday
|
||||||
|
. "AND :today > p.visittime "
|
||||||
. "AND DATE(FROM_UNIXTIME(p.visittime)) "
|
. "AND DATE(FROM_UNIXTIME(p.visittime)) "
|
||||||
. "= DATE(FROM_UNIXTIME(t.dtmcreated)) "
|
. "= DATE(FROM_UNIXTIME(t.dtmcreated)) "
|
||||||
. "AND t.invitationstate = :invitation_ignored "
|
. "AND t.invitationstate = :invitation_ignored "
|
||||||
@ -771,11 +770,10 @@ function calculate_page_statistics()
|
|||||||
// Mark all visited pages as 'calculated'
|
// Mark all visited pages as 'calculated'
|
||||||
$db->query(
|
$db->query(
|
||||||
("UPDATE {visitedpage} SET calculated = 1 "
|
("UPDATE {visitedpage} SET calculated = 1 "
|
||||||
. "WHERE (:today - visittime) > :interval "
|
. "WHERE :today > visittime "
|
||||||
. "AND calculated = 0"),
|
. "AND calculated = 0"),
|
||||||
array(
|
array(
|
||||||
':today' => $today,
|
':today' => $today
|
||||||
':interval' => STATISTICS_AGGREGATION_INTERVAL,
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
{{#override "content"}}
|
{{#override "content"}}
|
||||||
{{{pageDescription}}}<br/>
|
{{{pageDescription}}}<br/>
|
||||||
{{l10n "Beware that statistics is aggregated up to the day before yesterday."}}
|
{{l10n "Beware that statistics is aggregated up to yesterday."}}
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
|
Loading…
Reference in New Issue
Block a user