diff options
| author | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-11-07 13:15:19 +0000 |
|---|---|---|
| committer | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-11-07 13:15:19 +0000 |
| commit | ba54b831c7a024ca5ee408bbee13d53ca035ef7d (patch) | |
| tree | d587ca6ea6595d536db54695eef3f33a6d2a8a7c /src | |
| parent | 23bdb608fe93cf4a98683dae0a09fcca30aa9d1d (diff) | |
| download | zabbix-ba54b831c7a024ca5ee408bbee13d53ca035ef7d.tar.gz zabbix-ba54b831c7a024ca5ee408bbee13d53ca035ef7d.tar.xz zabbix-ba54b831c7a024ca5ee408bbee13d53ca035ef7d.zip | |
Misc changes.
git-svn-id: svn://svn.zabbix.com/trunk@3435 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
| -rw-r--r-- | src/zabbix_server/events.c | 30 | ||||
| -rw-r--r-- | src/zabbix_server/nodewatcher/history.c | 37 | ||||
| -rw-r--r-- | src/zabbix_server/nodewatcher/nodewatcher.c | 11 | ||||
| -rw-r--r-- | src/zabbix_server/trapper/trapper.c | 2 |
4 files changed, 57 insertions, 23 deletions
diff --git a/src/zabbix_server/events.c b/src/zabbix_server/events.c index ad456ec4..84dc259d 100644 --- a/src/zabbix_server/events.c +++ b/src/zabbix_server/events.c @@ -99,6 +99,9 @@ static void add_trigger_info(DB_EVENT *event) ******************************************************************************/ int process_event(DB_EVENT *event) { + DB_RESULT result; + DB_ROW row; + zabbix_log(LOG_LEVEL_DEBUG,"In process_event(eventid:" ZBX_FS_UI64 ",triggerid:" ZBX_FS_UI64 ")", event->eventid, event->triggerid); @@ -106,17 +109,24 @@ int process_event(DB_EVENT *event) if(event->eventid == 0) { - /* TODO Not correct! */ - event->eventid = DBinsert_id( - DBexecute("insert into events(triggerid,clock,value) values(" ZBX_FS_UI64 ",%d,%d)", - event->triggerid, event->clock, event->value), - "events", "eventid"); - } - else - { - DBexecute("insert into events(eventid,triggerid,clock,value) values(" ZBX_FS_UI64 "," ZBX_FS_UI64 ",%d,%d)", - event->eventid,event->triggerid, event->clock, event->value); + result = DBselect("select event_maxid from nodes where nodeid=%d", CONFIG_NODEID); + row = DBfetch(result); + + if(!row || DBis_null(row[0])==SUCCEED) + { + event->eventid = CONFIG_NODEID*(zbx_uint64_t)__UINT64_C(100000000000000) + 1; + } + else + { + ZBX_STR2UINT64(event->eventid, row[0]); + event->eventid++; + } + DBexecute("update nodes set event_maxid=" ZBX_FS_UI64 " where nodeid=%d", + event->eventid, CONFIG_NODEID); + DBfree_result(result); } + DBexecute("insert into events(eventid,triggerid,clock,value) values(" ZBX_FS_UI64 "," ZBX_FS_UI64 ",%d,%d)", + event->eventid,event->triggerid, event->clock, event->value); /* Cancel currently active alerts */ if(event->value == TRIGGER_VALUE_FALSE || event->value == TRIGGER_VALUE_TRUE) diff --git a/src/zabbix_server/nodewatcher/history.c b/src/zabbix_server/nodewatcher/history.c index c66f2aaf..fe81104b 100644 --- a/src/zabbix_server/nodewatcher/history.c +++ b/src/zabbix_server/nodewatcher/history.c @@ -84,7 +84,7 @@ static int process_node_history_str(int nodeid, int master_nodeid) #define DATA_MAX 1024*1024 -// zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, event_lastid:" ZBX_FS_UI64 ")",nodeid, event_lastid); + zabbix_log( LOG_LEVEL_WARNING, "In process_node_history_str(nodeid:%d, master_nodeid:%d",nodeid, master_nodeid); /* Begin work */ data = malloc(DATA_MAX); @@ -95,7 +95,7 @@ static int process_node_history_str(int nodeid, int master_nodeid) zbx_snprintf(sql,sizeof(sql),"select id,itemid,clock,value from history_str_sync where nodeid=%d order by id", nodeid); - result = DBselectN(sql, 100000); + result = DBselectN(sql, 10000); while((row=DBfetch(result))) { ZBX_STR2UINT64(id,row[0]) @@ -150,14 +150,18 @@ static int process_node_history_uint(int nodeid, int master_nodeid) char sql[MAX_STRING_LEN]; int found = 0; + int start, end; + zbx_uint64_t id; zbx_uint64_t itemid; #define DATA_MAX 1024*1024 -// zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, event_lastid:" ZBX_FS_UI64 ")",nodeid, event_lastid); + zabbix_log( LOG_LEVEL_WARNING, "In process_node_history_uint(nodeid:%d, master_nodeid:%d)",nodeid, master_nodeid); /* Begin work */ + start = time(NULL); + data = malloc(DATA_MAX); memset(data,0,DATA_MAX); @@ -166,7 +170,7 @@ static int process_node_history_uint(int nodeid, int master_nodeid) zbx_snprintf(sql,sizeof(sql),"select id,itemid,clock,value from history_uint_sync where nodeid=%d order by id", nodeid); - result = DBselectN(sql, 100000); + result = DBselectN(sql, 10000); while((row=DBfetch(result))) { ZBX_STR2UINT64(id,row[0]) @@ -193,6 +197,10 @@ static int process_node_history_uint(int nodeid, int master_nodeid) DBfree_result(result); free(data); + end = time(NULL); + + zabbix_log( LOG_LEVEL_WARNING, "Spent %d seconds in process_node_history_uint",end-start); + return SUCCEED; } @@ -221,13 +229,16 @@ static int process_node_history(int nodeid, int master_nodeid) char sql[MAX_STRING_LEN]; int found = 0; + int start, end; + zbx_uint64_t id; zbx_uint64_t itemid; #define DATA_MAX 1024*1024 -// zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, event_lastid:" ZBX_FS_UI64 ")",nodeid, event_lastid); + zabbix_log( LOG_LEVEL_WARNING, "In process_node_history(nodeid:%d, master_nodeid:%d",nodeid, master_nodeid); /* Begin work */ + start = time(NULL); data = malloc(DATA_MAX); memset(data,0,DATA_MAX); @@ -237,22 +248,22 @@ static int process_node_history(int nodeid, int master_nodeid) zbx_snprintf(sql,sizeof(sql),"select id,itemid,clock,value from history_sync where nodeid=%d order by id", nodeid); - result = DBselectN(sql, 100000); + result = DBselectN(sql, 10000); while((row=DBfetch(result))) { ZBX_STR2UINT64(id,row[0]) ZBX_STR2UINT64(itemid,row[1]) -// zabbix_log( LOG_LEVEL_WARNING, "Processing itemid " ZBX_FS_UI64, itemid); + zabbix_log( LOG_LEVEL_DEBUG, "Processing itemid " ZBX_FS_UI64, itemid); found = 1; zbx_snprintf(tmp,sizeof(tmp),"%d|%s|%s|%s\n", ZBX_TABLE_HISTORY,row[1],row[2],row[3]); zbx_strlcat(data,tmp,DATA_MAX); } if(found == 1) { -// zabbix_log( LOG_LEVEL_WARNING, "Sending [%s]",data); + zabbix_log( LOG_LEVEL_DEBUG, "Sending [%s]",data); if(send_to_node(master_nodeid, nodeid, data) == SUCCEED) { -// zabbix_log( LOG_LEVEL_WARNING, "Updating nodes.history_lastid"); + zabbix_log( LOG_LEVEL_WARNING, "Updating nodes.history_lastid"); DBexecute("update nodes set history_lastid=" ZBX_FS_UI64 " where nodeid=%d", id, nodeid); DBexecute("delete from history_sync where nodeid=%d and id<=" ZBX_FS_UI64, nodeid, id); } @@ -264,6 +275,10 @@ static int process_node_history(int nodeid, int master_nodeid) DBfree_result(result); free(data); + end = time(NULL); + + zabbix_log( LOG_LEVEL_WARNING, "Spent %d seconds in process_node_history",end-start); + return SUCCEED; } @@ -285,7 +300,7 @@ static int process_node_history(int nodeid, int master_nodeid) ******************************************************************************/ static void process_node(int nodeid, int master_nodeid) { -// zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, master_nodeid:" ZBX_FS_UI64 ")",nodeid, master_nodeid); + zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, master_nodeid:" ZBX_FS_UI64 ")",nodeid, master_nodeid); process_node_history(nodeid, master_nodeid); process_node_history_uint(nodeid, master_nodeid); @@ -334,4 +349,6 @@ void main_historysender() } DBfree_result(result); + + zabbix_log( LOG_LEVEL_WARNING, "In main_historysender() END"); } diff --git a/src/zabbix_server/nodewatcher/nodewatcher.c b/src/zabbix_server/nodewatcher/nodewatcher.c index f45173c1..2ba0c2d8 100644 --- a/src/zabbix_server/nodewatcher/nodewatcher.c +++ b/src/zabbix_server/nodewatcher/nodewatcher.c @@ -276,9 +276,12 @@ static int compare_checksums() ******************************************************************************/ int main_nodewatcher_loop() { + int start, end; + // zabbix_log( LOG_LEVEL_WARNING, "In main_nodeupdater_loop()"); for(;;) { + start = time(NULL); zbx_setproctitle("connecting to the database"); zabbix_log( LOG_LEVEL_WARNING, "Starting sync with nodes"); @@ -300,8 +303,12 @@ int main_nodewatcher_loop() DBclose(); zbx_setproctitle("sender [sleeping for %d seconds]", 30); + end = time(NULL); - zabbix_log( LOG_LEVEL_WARNING, "Seleeping 30 seconds"); - sleep(30); + if(end-start<30) + { + zabbix_log( LOG_LEVEL_WARNING, "Sleeping %d seconds", 30-(end-start)); + sleep(30-(end-start)); + } } } diff --git a/src/zabbix_server/trapper/trapper.c b/src/zabbix_server/trapper/trapper.c index 25623294..08aa4f56 100644 --- a/src/zabbix_server/trapper/trapper.c +++ b/src/zabbix_server/trapper/trapper.c @@ -266,7 +266,7 @@ void process_trapper_child(int sockfd) else { bufptr += nbytes; - zabbix_log( LOG_LEVEL_WARNING, "Old protocol"); + zabbix_log( LOG_LEVEL_DEBUG, "Old protocol"); while ((nbytes = read(sockfd, bufptr, buffer + ZBX_MAX_PACKET_LEN - bufptr - 1)) != -1 && nbytes != 0) { if(read_len < buffer + ZBX_MAX_PACKET_LEN - bufptr - 1) |
