diff options
author | sasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-01-07 09:11:53 +0000 |
---|---|---|
committer | sasha <sasha@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2008-01-07 09:11:53 +0000 |
commit | fdd60d239ebf94a0cb7f42ee7ca90273c0af108f (patch) | |
tree | 9ee47f59460b4766a325cca4dfdd6870a9c2b4db | |
parent | 876098b1b8c3610acc0f7309c107b2eca344c185 (diff) | |
download | zabbix-fdd60d239ebf94a0cb7f42ee7ca90273c0af108f.tar.gz zabbix-fdd60d239ebf94a0cb7f42ee7ca90273c0af108f.tar.xz zabbix-fdd60d239ebf94a0cb7f42ee7ca90273c0af108f.zip |
- [ZBX-243] speed improvement for windows agent for eventlog[] processing (sasha)
[svn merge svn://svn.zabbix.com/branches/1.4.j -r5217:5218]
git-svn-id: svn://svn.zabbix.com/trunk@5219 97f52cf1-0a1b-0410-bd0e-c28be96e8082
-rw-r--r-- | build/win32/project/zabbix_agentd.vcproj | 6 | ||||
-rw-r--r-- | src/zabbix_agent/active.c | 85 | ||||
-rwxr-xr-x | src/zabbix_agent/eventlog.c | 10 |
3 files changed, 49 insertions, 52 deletions
diff --git a/build/win32/project/zabbix_agentd.vcproj b/build/win32/project/zabbix_agentd.vcproj index f710c1d8..e2d5f120 100644 --- a/build/win32/project/zabbix_agentd.vcproj +++ b/build/win32/project/zabbix_agentd.vcproj @@ -610,7 +610,7 @@ Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="./,../include/,../../../include/,../../../src/zabbix_agent"
- PreprocessorDefinitions="_DEBUG;DEBUG;WIN32;_WINDOWS;HAVE_LDAP;HAVE_ASSERT_H;_CONSOLE;ZABBIX_SERVICE;WITH_COMMON_METRICS;WITH_SPECIFIC_METRICS;WITH_SIMPLE_METRICS"
+ PreprocessorDefinitions="_DEBUG;DEBUG;WIN32;_WINDOWS;HAVE_LDAP;HAVE_ASSERT_H;_CONSOLE;ZABBIX_SERVICE;WITH_COMMON_METRICS;WITH_SPECIFIC_METRICS;WITH_SIMPLE_METRICS;HAVE_IPV6"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
@@ -637,11 +637,11 @@ <Tool
Name="VCLinkerTool"
AdditionalDependencies="ws2_32.lib pdh.lib psapi.lib odbc32.lib odbccp32.lib Wldap32.lib"
- OutputFile=".\Debug/zabbix_agentd.exe"
+ OutputFile="../../../bin/win32/zabbix_agentd.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
- ProgramDatabaseFile=".\Debug/zabbix_agentd.pdb"
+ ProgramDatabaseFile="../../../bin/win32/zabbix_agentd.pdb"
SubSystem="1"
TargetMachine="1"
/>
diff --git a/src/zabbix_agent/active.c b/src/zabbix_agent/active.c index 59f737c1..eb669d55 100644 --- a/src/zabbix_agent/active.c +++ b/src/zabbix_agent/active.c @@ -276,8 +276,8 @@ static int get_active_checks( parse_list_of_checks(buf); } } + zbx_tcp_close(&s); } - zbx_tcp_close(&s); if( FAIL == ret ) { @@ -351,34 +351,30 @@ static int send_value( { zabbix_log( LOG_LEVEL_DEBUG, "NOT OK [%s:%s] [%s]", host, key, buf); } - } - } - } - zbx_tcp_close(&s); + } else + zabbix_log(LOG_LEVEL_DEBUG, "Send value error: [recv] %s", zbx_tcp_strerror()); + } else + zabbix_log(LOG_LEVEL_DEBUG, "Send value error: [send] %s", zbx_tcp_strerror()); + zbx_tcp_close(&s); + } else + zabbix_log(LOG_LEVEL_DEBUG, "Send value error: [connect] %s", zbx_tcp_strerror()); - if( FAIL == ret ) - { - zabbix_log(LOG_LEVEL_DEBUG, "Send value error: %s", zbx_tcp_strerror()); - } return ret; } -static int process_active_checks(char *server, unsigned short port) +static void process_active_checks(char *server, unsigned short port) { register int i, s_count, p_count; - - char **pvalue; - - int now, send_err = SUCCEED, ret = SUCCEED; - + char **pvalue; + int now, send_err = SUCCEED, ret; unsigned long timestamp; char *source = NULL; char *value = NULL; unsigned short severity; - - char params[MAX_STRING_LEN]; - char filename[MAX_STRING_LEN]; - char pattern[MAX_STRING_LEN]; + long lastlogsize; + char params[MAX_STRING_LEN]; + char filename[MAX_STRING_LEN]; + char pattern[MAX_STRING_LEN]; AGENT_RESULT result; @@ -411,22 +407,25 @@ static int process_active_checks(char *server, unsigned short port) s_count = 0; p_count = 0; - while (SUCCEED == (ret = process_log(filename, &active_metrics[i].lastlogsize, &value))) { + lastlogsize = active_metrics[i].lastlogsize; + while (SUCCEED == send_err && SUCCEED == (ret = process_log(filename, &lastlogsize, &value))) { if (!value) /* EOF */ break; if ('\0' == *pattern || NULL != zbx_regexp_match(value, pattern, NULL)) { - send_err = send_value( + if (SUCCEED == (send_err = send_value( server, port, CONFIG_HOSTNAME, active_metrics[i].key, value, - &active_metrics[i].lastlogsize, + &lastlogsize, NULL, NULL, - NULL - ); + NULL))) + { + active_metrics[i].lastlogsize = lastlogsize; + } s_count++; } @@ -480,22 +479,27 @@ static int process_active_checks(char *server, unsigned short port) s_count = 0; p_count = 0; - while (SUCCEED == (ret = process_eventlog(filename,&active_metrics[i].lastlogsize, ×tamp, &source, &severity, &value))) { + lastlogsize = active_metrics[i].lastlogsize; + while (SUCCEED == send_err && SUCCEED == (ret = process_eventlog(filename, &lastlogsize, + ×tamp, &source, &severity, &value))) + { if (!value) /* EOF */ break; if (!pattern || NULL != zbx_regexp_match(value, pattern, NULL)) { - send_err = send_value( + if (SUCCEED == (send_err = send_value( server, port, CONFIG_HOSTNAME, active_metrics[i].key, value, - &active_metrics[i].lastlogsize, + &lastlogsize, ×tamp, source, - &severity - ); + &severity))) + { + active_metrics[i].lastlogsize = lastlogsize; + } s_count++; } @@ -566,7 +570,6 @@ static int process_active_checks(char *server, unsigned short port) } active_metrics[i].nextcheck = (int)time(NULL)+active_metrics[i].refresh; } - return ret; } static void refresh_metrics(char *server, unsigned short port) @@ -622,26 +625,17 @@ ZBX_THREAD_ENTRY(active_checks_thread, args) { zbx_setproctitle("processing active checks"); - if(process_active_checks(activechk_args.host, activechk_args.port) == FAIL) - { - zbx_sleep(60); - continue; - } + process_active_checks(activechk_args.host, activechk_args.port); nextcheck = get_min_nextcheck(); - if(FAIL == nextcheck) - { + if (FAIL == nextcheck) sleeptime = 60; - } - else - { + else { sleeptime = nextcheck - (int)time(NULL); - sleeptime = MAX(sleeptime, 0); } - if(sleeptime > 0) - { + if (sleeptime > 0) { sleeptime = MIN(sleeptime, 60); zabbix_log(LOG_LEVEL_DEBUG, "Sleeping for %d seconds", sleeptime ); @@ -649,11 +643,8 @@ ZBX_THREAD_ENTRY(active_checks_thread, args) zbx_setproctitle("poller [sleeping for %d seconds]", sleeptime); zbx_sleep( sleeptime ); - } - else - { + } else zabbix_log(LOG_LEVEL_DEBUG, "No sleeping" ); - } if(time(NULL) >= nextrefresh) { diff --git a/src/zabbix_agent/eventlog.c b/src/zabbix_agent/eventlog.c index 480b5d92..6a620145 100755 --- a/src/zabbix_agent/eventlog.c +++ b/src/zabbix_agent/eventlog.c @@ -43,6 +43,9 @@ static int zbx_open_eventlog( assert(pNumRecords); assert(pLatestRecord); + zabbix_log(LOG_LEVEL_DEBUG, "In zbx_open_eventlog() [source:%s]", + source); + *eventlog_handle = 0; *pNumRecords = 0; @@ -63,7 +66,6 @@ static int zbx_open_eventlog( RegCloseKey(hk); - if ( !(*eventlog_handle = OpenEventLog(NULL, source))) /* open log file */ { @@ -115,6 +117,10 @@ static long zbx_get_eventlog_message( assert(out_severity); assert(out_timestamp); + zabbix_log(LOG_LEVEL_DEBUG, "In zbx_get_eventlog_message() [source:%s] [which:%ld]", + source, + which); + *out_source = NULL; *out_message = NULL; *out_severity = 0; @@ -238,8 +244,8 @@ static long zbx_get_eventlog_message( *out_message = zbx_strdcatf(*out_message, ",%s", aInsertStrs[i]); } } - return 0; + return 0; } #endif /* _WINDOWS */ |