diff options
author | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-10-30 08:56:10 +0000 |
---|---|---|
committer | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-10-30 08:56:10 +0000 |
commit | e84814d3313e8d54c24106e1ac6806aeffec15dd (patch) | |
tree | cafa6f43ad0b6af9e46e99ccc6c1aecce88b8367 /src/zabbix_server/functions.c | |
parent | 22291a50ded07400ab7a6cee803c9a0e9d587870 (diff) | |
download | zabbix-e84814d3313e8d54c24106e1ac6806aeffec15dd.tar.gz zabbix-e84814d3313e8d54c24106e1ac6806aeffec15dd.tar.xz zabbix-e84814d3313e8d54c24106e1ac6806aeffec15dd.zip |
- better calculation of next check timestamp for active items (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@3407 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/zabbix_server/functions.c')
-rw-r--r-- | src/zabbix_server/functions.c | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/src/zabbix_server/functions.c b/src/zabbix_server/functions.c index 9a9d7845..d5a37517 100644 --- a/src/zabbix_server/functions.c +++ b/src/zabbix_server/functions.c @@ -703,7 +703,10 @@ static int update_item(DB_ITEM *item, AGENT_RESULT *value, time_t now) DBescape_string(value_str,value_esc,MAX_STRING_LEN); /* snprintf(sql,sizeof(sql)-1,"update items set nextcheck=%d,prevvalue=lastvalue,lastvalue='%s',lastclock=%d where itemid=%d",now+item->delay,value_esc,now,item->itemid);*/ DBexecute("update items set nextcheck=%d,prevvalue=lastvalue,lastvalue='%s',lastclock=%d where itemid=" ZBX_FS_UI64, - calculate_item_nextcheck(item->itemid, item->delay, item->delay_flex, now),value_esc,(int)now,item->itemid); + calculate_item_nextcheck(item->itemid, item->type, item->delay, item->delay_flex, now), + value_esc, + (int)now, + item->itemid); item->prevvalue=item->lastvalue; item->lastvalue=value_double; @@ -717,7 +720,9 @@ static int update_item(DB_ITEM *item, AGENT_RESULT *value, time_t now) { /* snprintf(sql,sizeof(sql)-1,"update items set nextcheck=%d,lastclock=%d where itemid=%d",now+item->delay,now,item->itemid);*/ DBexecute("update items set nextcheck=%d,lastclock=%d where itemid=" ZBX_FS_UI64, - calculate_item_nextcheck(item->itemid, item->delay, item->delay_flex, now),(int)now,item->itemid); + calculate_item_nextcheck(item->itemid, item->type, item->delay, item->delay_flex, now), + (int)now, + item->itemid); } } /* Logic for delta as speed of change */ @@ -727,13 +732,20 @@ static int update_item(DB_ITEM *item, AGENT_RESULT *value, time_t now) { /* snprintf(sql,sizeof(sql)-1,"update items set nextcheck=%d,prevvalue=lastvalue,prevorgvalue=%f,lastvalue='%f',lastclock=%d where itemid=%d",now+item->delay,value_double,(value_double - item->prevorgvalue)/(now-item->lastclock),now,item->itemid);*/ DBexecute("update items set nextcheck=%d,prevvalue=lastvalue,prevorgvalue=%f,lastvalue='%f',lastclock=%d where itemid=" ZBX_FS_UI64, - calculate_item_nextcheck(item->itemid, item->delay,item->delay_flex,now),value_double,(value_double - item->prevorgvalue)/(now-item->lastclock),(int)now,item->itemid); + calculate_item_nextcheck(item->itemid, item->type, item->delay,item->delay_flex,now), + value_double, + (value_double - item->prevorgvalue)/(now-item->lastclock), + (int)now, + item->itemid); } else { /* snprintf(sql,sizeof(sql)-1,"update items set nextcheck=%d,prevorgvalue=%f,lastclock=%d where itemid=%d",now+item->delay,value_double,now,item->itemid);*/ DBexecute("update items set nextcheck=%d,prevorgvalue=%f,lastclock=%d where itemid=" ZBX_FS_UI64, - calculate_item_nextcheck(item->itemid, item->delay,item->delay_flex,now),value_double,(int)now,item->itemid); + calculate_item_nextcheck(item->itemid, item->type, item->delay,item->delay_flex,now), + value_double, + (int)now, + item->itemid); } item->prevvalue=item->lastvalue; @@ -750,12 +762,19 @@ static int update_item(DB_ITEM *item, AGENT_RESULT *value, time_t now) if((item->prevorgvalue_null == 0) && (item->prevorgvalue <= value_double) ) { DBexecute("update items set nextcheck=%d,prevvalue=lastvalue,prevorgvalue=%f,lastvalue='%f',lastclock=%d where itemid=" ZBX_FS_UI64, - calculate_item_nextcheck(item->itemid, item->delay,item->delay_flex,now),value_double,(value_double - item->prevorgvalue),(int)now,item->itemid); + calculate_item_nextcheck(item->itemid, item->type, item->delay,item->delay_flex,now), + value_double, + (value_double - item->prevorgvalue), + (int)now, + item->itemid); } else { DBexecute("update items set nextcheck=%d,prevorgvalue=%f,lastclock=%d where itemid=" ZBX_FS_UI64, - calculate_item_nextcheck(item->itemid, item->delay,item->delay_flex, now),value_double,(int)now,item->itemid); + calculate_item_nextcheck(item->itemid, item->type, item->delay,item->delay_flex, now), + value_double, + (int)now, + item->itemid); } item->prevvalue=item->lastvalue; |