mnagel

Members
  • Content Count

    292
  • Joined

  • Last visited

  • Days Won

    51

Community Reputation

83 Excellent

3 Followers

About mnagel

  • Rank
    Community All Star
  • Birthday July 17

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. mnagel

    Ookla Speedtest

    @Cole McDonald Sure, no problem -- see below. The Ookla one is not much better in reality because the web method is not as accurate as the application socket method, but at least it tried to do bidirectional testing. I can't claim credit for this, I found it and modified a bit to work in LM. I set the mirror site as a property since auto-selection does not work with testmy.net. Mark $size = 50; $mirror = "##speedtest.testmy.mirror##"; if ($site -eq "") { $url = "https://testmy.net/dl-${size}MB" } else { $url = "https://${mirror}.testmy.net/dl-${size}MB" } $path = "Out-Null" $WebClient = New-Object System.Net.WebClient $mbps = "{0:N2}" -f (($size/(Measure-Command {$Request=Get-Date; $WebClient.DownloadFile( $url, $path )}).TotalSeconds) * 😎 Write-Host "Mbps="$mbps
  2. mnagel

    Cisco Warranty Status

    We used to have something like this for our Nagios notification script to include detail for Dell, HP and others that provide this data publicly, but we never were able to get Cisco data. It is available now via API, but not publicly. If LM is setup as a partner at the appropriate level, it should at least be technically feasible -- see https://developer.cisco.com/site/support-apis/ and https://developer.cisco.com/docs/support-apis/#!serial-number-to-information/cisco-serial-number-to-information-api-reference in particular.
  3. Yikes! I recall discussing this issue with the dev team during beta review, and they did make sure the roles have the correct defaults. I just checked and the Map stuff is disabled for all our pre-existing roles (it had not been at one point during beta). I just spotchecked a client login we use to emulate their view, and there is no Map tab visible. You might still need to adjust one or more roles.
  4. mnagel

    RDP Sessions

    @WillFulmer I have not tried again since then -- did not seem to be a collector issue, more that the Powershell involved was too intense. Worked fine in a few cases, but when the server count was in the 80+ range (which is no problem normally), the collector bogged down and lost data until we disabled it. I have not had a chance to go over the code too much to see how it could be made more efficient. It may not be possible...
  5. mnagel

    more cluster alert improvement requests

    There actually is a solution for this now. See https://www.logicmonitor.com/lmservice-insight/ . Unfortunately, though this use case reflects a missing core feature that is missing, the solution is a premium license addon. I have had words with our CSM about this stance. They need a core version and an enhanced version, IMO. The other problem with it is it is "write only". If you decide to change an instance after it is created, the wizard that creates them is not available (last time I checked anyway). But it should fix this problem.
  6. There is not, unless there has been a change recently. There are some datapoints within the collectors you can use (which we do for widgets displaying what we are able). There is not full coverage for all the various things that can incur fees (or usage against commit). I had to write a script against the API to capture this, and even then it is not complete. I had to define a custom property to group the results by client as well (with a warning if I find an element without the custom property). My script currently does this: scans all resources, counts each regular and LMCloud type (deviceType==0 or deviceType==2) scans all configsource instances to count LMConfig usage (dataSourceType == "CS") scans all websites, counts each, noting whether it is internal or external I would definitely prefer something standard to get a complete picture of license consumption, especially since new separately licensed features are added from time to time.
  7. mnagel

    datasource migration function

    It is nice to hear this is getting some attention, but there are definitely more items needed. There are at least two different issues with LogicModule maintenance. The one in this F/R relates to upgrades (e.g., new version of VMware modules). The hope was that you could retain previous data by matching DS/DP in the old to the new in a merge operation when importing the new datasource. I get it is complex, but it is also frustrating to see loss of historical data treated so casually. The one you are referencing is about module parameter override preservation. I like what you have above, but really, the correct solution for this is to allow linked cloning with inheritance and individual override of any or all elements in the module. There are already many examples of almost the same but not quite modules that could benefit from this. A great example of how that leads to problems is the excellent changes made by Steve Francis to support ActualSpeed ILPs for interfaces. Because that applies to only one (albeit common) case, all other interface DSes fail to get the same behavior. If that was done in a base interface module and the rest inherited from there with overrides/additions for there specific needs, that could be a general improvement for all interfaces. Lacking that, I would ask that in addition to the above, the following also be preserved: additional datapoints (including scripts, etc.) changes to datapoint settings (perhaps not scripts, but alert settings including templates) I am dealing with a specific use case right now where a fairly complicated NetApp DS needs to be updated to alarm when space available drops below a threshold. We can add a custom threshold, but then the alert template is default and the units are bytes. I can fix this, but this creates a maintenance headache regardless of whether I update in place (new versions will kill my changes) or clone (new versions require manual review to sync into the clone(s)). That said, the filter preservation would at least avoid issues with my changes to BGP- (filters admin down sessions) and changes to the collection interval for HP network devices (default is set to 1 day instead of 1 hour), so I will take what I can get!
  8. We run into situations where widgets display an error of some sort due to any number of reasons, usually when datasources are changed or resource group structure is updated. The point is, there is an error displayed in the widget instead of the data, and the fact that is happening is pure stealth currently, just waiting for an embarrassing moment with clients. I propose that this meta-issue be reflected in a way it can be detected in advance. If the API can pull that information, then a check could be setup within LM or via external script. I just checked our JSON dump of all widgets and nothing like this appears to be in place currently.
  9. mnagel

    Search In Alert Tuning

    Please fix this! I am looking at the top level of one client's Alert Tuning page and it has 267 items. Not being able to search is very frustrating. Search box presence is extremely hit or miss in general and needs UX attention, please!
  10. mnagel

    VMware Host Network Interface Status

    This is not exactly what you want, but it works (we also had unhappy surprises on this). You just have to disable alerting on vmnics expected to be down. And, you will have to wait for LM code review. 2EADXJ
  11. You can do this with propertysources that add a category to devices. The only problem with those is you have no control over how often they run, but at least now you can trigger them on demand (manually).
  12. See also: I am not hopeful at this point based on the past few years for much improvement in the alert/template system, but I can workaround a lot of it with external handlers and property pointers to template fragments. Not getting collection-time text data back, however, definitely results in a loss of critical information in many cases and could be fixed your way, my way or I am sure some other way. Mine was focused on instances, but it could equally apply to ephemeral DS level tokens to transmit unknowable text data back via alerts. LM, please pick one!
  13. mnagel

    Speedtest Option

    Had to go with what works... see:
  14. mnagel

    Ookla Speedtest

    After a few failed attempts to get this working on Windows via Powershell (works, but too inaccurate), I punted and used speedtest-cli. If I can replicate that into Groovy, then perhaps it could be universal, but Linux-only for now. 4CN9AA This will be held for code review, but it is very simple code :).
  15. mnagel

    Speedtest Option

    I found some even more promising options: https://www.powershellgallery.com/packages/Speedtest/2.0/Content/Speedtest.ps1 https://github.com/originaluko/SpeedTester I was able to make the first one work with barely any changes, but the results are not accurate. The second one needs to be tortured a bit to make it suitable since emits live status data, but again, running it from the CLI it is not accurate. The only CLI option I have found that is accurate is speedtest-cli (Python). Looking at both the above to see how hard they would be to rewrite into Groovy and make accurate. My current iteration of the original code is below (for now), but this method is also not very accurate. It relies on two properties, one optional: speedtest.run: set to 1 (or anything) for hosts that should run the code (may instead use manual instances to enable multiple test sources). speedtest.testmy.mirror: shortname of the testmy.net mirror (e.g., lax, ny, etc.). if not provided, will use default mirror selection. $size = 50; $mirror = "##speedtest.testmy.mirror##"; if ($site -eq "") { $url = "https://testmy.net/dl-${size}MB" } else { $url = "https://${mirror}.testmy.net/dl-${size}MB" } $path = "Out-Null" $WebClient = New-Object System.Net.WebClient $mbps = "{0:N2}" -f (($size/(Measure-Command {$Request=Get-Date; $WebClient.DownloadFile( $url, $path )}).TotalSeconds) * 8) Write-Host "Mbps="$mbps