Joe Tran

  • Content count

  • Joined

  • Last visited

  • Days Won


Community Reputation

14 Good

About Joe Tran

  • Rank
    Community All Star
  1. Collector Services PropertySource

    This will certainly help with ensuring our Collectors are adhering to our internal standards, but it looks like the PropertySource is "undergoing security review".
  2. It looks like if a collector goes down, the internal website check won't trigger the alert for website-overall, if we configure alert trigger to "at All test locations" and have more than one collector assigned to monitor the app. Strangely, I can see in the raw data and graphs that the website-Overall does switch value to 2 (i.e. not OK). We are an AWS shop and deploy collectors in each client's VPC AND from a collector that has routing to the client VPC (e.g. from the client's on-prem network). We were conducting DR testing where the AWS based collector was "killed" along with the rest of the VPC, but we never saw an alert trigger for website-Overall.
  3. PowerShell -- Instance Property Support

    Sorry for being unclear. I was attempting to consume instance level properties in a PowerShell collection script. The PowerShell Collection script tried assigning two ILPs to a variable-- one was a JSON formatted string ( and another was a plain ol' string (auto.logname). Like so: $events = '##AUTO.EVENTS##' $logname = "##AUTO.LOGNAME##" It took a little testing and debugging to figure out that my attempts to iterate through the JSON object were failing because the substitution engine were making these empty strings .
  4. It had been ages since I had to write a datasource in PowerShell so I haven't stayed up-to-date on the latest bells and whistles available. But I was very surprised to see that instance properties are still not supported. With the substitution engine and enhancements made on the Groovy-side, I would have thought this trivial to implement. Is supporting instance properties on the horizon for PowerShell scripting for Datasources?
  5. Windows Basics PropertySource

    Thanks, @Andrey Kitsen!
  6. Windows Basics PropertySource

    Is there a newer version of what @David Bond (LM) posted? The one listed above is "currently undergoing security review".
  7. First, huge--- HUGE--- thank you for publishing the REST API v2. I did notice that some GETs for some resources don't support filter querying--specifically historysdts. We want to filter based off of startEpoch and endEpoch. I would also love to see historysdts officially support for websites and website groups
  8. Additional Checkpoint locations

    @Sarah Terry Fortunately, SF checkpoint is fine for our use cases but we do have to reconsider how our Website checks are configured. For some of our apps we will alert if >= 50% of checkpoints are in error and for our US-based client base, we only use the US-based checkpoints. We will have to revisit checkpoint assignments and alert triggers for our Website checks now. We do have hardware and therefore Collectors across the country. Is it possible to have a mix of the public and internal checkpoints assigned to the same Website check in the future? Obviously, certain features won't be available (i.e. scripted Request and Response), but having that flexibility would be awesome.
  9. Additional Checkpoint locations

    Adding LAC-based checkpoints to the chorus as well as UK and Europe based checks.
  10. LogicMonitor Portal Metrics

    We recently received and deployed a datasource we got from @Jake Cohen that also displays the number of Cloud devices monitored by a Collector, which is important for my leadership to understand our account utilization/commit metrics. I would highly encourage "LogicMonitor Portal Metrics DataSource from the LogicMonitor Repository using locator code J7RGZY" also incorporate this datapoint.
  11. Modify Alert trigger Interval on the Instance level

    As a longtime SolarWinds user, they have NOT always had this capability innately. But they have always had a workaround similar to what is available to LogicMonitor--proliferate the number of logical objects you would have to maintain that controls alert trigger delays. In SolarWinds, this would be Alert Definitions. Not ideal. Hypothetically you could have used a component-level configuration field (notes or description) and used that in a complex SQL/SWQL-based alert definition to achieve this. Also not ideal. In SolarWinds SAM, they have added (in the past couple of years) the ability to define custom alert trigger delays on a per component basis, natively.
  12. Looks like I am missing the "ListTagsForResource", but that action is also missing from the IAM Policy Visual Editor . I think TPTB that control IAM for my organization may have excised anything that didn't pop up as valid via the visual editor. Thanks, @Sarah Terry. I'll have the aforementioned TPTB re-do the policy.
  13. Dynamic geo location of object in google maps widget

    I chain two propertysources together--one to set an autoProp, and another to write that autoProp to location via REST API. The location property isn't prefaced by system, so it can't be set in just the one propertySource--i don't think. In the example below, the autoProp is called "auto.loc". import org.apache.http.HttpEntity import org.apache.http.client.methods.CloseableHttpResponse import org.apache.http.client.methods.HttpPatch import org.apache.http.impl.client.CloseableHttpClient import org.apache.http.impl.client.HttpClients import org.apache.http.util.EntityUtils import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Hex; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import groovy.json.JsonSlurper import groovy.json.JsonOutput import org.xbill.DNS.* accessId = hostProps.get('') accessKey = hostProps.get('lm.api.key') company = 'mycompany' resourcePath = '/device/devices/' + hostProps.get('system.deviceId') url = 'https://' + company + '' + resourcePath + "?patchFields=customProperties&opType=replace" location = hostProps.get('auto.loc') customProperties = [name: 'location', value: location] data = [customProperties: [customProperties]] jsonData = JsonOutput.toJson(data) StringEntity payloadEntity = new StringEntity(jsonData) epoch = System.currentTimeMillis() requestVars = "PATCH" + epoch + jsonData + resourcePath // construct signature hmac = Mac.getInstance("HmacSHA256"); secret = new SecretKeySpec(accessKey.getBytes(), "HmacSHA256") hmac.init(secret) hmac_signed = Hex.encodeHexString(hmac.doFinal(requestVars.getBytes())) signature = hmac_signed.bytes.encodeBase64() CloseableHttpClient httpclient = HttpClients.createDefault(); http_request = new HttpPatch(url); http_request.addHeader("Authorization" , "LMv1 " + accessId + ":" + signature + ":" + epoch); http_request.setHeader("Accept", "application/json"); http_request.setHeader("Content-type", "application/json"); http_request.setEntity(payloadEntity); response = httpclient.execute(http_request); responseBody = EntityUtils.toString(response.getEntity()); code = response.getStatusLine().getStatusCode(); return(0)
  14. Hi, @Sarah Terry. It is not. It is, of course, picking up the tags that get passed down to the EC2 instances the Elastic Beanstalk spins up, but those tags do not appear on the Cloud device representing the environment itself.