What is this?

This knowledgebase contains questions and answers about PRTG Network Monitor and network monitoring in general.

Learn more

PRTG Network Monitor

Intuitive to Use. Easy to manage.
More than 500,000 users rely on Paessler PRTG every day. Find out how you can reduce cost, increase QoS and ease planning, as well.

Free Download

Top Tags


View all Tags

Create Sensor RestAPI

Votes:

0

Hello, I'm creating a sensor using Rest Custom to capture the information through JsonPath expression. I noticed that when I create a template to filter the result of a line that contains separator "-" PRTG cannot bring the result, it seems that the character "-" breaks the index. Is there a parameter to prevent PRTG from understanding the "-" as a separator? I already tried: " ", ' ', { }, [ ] but none worked. Here are the details of the sensor I'm trying to create: Input:

{
  "http_method":"GET",
  "revision":"2c2bdb3c2febfa34863b8339b441a074",
  "results":[
    {
      "name":"port0",
      "q_origin_key":"port0",
      "vdom":"root",
      "vrf":0,
      "cli-conn-status":0,
      "fortilink":"disable",
      "switch-controller-source-ip":"outbound",
      "mode":"static",
      "client-options":[
      ],
      "distance":5,
      "priority":1,
      "dhcp-relay-interface-select-method":"auto",
      "dhcp-relay-interface":"",
      "dhcp-relay-service":"disable",
      "dhcp-relay-ip":"",
      "dhcp-relay-link-selection":"0.0.0.0",
      "dhcp-relay-request-all-server":"disable",
      "dhcp-relay-type":"regular",
      "dhcp-relay-agent-option":"enable",
      "dhcp-classless-route-addition":"enable",
      "management-ip":"0.0.0.0 0.0.0.0",
      "ip":"0.0.0.0 255.255.255.0",
      "allowaccess":"ping https ssh snmp speed-test",
      "gwdetect":"disable",
      "ping-serv-status":0,
      "detectserver":"",
      "detectprotocol":"ping",
      "ha-priority":1,
      "fail-detect":"disable",
      "fail-detect-option":"link-down",
      "fail-alert-method":"link-down",
      "fail-action-on-extender":"soft-restart",
      "fail-alert-interfaces":[
      ],
      "dhcp-client-identifier":"",
      "dhcp-renew-time":0,
      "ipunnumbered":"0.0.0.0",
      "username":"",
      "pppoe-unnumbered-negotiate":"enable",
      "password":"",
      "idle-timeout":0,
      "detected-peer-mtu":0,
      "disc-retry-timeout":1,
      "padt-retry-timeout":1,
      "service-name":"",
      "ac-name":"",
      "lcp-echo-interval":5,
      "lcp-max-echo-fails":3,
      "defaultgw":"enable",
      "dns-server-override":"enable",
      "dns-server-protocol":"cleartext",
      "auth-type":"auto",
      "pptp-client":"disable",
      "pptp-user":"",
      "pptp-password":"",
      "pptp-server-ip":"0.0.0.0",
      "pptp-auth-type":"auto",
      "pptp-timeout":0,
      "arpforward":"enable",
      "ndiscforward":"enable",
      "broadcast-forward":"disable",
      "bfd":"global",
      "bfd-desired-min-tx":250,
      "bfd-detect-mult":3,
      "bfd-required-min-rx":250,
      "l2forward":"disable",
      "icmp-send-redirect":"enable",
      "icmp-accept-redirect":"enable",
      "reachable-time":30000,
      "vlanforward":"disable",
      "stpforward":"disable",
      "stpforward-mode":"rpl-all-ext-id",
      "ips-sniffer-mode":"disable",
      "ident-accept":"disable",
      "ipmac":"disable",
      "subst":"disable",
      "macaddr":"",
      "substitute-dst-mac":"00:00:00:00:00:00",
      "speed":"auto",
      "status":"up",
      "netbios-forward":"disable",
      "wins-ip":"0.0.0.0",
      "type":"physical",
      "dedicated-to":"none",
      "trust-ip-1":"0.0.0.0 0.0.0.0",
      "trust-ip-2":"0.0.0.0 0.0.0.0",
      "trust-ip-3":"0.0.0.0 0.0.0.0",
      "trust-ip6-1":"::\/0",
      "trust-ip6-2":"::\/0",
      "trust-ip6-3":"::\/0",
      "mtu-override":"disable",
      "mtu":1500,
      "ring-rx":0,
      "ring-tx":0,
      "wccp":"disable",
      "netflow-sampler":"disable",
      "sflow-sampler":"disable",
      "drop-overlapped-fragment":"disable",
      "drop-fragment":"disable",
      "src-check":"enable",
      "sample-rate":2000,
      "polling-interval":20,
      "sample-direction":"both",
      "explicit-web-proxy":"disable",
      "explicit-ftp-proxy":"disable",
      "proxy-captive-portal":"disable",
      "tcp-mss":0,
      "inbandwidth":0,
      "outbandwidth":0,
      "egress-shaping-profile":"",
      "ingress-shaping-profile":"",
      "disconnect-threshold":0,
      "spillover-threshold":0,
      "ingress-spillover-threshold":0,
      "weight":0,
      "interface":"",
      "external":"disable",
      "vlan-protocol":"8021q",
      "vlanid":0,
      "forward-domain":0,
      "remote-ip":"0.0.0.0 0.0.0.0",
      "member":[
      ],
      "lacp-mode":"active",
      "lacp-ha-slave":"enable",
      "system-id-type":"auto",
      "system-id":"00:00:00:00:00:00",
      "lacp-speed":"slow",
      "min-links":1,
      "min-links-down":"operational",
      "algorithm":"L4",
      "link-up-delay":50,
      "priority-override":"enable",
      "devindex":5,
      "vindex":0,
      "description":"",
      "alias":"WAN",
      "security-mode":"none",
      "captive-portal":0,
      "security-mac-auth-bypass":"disable",
      "security-external-web":"",
      "security-external-logout":"",
      "replacemsg-override-group":"",
      "security-redirect-url":"",
      "auth-cert":"",
      "auth-portal-addr":"",
      "security-exempt-list":"",
      "security-groups":[
      ],
      "ike-saml-server":"",
      "device-identification":"disable",
      "device-user-identification":"enable",
      "lldp-reception":"enable",
      "lldp-transmission":"vdom",
      "lldp-network-policy":"",
      "estimated-upstream-bandwidth":7792,
      "estimated-downstream-bandwidth":15522,
      "measured-upstream-bandwidth":7792,
      "measured-downstream-bandwidth":15522,
      "bandwidth-measure-time":1656709947,
      "monitor-bandwidth":"disable",
      "vrrp-virtual-mac":"disable",
      "vrrp":[
      ],
      "role":"wan",
      "snmp-index":4,
      "secondary-IP":"disable",
      "secondaryip":[
      ],
      "preserve-session-route":"disable",
      "auto-auth-extension-device":"disable",
      "ap-discover":"enable",
      "fortilink-neighbor-detect":"fortilink",
      "ip-managed-by-fortiipam":"disable",
      "managed-subnetwork-size":"256",
      "fortilink-split-interface":"enable",
      "internal":0,
      "fortilink-backup-link":0,
      "switch-controller-access-vlan":"disable",
      "switch-controller-traffic-policy":"",
      "switch-controller-rspan-mode":"disable",
      "switch-controller-mgmt-vlan":4094,
      "switch-controller-igmp-snooping":"disable",
      "switch-controller-igmp-snooping-proxy":"disable",
      "switch-controller-igmp-snooping-fast-leave":"disable",
      "switch-controller-dhcp-snooping":"disable",
      "switch-controller-dhcp-snooping-verify-mac":"disable",
      "switch-controller-dhcp-snooping-option82":"disable",
      "dhcp-snooping-server-list":[
      ],
      "switch-controller-arp-inspection":"disable",
      "switch-controller-learning-limit":0,
      "switch-controller-nac":"",
      "switch-controller-dynamic":"",
      "switch-controller-feature":"none",
      "switch-controller-iot-scanning":"disable",
      "swc-vlan":0,
      "swc-first-create":0,
      "color":0,
      "tagging":[
      ],
      "eap-supplicant":"disable",
      "eap-method":"",
      "eap-identity":"",
      "eap-password":"",
      "eap-ca-cert":"",
      "eap-user-cert":"",
      "ipv6":{
        "ip6-mode":"static",
        "nd-mode":"basic",
        "nd-cert":"",
        "nd-security-level":0,
        "nd-timestamp-delta":300,
        "nd-timestamp-fuzz":1,
        "nd-cga-modifier":"0065636473612D776974682D73686132",
        "ip6-dns-server-override":"enable",
        "ip6-address":"::\/0",
        "ip6-extra-addr":[
        ],
        "ip6-allowaccess":"",
        "ip6-send-adv":"disable",
        "icmp6-send-redirect":"enable",
        "ip6-manage-flag":"disable",
        "ip6-other-flag":"disable",
        "ip6-max-interval":600,
        "ip6-min-interval":198,
        "ip6-link-mtu":0,
        "ra-send-mtu":"enable",
        "ip6-reachable-time":0,
        "ip6-retrans-time":0,
        "ip6-default-life":1800,
        "ip6-hop-limit":0,
        "autoconf":"disable",
        "unique-autoconf-addr":"disable",
        "interface-identifier":"::",
        "ip6-prefix-mode":"dhcp6",
        "ip6-upstream-interface":"",
        "ip6-delegated-prefix-iaid":0,
        "ip6-subnet":"::\/0",
        "ip6-prefix-list":[
        ],
        "ip6-delegated-prefix-list":[
        ],
        "dhcp6-relay-service":"disable",
        "dhcp6-relay-type":"regular",
        "dhcp6-relay-ip":"",
        "dhcp6-client-options":"",
        "dhcp6-prefix-delegation":"disable",
        "dhcp6-information-request":"disable",
        "dhcp6-iapd-list":[
        ],
        "cli-conn6-status":0,
        "vrrp-virtual-mac6":"disable",
        "vrip6_link_local":"::",
        "vrrp6":[
        ]
      }
    }
  ],
  "vdom":"XXX",
  "path":"XXXX",
  "name":"interface0",
  "mkey":"port0",
  "status":"success",
  "http_status":200,
  "serial":"0000000000000",
  "version":"v0.0.0",
  "build":0000

} template in PRTG:

{
   "prtg":{
      "result":[
         {
            "channel": "1",
	    "value":$.results[0].estimated-upstream-bandwidth
         }    	 
      ]
 
  }
}

Result Test CMD in PRTG Server:

rest.exe https://0.0.0.0:0000/api/v2/cmdb/system/interface/port0?access_token=XXXXXXXXX C:\Users\user\Desktop\speedtest.template -tlsignore -debug
could no evaluate channel value of 1: unknown key estimated

Note: When I use the same expression on https://jsonpath.com/ the result is shown normally.

Example of when the line observed does not have the "-" in the same Input: Template in PRTG:

{
   "prtg":{
      "result":[
         {
            "channel": "1",
	    "value":$.results[0].mtu
         }    	 
      ]
 
  }
}

Result Test CMD in PRTG Server:

rest.exe https://0.0.0.0:0000/api/v2/cmdb/system/interface/port0?access_token=XXXXXXXXXX C:\Users\user\Desktop\speedtest.template -tlsignore -debug
{
  "prtg": {
    "result": [
      {
        "channelid": 0,
        "Value": 18,
        "Unit": "TimeResponse",
        "ShowChart": 0,
        "ShowTable": 0
      },
      {
        "channel": "1",
        "Value": 1500
      }
    ]
  }
}

prtg restcustomsensor restsensor

Created on Jul 4, 2022 1:57:28 PM

Last change on Jul 4, 2022 2:38:03 PM by  Felix Wiesneth [Paessler Support]



1 Reply

Votes:

0

Hello,

For elements containing a hyphen you need to escape it using square brackets e.g. [hyphened-value] as mentioned in the manual in the section JSON Path.
Your sample: "value":$.results[0].estimated-upstream-bandwidth Modified to use square brackets: "value":$[results[0]]["estimated-upstream-bandwidth"]


Kind regards,
Johannes Beyerlein, Technical Support Team

Created on Jul 18, 2022 7:18:40 AM by  Johannes Beyerlein [Paessler Support]




Disclaimer: The information in the Paessler Knowledge Base comes without warranty of any kind. Use at your own risk. Before applying any instructions please exercise proper system administrator housekeeping. You must make sure that a proper backup of all your data is available.