ContributionsMost RecentMost LikesSolutionsRe: Dynamically group Interface Instances by Description. Rather that switching the interface and description around you could add an instance level property that pulls the description againand then groupby that: Could be added to an existing datasource with out losing data. Ideally though we should be able to use instance descriptions with regex. Datapoint expression for widgets similar to un() when no active instances We'd like to see a datapoint expression for widgets similar to the un() expression which returns a value when there are no active instances, rather than throwing an error. For example if Icreate an aggregated datapoint to sumall Netapp volumes containing "_ABC_"but there are no volumes that match this the graph throws an error that there are no active instances. It would be useful if we had an expression that could return a value instead of creating an error, ex. if(noInstances(ABC_Volumes),0,ABC_Volumes). Re: Provide SLA datetime masking for non SLA reports We would also like to see this. Use case for us would be to see interface utilization during normal business hours over the last 30 days. Re: Monitor the size of a folder Yeah the data source we built used the sameGet-ChildItem method with the recurse modifier. Worked great when we were looking at small number of folders. Attached the xml if anyone may be looking to do something similar. AD script gets all sub folders one tier down and passes them as wild values. Collection script uses theGet-ChildItem -recurse method to report the size in MB. Again this works great for monitoring a directory with a limited number of sub-directories, but has issues when monitoring a directorywith a ton of sub-directories. <?xml version="1.0" encoding="UTF-8" ?> <feed version="1.0" hasPendingRequests="false" > <company></company> <status>200</status> <errmsg>OK</errmsg> <interval>0</interval> <entry type="predatasource"> <version>1478878984</version> <name>FolderSizeTest</name> <displayedas>FolderSizeTest</displayedas> <description></description> <collector>script</collector> <hasMultiInstances>true</hasMultiInstances> <schedule>600</schedule> <appliesTo>false()</appliesTo> <wildcardauto>true</wildcardauto> <wildcardpersist>true</wildcardpersist> <wildcardlinuxscript>ad_script</wildcardlinuxscript> <wildcardlinuxcmdline>type="powerShell" </wildcardlinuxcmdline> <wildcardwinscript>ad_script</wildcardwinscript> <wildcardwincmdline>type="powerShell" </wildcardwincmdline> <wildcardgroovyscript># Pass credentials and hostname as arguments $hostname = "##HOSTNAME##" $user = "##wmi.USER##" $pass = "##wmi.PASS##" # Change the password into a secure string to be used in the credentials $remotepass= ConvertTo-SecureString -String $pass -AsPlainText -Force # Build the credential $remotecredential= new-object -typename System.Management.Automation.PSCredential -argumentlist $user,$remotepass # Invoke command to run command remotely on host Invoke-Command -ComputerName $hostname -ScriptBlock { #Folder to get sub-directories hardcoded here (C:\) but could also be set to reference a system property $colItems = (Get-ChildItem C:\ | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object) foreach ($i in $colItems){Write-Host "$($i.FullName)##$($i.Name)"} } -credential $remotecredential</wildcardgroovyscript> <wildcardschedule>1440</wildcardschedule> <wildcarddisable>false</wildcarddisable> <agdmethod>none</agdmethod> <agdparams></agdparams> <group></group> <tags></tags> <technology></technology> <adlist><![CDATA[{"agdmethod":"none","method":"ad_script","agdparams":"","id":0,"filters":[],"params":{"type":"powerShell","groovyscript":"# Pass credentials and hostname as arguments\n$hostname = \"##HOSTNAME##\"\n$user = \"##wmi.USER##\"\n$pass = \"##wmi.PASS##\"\n \n# Change the password into a secure string to be used in the credentials\n$remotepass= ConvertTo-SecureString -String $pass -AsPlainText -Force\n \n# Build the credential \n$remotecredential= new-object -typename System.Management.Automation.PSCredential -argumentlist $user,$remotepass\n\n# Invoke command to run command remotely on host\nInvoke-Command -ComputerName $hostname -ScriptBlock {\n\n#Folder to get sub-directories hardcoded here (C:\\) but could also be set to reference a system property\n$colItems = (Get-ChildItem C:\\ | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object)\nforeach ($i in $colItems){Write-Host \"$($i.FullName)##$($i.Name)\"}\n\n} -credential $remotecredential"}}]]></adlist> <schemaVersion>1</schemaVersion> <dataSourceType>1</dataSourceType> <attributes> <attribute> <name>scripttype</name> <value>powerShell</value> <comment></comment> </attribute> <attribute> <name>scriptgroovy</name> <value># Pass credentials and hostname as arguments $hostname = "##HOSTNAME##" $user = "##wmi.USER##" $pass = "##wmi.PASS##" $wildvalue = "##WILDVALUE##" # Change the password into a secure string to be used in the credentials $remotepass= ConvertTo-SecureString -String $pass -AsPlainText -Force # Build the credential $remotecredential= new-object -typename System.Management.Automation.PSCredential -argumentlist $user,$remotepass Invoke-Command -ComputerName $hostname -ScriptBlock { param ($wild) $colItems = (Get-ChildItem $wild -recurse | Measure-Object -property length -sum) "{0:f2}" -f ($colItems.sum / 1MB) } -credential $remotecredential -ArgumentList $wildvalue</value> <comment></comment> </attribute> <attribute> <name>windowsscript</name> <value>Collect_Veeam_V_Folder5.ps1</value> <comment></comment> </attribute> <attribute> <name>linuxscript</name> <value></value> <comment></comment> </attribute> <attribute> <name>windowscmdline</name> <value>##ps.hostname## ##ps.user## ##ps.pass## ##wildvalue##</value> <comment></comment> </attribute> <attribute> <name>linuxcmdline</name> <value></value> <comment></comment> </attribute> </attributes> <datapoints> <datapoint> <name>size</name> <dataType>7</dataType> <type>2</type> <postprocessormethod>none</postprocessormethod> <postprocessorparam></postprocessorparam> <usevalue>output</usevalue> <alertexpr></alertexpr> <alertmissing>1</alertmissing> <alertsubject></alertsubject> <alertbody></alertbody> <description>size in MB of folder</description> <maxvalue></maxvalue> <minvalue></minvalue> <userparam1></userparam1> <userparam2></userparam2> <userparam3></userparam3> <iscomposite>false</iscomposite> <rpn></rpn> <alertTransitionIval>0</alertTransitionIval> <alertClearTransitionIval>0</alertClearTransitionIval> </datapoint> </datapoints> <graphs> <graph> <name>Size</name> <title>Size</title> <verticallabel>TB</verticallabel> <rigid>false</rigid> <maxvalue>NaN</maxvalue> <minvalue>0.0</minvalue> <displayprio>1</displayprio> <timescale>1day</timescale> <base1024>false</base1024> <graphdatapoints> <graphdatapoint> <name>size</name> <datapointname>size</datapointname> <cf>1</cf> </graphdatapoint> </graphdatapoints> <graphvirtualdatapoints> <graphvirtualdatapoint> <name>sizeTB</name> <rpn>(size/1024/1024)</rpn> </graphvirtualdatapoint> </graphvirtualdatapoints> <graphdatas> <graphdata> <type>2</type> <legend>Used</legend> <color>blue</color> <datapointname>sizeTB</datapointname> <isvirtualdatapoint>true</isvirtualdatapoint> </graphdata> </graphdatas> </graph> </graphs> <overviewgraphs> <overviewgraph> <name>Overview</name> <title>Overview</title> <verticallabel>TB</verticallabel> <rigid>false</rigid> <maxvalue>NaN</maxvalue> <minvalue>0.0</minvalue> <displayprio>1</displayprio> <timescale>1day</timescale> <base1024>false</base1024> <aggregated>false</aggregated> <datapoints> <overviewgraphdatapoint> <name>size</name> <datapointname>size</datapointname> <cf>1</cf> <aggregateMethod>SUM</aggregateMethod> </overviewgraphdatapoint> </datapoints> <virtualdatapoints> <overviewgraphvirtualdatapoint> <name>sizeTB</name> <rpn>size/1024/1024</rpn> </overviewgraphvirtualdatapoint> </virtualdatapoints> <lines> <overviewgraphline> <type>1</type> <legend>##INSTANCE##</legend> <datapointname>sizeTB</datapointname> <isvirtualdatapoint>true</isvirtualdatapoint> <color>blue</color> </overviewgraphline> </lines> </overviewgraph> </overviewgraphs> <scripts> </scripts> </entry> </feed> Re: Acknowledged date for a repeating alert condition still shows the original acknowledged date Following up with this becuase we keep seeing this "feature" cause issues for us. We are seeing now that this issue breaks some of the functionality ofthe ServiceNow integration. We have tickets in ServiceNow set to close once the alert clears in LogicMonitor. But in siutations like belowwhere that alert is acknowldged at one severity then changes to another only to change back to the original severity no notifications are sent. See below: Here we have a drive begin to fill up. The initial alert creates a ticket and is updated twice as it jumps to error than critical severity. No updates were sent to the ticket after critical alert. The ticket still shows as an open critical because the notifications were suppressed due to previous acknowledgemnets. I don't like that we have to choose between ack'ing alerts and having tickets be updated correctly. Again I would like to see an option to enable notifications whenever a threhsold is crossedeven if the alert has been ack'd at thatseverity with out the alert clearing entirely. Re: Monitor the size of a folder I'd like to see this too. We have a datasource which uses a recursive PowerShell script to do this currently, which works great when the are only a handful of child directories, but we've seen issues runningthe same script on say a fileserver with hundredsof chid directories where it was pegging mem and cpu usage. The grovvy script above is also recursive so I wonder if it may have the same issues. Worth a look though. Re: add "required datasource" capability I'd like to see something like this to. Which datapoints alert on no data is pretty hit and miss and I beleive only WMI alerts when the creds arewrong. Can be hard to figure out if you are polling everything needed. We've done a workaround before by editing the applies to field of a datasource to point to a group where we know the datasource should be applied and then alerting if no data. Although this may not work if AD fails to find any instances as is what looks like happend here. Re: Acknowledged date for a repeating alert condition still shows the original acknowledged date First, I understand not wanting get overwhelmed by notifications, but in the case you mentioned above (which seems to be the only use case Ican see for this behavior)it seems to me that it would be better handled bythe alert trigger intervals and alert clear intervals. Second, when a alert crosses a threshold the second time a weekafter the original acknowledgement (as we saw in my first post)I think it is safe to assume that should be considered a new "alert session." In our case we understand that some of our thresholds need to be adjusted to be more realistic and are working on that to mitigate this issue, but it still seems like common sense that whenever a threshold is crossed notifications are sent. I'd like to see an option to enable that behavior if it is not set that way by default. Re: No Referential Intergrity when renaming or moving host groups We have also run into this issue.Agroup was accidentally moved and any datasource that wasbeing applied based on that group nolonger worked and data was lost. A work around we used was to edit thedatasource to be appliedbased on a system category added to these groups rather than actual group. I'd still like to see LM be able to track when a group is moved and edit any resources referring to that group. As it is now it is a pain to fix dashboards and reports once a group has moved. Re: Dependencies or Parent/Child Relationships I would love to see this feature. As it is now one issuecan create dozens of alerts and can make it difficult to troubleshoot.
Top ContributionsRe: Monitor the size of a folderRe: Acknowledged date for a repeating alert condition still shows the original acknowledged dateRe: No Referential Intergrity when renaming or moving host groupsRe: Dynamically group Interface Instances by Description.Datapoint expression for widgets similar to un() when no active instancesRe: Provide SLA datetime masking for non SLA reportsRe: Monitor the size of a folderRe: add "required datasource" capabilityRe: Acknowledged date for a repeating alert condition still shows the original acknowledged dateAcknowledged date for a repeating alert condition still shows the original acknowledged date