monit-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [monit-dev] [PATCH] Pass correct MONIT_DESCRIPTION env variable for


From: Martin Pala
Subject: Re: [monit-dev] [PATCH] Pass correct MONIT_DESCRIPTION env variable for external program
Date: Mon, 26 Jul 2010 21:12:26 +0200

Hi Marco,

the bug is fixed in svn ... the fix was similar to yours but is slightly 
different - i have tested it and seems to work fine. Can you please verify 
whether current svn codebase works for you too? (revision 212 or newer)

Thanks,
Martin

On Jul 24, 2010, at 1:19 AM, Jan-Henrik Haukeland wrote:

> Hi Marco
> 
> Thank you very much for the patch. That looks like a minor bug yes. Your 
> patch looks fine, though we'll discuss if there are other ways to resolve the 
> problem or if we will apply the patch.
> 
> Thanks again.
> 
> Jan-Henrik
> 
> 
> On Jul 23, 2010, at 1:46 PM, Marco Roeland wrote:
> 
>> Hello,
>> 
>> I use a "check host" statement in which multiple ports are monitored. The
>> alerts are passed on to an external script which uses the environment
>> variables that monit sets. In some cases where multiple "failed" and
>> "succeeded" events are raised, the value for MONIT_DESCRIPTION is
>> wrong, namely that of a different event. The existing code always seems
>> to use Event_get_message() for the first entry in the eventlist, even if
>> the event itself is not the first on that list.
>> 
>> The attached patch fixes this for me, although it is quiet invasive as
>> it modifies the "spawn" prototype. Perhaps someone sees a more elegant
>> solution?
>> 
>> The patch is against SVN revision 205 on "trunk".
>> 
>> Here is an example snippet for monitrc to illustrate the situation:
>> 
>> check host appserver with address 192.168.1.1
>>      start program = "/home/marco/bin/appserver --workdir 
>> /home/marco/testsuite/appserver --daemon"
>>      stop program = "/home/marco/bin/appserver --workdir 
>> /home/marco/testsuite/appserver --quit"
>>   if failed port 9080 protocol http with timeout 5 seconds
>>      then exec "/home/marco/src/test-monit/bin/my_alert 'Failed for port 
>> 9080'"
>>      else if succeeded then exec "/home/marco/src/test-monit/bin/my_alert 
>> 'Succeeded for port 9080'"
>>   if failed port 9081 protocol http with timeout 5 seconds
>>      then exec "/home/marco/src/test-monit/bin/my_alert 'Failed for port 
>> 9081'"
>>      else if succeeded then exec "/home/marco/src/test-monit/bin/my_alert 
>> 'Succeeded for port 9081'"
>>   if failed port 9082 protocol http with timeout 5 seconds
>>      then exec "/home/marco/src/test-monit/bin/my_alert 'Failed for port 
>> 9082'"
>>      else if succeeded then exec "/home/marco/src/test-monit/bin/my_alert 
>> 'Succeeded for port 9082'"
>> 
>> If say ports 9080 and 9081 fail for some time, and then 9080 is again
>> available you might get the following entries in the call of my_alert for 
>> port 9081:
>> 
>> MONIT_DESCRIPTION=connection succeeded to INET[192.168.1.1:9080] via TCP
>> MONIT_EVENT=Connection failed
>> argv[1]='Failed for port 9081'
>> 
>> Note that this "bug" (if that's what it is) only manifests itself in the
>> setting of MONIT_DESCRIPTION when an external program is called, and can
>> be worked around by using multiple "check host" statements.
>> -- 
>> Marco Roeland
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> monit-dev mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/monit-dev




reply via email to

[Prev in Thread] Current Thread [Next in Thread]