monit-general
[Top][All Lists]
Advanced

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

Re: Syntax for else if


From: Martin Pala
Subject: Re: Syntax for else if
Date: Thu, 16 Jun 2016 18:17:40 +0200

The "if x restarts within y cycles then ..." statement doesn't support the "else" part: https://mmonit.com/monit/documentation/monit.html#SERVICE-RESTART-LIMIT

Best regards,
Martin


On 16 Jun 2016, at 16:59, Mehul Ved <address@hidden> wrote:

Here's what I have configured:


  if 2 restarts within 10 cycles then exec "/usr/local/bin/pagerduty-trigger frontendlogger"
  else if succeeded then exec "/usr/local/bin/pagerduty-trigger frontendlogger"

but when I do monit validate it throws following error:

  /etc/monit/conf.d/frontendLogger.conf:19: syntax error 'else'


The else in the above configuration is the 19th line.

Here's the whole file, in case it helps

----- START -----
check process frontendLogger matching frontendLogger
  start program = "/bin/systemctl start frontendLogger"
  stop program = "/bin/systemctl stop frontendLogger"
  restart program = "/bin/systemctl restart frontendLogger"
  group nodejs
  if failed host 127.0.0.1 port 10500 protocol http
    request /ping
    content = "PONG"
    with timeout 2 seconds
    for 2 times in 4 cycles
    then restart
  if failed host vr.com port 443 type TCPSSL protocol http
    request /logger/ping
    content = "PONG"
    with timeout 2 seconds
    for 2 times within 4 cycles
    then restart
  if 2 restarts within 10 cycles then exec "/usr/local/bin/pagerduty-trigger frontendlogger"
  else if succeeded then exec "/usr/local/bin/pagerduty-trigger frontendlogger"
  if does not exist for 3 times in 10 cycles then exec "/usr/local/bin/pagerduty-trigger frontendlogger"
  else if succeeded then exec "/usr/local/bin/pagerduty-trigger frontendlogger"
  if changed pid for 3 times in 10 cycles then exec "/usr/local/bin/pagerduty-trigger frontendlogger"
  else if succeeded then exec "/usr/local/bin/pagerduty-trigger frontendlogger"
  if memory > 70 MB for 3 cycles then exec "/usr/local/bin/pagerduty-trigger frontendlogger"
  else succeeded then exec "/usr/local/bin/pagerduty-trigger frontendlogger"
  if cpu > 1% for 3 cycles then exec "/usr/local/bin/pagerduty-trigger frontendlogger"
  else if succeeded then exec "/usr/local/bin/pagerduty-trigger frontendlogger"
----- END -----


From: monit-general <address@hidden> on behalf of Rui Lapa <address@hidden>
Sent: Thursday, June 16, 2016 4:49 PM
To: This is the general mailing list for monit
Subject: Re: Syntax for else if
 
ELSE IF SUCCEEDED THEN
not
ELSE IF <test> THEN

On Thu, Jun 16, 2016 at 11:17 AM, Mehul Ved <address@hidden> wrote:
Hello,
  I am configuring pagerduty integration with monit and have run into a roadblock while setting it up. As per the pagerduty documentation,
- to trigger a new incident, we need to add

if does not exist for 3 cycles
        then exec "/etc/monit/pagerduty-trigger crond"
which works fine.


- to automatically mark the issue as resolved, we need to add

    else if passed for 3 cycles
        then exec "/etc/monit/pagerduty-resolve crond"
but this causes syntax error.


So, I looked up the monit documentation at https://mmonit.com/monit/documentation/monit.html and it shows the following syntax:

IF <test> THEN <action> [ELSE IF SUCCEEDED THEN <action>]
and this causes validation error as well.

I went through the changelog as well as the issue list on bitbucket but failed to find any information on the same. Has anything changed? Did I miss something here?
Version 5.18. NAME; SYNOPSIS; DESCRIPTION; WHAT TO MONITOR? GENERAL OPERATION. Options; Arguments; THE MONIT CONTROL FILE. Service checks. Process; File; Fifo; Filesystem


--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general

--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general


reply via email to

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