Joe Tran

  • Content Count

  • Joined

  • Last visited

  • Days Won


Community Reputation

24 Excellent


About Joe Tran

  • Rank
    Thought Leader

Recent Profile Visitors

894 profile views
  1. Looking at the innards of the service-detector.jar, which is where I think the canonical LMRequest class is defined, you won't be able to do this with an internal web check (scripted or out-of-box) as documented. You would be able to do this with a scripted Datasource though--something similar to this: The libraries listed in the SO thread solution (except for junit, which isn't necessary) are available to the current GA collector. I have not attempted to use the apache httpc
  2. I had DIY'd a scripted Groovy datasource ages. Not sure if this was exactly what PortMulti- did, but the results should be similar. (host, port) = "##WILDVALUE##".split(':') try { s = new Socket(host, port.toInteger()) s.close() return 0 } catch (ConnectException ce) { println ce.toString() return 1 } catch (BindException be) { println be.toString() return 4 } catch (NoRouteToHostException re) { println re.toString() return 2 } catch (PortUnreachableException pe) { println pe.toString() return 3 } catch (Exception e) { println e.toString()
  3. Assuming you leverage and consume custom alert messaging, you can define the KB article at the datasource template level. Taking your CPU utilization example, go to your CPU datasource LogicModule, and add the URL to the custom alert messaging for the desired datapoint triggering alerts. If the KB is different for different subset of resources, then the alert messaging should be updated to reference a custom property that would be assigned to or inherited by the resource. Example ##CPU_KB_URL##, then you would assign/inherit the cpu_kb_url property to your different subsets of resources.
  4. Saw this article from Ars Technica pop up in my news feed 😶
  5. ... with exceptionStatus ORA-01013: user requested cancel of current operation That is all. 😅
  6. It looks like without instances, the Alert Threshold report does not list the datasource at all.
  7. So it looks like while the UI hides datasources without instances and the API will not list the datasource when querying for /device/groups/{groupId}/datasources, the API will still accept PUT/PATCH operations for that datasource id /device/groups/{groupId}/datasources/{datasourceId}/alertsettings Hopefully that persists when the datasource finds a blocking session!
  8. I have a version of the "Oracle_DB_BlockedSessions" datasource template deployed and set an alert threshold on a complex datapoint that accounts for WAIT_TIME and SECONDS_IN_WAIT. Here is the complex datapoint expression for those curious--- if( eq(if(un(WAIT_TIME),0,WAIT_TIME), 0), if(un(SECONDS_IN_WAIT_RAW),0,SECONDS_IN_WAIT_RAW), 0) If the complex datapoint has a value over 300 seconds, an alert triggers with all the enriched instance-level autoProps from the Active Discovery script. All other aspects of this template mirror the gold-standard version--including enabling the "Automati
  9. I don't typically use the /device/devices/{id}/properties/{name} endpoint but i would give the following a try: # Construct URL $resourcePath = "/device/devices/2332/properties/Failover.Cluster.ParentGUID" $url = $URLRoot + $resourcePath $data = ` @" { `"type`" : `"custom`" , `"name`" : `"Failover.Cluster.ParentGUID`" , `"value`" : `"$ClusterID`" } "@ $response = Send-Request ` -accesskey $accessKey `
  10. Yup, customProperties object only has directly assigned props. What you do what are the inheritedProperties for the /device/devices API endpoint-- $queryParams = '?fields=inheritedProperties,name,id&size=1000&,inheritedProperties.value:DefaultCODE'; P.S. Thanks for bringing this up. I've been trying to find where the "aws.accountid" is grouped under and lo' and behold it's an inheritedProperty!
  11. Joe Tran

    Mobile App

    I don't. I just use the site in a mobile browser set to request the desktop site. A better mobile experience would be great though.
  12. What type of report are you running? If this is a custom report using data from the REST API, the location property wouldn't be a customProperties property in this particular scenario, but an inheritedProperties property. IIRC, the Device Inventory report type in the Reports UI, should be able to give you inherited properties without issue.
  13. P.S. If I have not gone crazy in my line of thinking, please update the REST API Documentation to include descriptions/methods/models etc for /setting/alert/internalalerts resources. 😀👋
  14. I will admit that I had completely forgotten that External Alerting was a thing. When we first started with LogicMonitor (like 3+ years ago), someone at LogicMonitor had mentioned External Alerting as a potential solution for a random use-case and I had immediately disregarded out of hand--favoring a Custom HTTP Delivery integration instead. Fast forward to now and this post, and all this recent talk about self-heal and actions and an idea was sparked. Some internal partners are building automation tools to resolve issues and are pretty comfortable with some DIY. Originally, I had
  15. I like it. I made two modifications to our local copy: - disabled Active Discovery - changed the metric path from Resource=##WILDVALUE## to Since adding a property is a manual step anyway, I figured keeping this LM resource as "cloudy" as possible better suited our needs. The scripted Active Discovery never created the DSI for me and that's probably because I didn't assign a collector to the monitor the LM Cloud resource.