Joe Williams

  • Content Count

  • Joined

  • Last visited

  • Days Won


Community Reputation

5 Neutral

About Joe Williams

  • Rank
    Community Whiz Kid

Recent Profile Visitors

165 profile views
  1. Joe Williams

    Cloning Dashboard Groups With Rest

    This is the way I will end up probably going, but was hoping I didn't have to go through all of that. I just wanted to simply clone it.
  2. This is a good idea. I would also tag on and say can we do it for a collector group? So that way when a new collector is added to a specific group, it just inherits the schedule?
  3. Joe Williams

    Cloning Dashboard Groups With Rest

    Ultimately I will be using PHP, but the above example/code was from Postman. Attached is a screenshot of Postman.
  4. Joe Williams

    Rest Filter Device Group not set property

    Well I got all excited, until I read your edit. I guess I will just do it the hard way, dump the base groups with their properties and use PHP to loop through.
  5. Joe Williams

    Cloning Dashboard Groups With Rest

    Is there a way to clone a dashboard group? I am automating our onboard procedure for customers and this is one of the last steps. Currently I have a form that will automatically create a collector group, resource group, user role, etc.... But I can't seem to clone a dashboard group. I tried to do the sneaky backdoor way and use developer tools to show me the rest calls, but I keep getting back 415 Unsupported Media Type My Postman attempts look like this. {{url}}/dashboard/groups/18/asyncclone?recursive=true { "name": "TestCustomer1", "description": "", "parentId": "1", "widgetTokens": [ { "name": "CompanyName", "value": "TestCustomer1" }, { "name": "defaultResourceGroup", "value": "BaseGroup/Onboarding/TestCustomer1" } ] } Where 18 is the ID of the default dashboards group.
  6. There is not a built in way. You would have to write an extension to your browser or use something like GreaseMonkey or UserScripts.
  7. We set a property on each customer folder to pass a code to our helpdesk software. If this property isn't set, a ticket can't be created. So we put a default catch all property on the root folder. I am attempting to write a rest report so we can see which folders don't have the property set themselves. $queryParams = '?fields=customProperties,name,id&size=1000&sort=fullPath&filter=fullPath~Customers,,customProperties.value:DefaultCODE'; My first attempt was match what folders have the default code applied to them. This didn't work, I am guessing because the property isn't truly applied to the folder as it is inherited. So how do I find folders that don't have the property directly applied to it?
  8. Joe Williams

    Cohesity Support

    We are onboarding a customer currently that is using Cohesity. The default Linux SNMP datasources pick up CPU, Disks, Interfaces and Memory.
  9. Joe Williams

    Complex Datapoint and limit

    I am writing a custom datasource for a temperature monitor. We want to alert on if the temperature falls to high or to low. I figured limit would be what we want. This is what I have so far, no matter what it returns 0 tho. I have adjusted the numbers so Temperature falls outside and inside the range and it always returns 0. if(limit(Temperature, 46, 60), 0, 1) Is my understanding of this wrong? Eventually I would chain this to return different numbers based on Error and Critical thresholds, but can't get this even started lol.
  10. As a MSP this would be nice considering we have to name things like ESXI01 - CustomerName.
  11. Joe Williams

    Widget exceeds the instance limit

    We see the issue when we attempt to get aggregate bandwidth across a customers environment. We also see it when we attempt to show VM status. Even if we filter it to Error and Critical it will say the 2k limit.
  12. Joe Williams

    SNMP Trap Event Consolidation

    SYSLOG is another where we have this issue. We have received 1000s of duplicate alerts in the span of minutes. We had to create special escalation chains just to throttle it properly when it does it.
  13. Joe Williams

    Custom ConfigSource Issues

    And of course I kept plugging away and go it. It isn't pretty but it works. // import the logicmonitor expect helper class import com.santaba.agent.groovyapi.expect.Expect; // get the hostname and credentials from the device property table hostname = hostProps.get("system.hostname"); userid = hostProps.get("config.user"); passwd = hostProps.get("config.pass"); // initiate an ssh connection to the host using the provided credentials ssh_connection =, userid, passwd); // wait for the cli prompt, which indicates we've connected ssh_connection.expect("> "); // send a command to show the tomcat log file size, along with the newline [enter] character ssh_connection.send("enable\n"); // wait for the cli prompt to return, which indicates the command has completed ssh_connection.expect("# "); ssh_connection.send("terminal length 0\n"); ssh_connection.expect("# "); // capture all the text up to the expected string. this should look something like ssh_connection.send("show configuration\n"); ssh_connection.expect(" # "); cmd_output = ssh_connection.before(); // now that we've capture the data we care about lets exit from the cli ssh_connection.send("exit\n"); // wait until the external process finishes then close the connection ssh_connection.expectClose(); println cmd_output;
  14. Joe Williams

    Custom ConfigSource Issues

    I am having to write a custom configsource for Steelhead Riverbeds. There isn't a way to sftp a file off so I am having to write an expect script in groovy. I am trying to cobble together something using the Cisco Generic RunningConfig as a stepping stone, but I just can't get it off the ground. If I run it via the ConfigSources page with Test Script I get this. If I run it via collector debug and !groovy I get Any help would appreciated. Oh yeah the formatting of the cli. And what I have so far. import com.santaba.agent.groovyapi.expect.Expect; host = hostProps.get("system.hostname"); user = hostProps.get("config.user"); pass = hostProps.get("config.pass"); // open an ssh connection and wait for the prompt, user, pass); cli.expect("#"); // ensure the page-by-page view doesn't foul the config output cli.send("terminal length 0\n"); cli.expect("#"); // display the config cli.send("show configuration\n"); cli.expect("##\n") // logout from the device cli.send("exit\n"); cli.expect("#exit"); // collect the output config=cli.before(); // close the ssh connection handle then print the config cli.expectClose(); println config; And now what I have so far
  15. Joe Williams

    Issues With Creating A Datasource

    This was it. Thank you! Next yeah I will work on using the encoder to fix future issues. @Michael Rodrigues I went with MIke's suggestion and yeah that worked. Thanks!