LogicMonitor acquires Catchpoint, adding Internet and digital experience insight to LM Envision.

Read more

You can use LogicMonitor’s REST API to programmatically update instance level thresholds.

Note: As with all of our API calls, authentication is required.

/device/devices/{deviceId}/devicedatasources/{deviceDatasourceId}/instances/{instanceId}/alertsettings/{id}

Where:

  • {deviceId} is the id of the device you’d like to see thresholds for.  You can get group Ids from a GET request to the devices resource.
  • {deviceDatasourceId} is the id of the device datasource you’d like to see thresholds for.  You can get this Id by making a GET request to the device datasources resource
  • {instanceId} is the id of the instance you’d like to see thresholds for.  You can get this id by making a GET request to the instances resource
  • {id} is the id of the alert setting you’d like to update, from a Get instance-level thresholds request.

Request Parameters: You can include the following parameters in your PUT request:

Property

Required?

Description

alertExpr No – defaults to no thresholds The thresholds that should be associated with the datapoint. Note that you need to have a space between the operator and each threshold (e.g. > 1 2 3)
disableAlerting No – defaults to false Whether or not alerting will be disabled for the datapoint

Example

The following Python script updates the threshold for the recvd packets datapoint for device datasource 3320 (which is Ping in api.logicmonitor.com):

#!/bin/env python import requests import json import hashlib import base64 import time import hmac #Account Info AccessId ='48v2wRzfK94y53sq5EuF' AccessKey ='H_D9i(f5~B^U36^K6i42=^nS~e75gy382Bf6{)P+' Company = 'api' #Request Info httpVerb ='PUT' resourcePath = '/device/devices/56/devicedatasources/3320/instances/1469/alertsettings/13363' queryParams ='' data = '{"alertExpr":"< 10"}' #Construct URL url = 'https://'+ Company +'.logicmonitor.com/santaba/rest' + resourcePath +queryParams #Get current time in milliseconds epoch = str(int(time.time() * 1000)) #Concatenate Request details requestVars = httpVerb + epoch + data + resourcePath #Construct signature hmac1 = hmac.new(AccessKey.encode(),msg=requestVars.encode(),digestmod=hashlib.sha256).hexdigest() signature = base64.b64encode(hmac1.encode()) #Construct headers auth = 'LMv1 ' + AccessId + ':' + signature.decode() + ':' + epoch headers = {'Content-Type':'application/json','Authorization':auth} #Make request response = requests.put(url, data=data, headers=headers) #Print status and body of response print('Response Status:',response.status_code) print('Response Body:',response.content)
Python 3

14-day access to the full LogicMonitor platform