Hi Paessler

I have a http url which would return the below json file. Just want to setup a sensor that would check the value of name2:389/monitor if it's equal "available". I tried with HTTP XML/Rest vaule sensor but it could not pick up the node value as name2:389/monitor. The error it returning is "389/monitor' has an invalid token.", I believe this might be because of the ":" character.

Could you please advise if there is a way to work around this?

{
  "name1:389": {
    "admin": "enabled", 
    "connections": 14, 
    "ip": "1.1.1.1.1.1.1", 
    "monitor": "available"
  }, 
  "name2:389": {
    "admin": "enabled", 
    "connections": 9, 
    "ip": "1.1.1.1.1.1.1", 
    "monitor": "available"
  }, 
  "name3:389": {
    "admin": "enabled", 
    "connections": 12, 
    "ip": "1.1.1.1.1.1", 
    "monitor": "available"
  }, 
  "up": 3
} 

Thanks and regards


Article Comments

You can't do string comparisons in this sensor. Simply use the following: //*[name()='name2:389']/monitor[text()='available']

...and the following lookup:

<?xml version="1.0" encoding="UTF-8"?>
  <ValueLookup id="prtg.standardlookups.xml.monitor" desiredValue="1" undefinedState="None">
    <Lookups>
      <SingleInt state="Ok" value="1">
        Monitor available!
      </SingleInt>
      <SingleInt state="Error" value="0">
        Monitor unavailable!
      </SingleInt>
    </Lookups>
  </ValueLookup>

Mar, 2017 - Permalink

Hi Stephan,

Thank you for your help, I'm able to get the sensor to return a value. However, I'm not sure if it's working properly as it return value 0 (or "Monitor unavailable" base on the look up file) even though the value is available.

Node //*[name()='toyent01.389']/monitor[text()='available'] holds value available.

I'm guessing [text()='available'] is where it try to match the value?

So I tried changing the node to see the return int value

//*[name()='toyent01.389']/monitor[text()='notavailable']

and got the below message

Node //*[name()='toyent01.389']/monitor[text()='notavailable'] not found in xml result.

Could you please advise if I'm missing? If this is not possible to achieve with this sensor, is there any other out-of-the-box options that I can set this up? or would it be better to write a custom exe for this?


Mar, 2017 - Permalink

My bad - did you actually set the setting "Sensor Value" to
Use the number of occurrences of the selected XML node or its children/siblings? Then my attempt will work :)


Mar, 2017 - Permalink

Hi Stephan,

Sorry for the late response, it's working now after I change the "Sensor Value" as you advised.

Thanks you very much for your help


May, 2017 - Permalink

You're welcome! :)


May, 2017 - Permalink