I am checking JSON, I have a set values get returned:

{
    "status": {
        "code": 200,
        "text": "OK"
    },
    "response": {
        "authenticated": false,
        "results": 16
    },
    "results": {
        "accounts": "OK",
        "audioprompts": "OK",
        "authenticate": "OK",
        "calls": "OK",
        "conferences": "OK",
        "connectors": "OK",
        "contacts": "OK",
        "countries": "OK",
        "diverts": "OK",
        "documentation": "OK",
        "numbers": "OK",
        "queues": "OK",
        "sip": "OK",
        "sms": "OK",
        "status": "OK",
        "voicemail": "OK"
    }
}

I want to glean values or even just check that it is equal to above.

I am using an "HTTP XML/REST Value" sensor.

I guess the magic, would occur in XML Node (and optional property).


Article Comments

Hi,

Using the "HTTP XML/REST Value" sensor you can only check on numeric values in your JSON result.
So checking if code=200 or results=16 is no problem.

Checking if accounts=OK will unfortunately not work.


Jan, 2016 - Permalink

Problem

Fetching a webpage by http-GET. Result is JSON like this:

{
  "cows": "ok",
  "hens": "ok",
  "lamas": "fail"
}

There are no number-values given by the webpage request, only „ok“ or something different (like lamas in this example).

How to solve the problem with PRTG

  • Take the PRTG-Sensor "HTTP Advanced"
  • Sensorname: livestock-cows
  • URL: http://your-rest-server.com/livestock-example.json
  • Advanced sensor data | Require Keyword: Set sensor to down status if keyword is missing
  • Advanced sensor data | Response must include: "cows":\s"ok"
  • Advanced sensor data | Check method: Regular expression

Problem with this solution

You cannot check more complicated json where a string "status": "ok" omits more than one time:

{
  "cows": {
    "number": 10,
    "status": "ok"
  },
  "hens": {
    "number": 400,
    "status": "ok"
  }
}

Hints for research

I found hints to solve the problem here:


Oct, 2019 - Permalink