2 Replies Latest reply on Jan 6, 2017 3:57 PM by mesverrum

    Group Details View - Limitation with variable




      We have created 70 Dynamic Groups and trying to leverage the "Group Details" view.


      When you click on a Group, all the resources (TOP10 etc) presents based on the entire list of Nodes, Interfaces, Volumes as opposed for the group you click on.


      I believe I need to apply a view limitation so only the Group select and its members show on the web resources.


      Has anyone achieved this?


      I have tried using the Group variables but no luck



      Keep getting:

      There was an error retrieving data from SolarWinds Information Service

      Error: A query to the SolarWinds Information Service failed.


      I am hoping to take the same principle to the MAPS where creating on MAP template and use a Group variable to populate the MAP.




        • Re: Group Details View - Limitation with variable

          I'm running into the same basic hurdle.  Any help that can be offered would be greatly appreciated!

          • Re: Group Details View - Limitation with variable

            It has always seemed to me that the groups details page does not allow you to parse any of the built in resources down to just the ones int hat group.  On the backend it is basically because being in a group isn't really a property on the node, and all those resources are only set up to filter on the nodes/etc and their properties.  The dynamic map capability you are asking for is easily doable, on the edit page of the map resource you can tell it to pull the map with a matching name to the group you are looking at and it will automatically get the right one for the group you are looking at.


            To get around the problems with the top XX resources I just wrote custom SWQL queries that joined to the Nodes table any nodeid that is in the group, I also have similar ones for applications.  You could modify these and turn them into a top xx pretty easily if you are any good at SWQL.



            select n.Caption, n.IP_Address, c.detailsurl as [_linkfor_Caption]
            ,'/Orion/images/StatusIcons/Small-' + n.StatusIcon AS [_IconFor_Caption]
            ,CASE when cpuload < 0 then 'Not Polled'
            else concat(cpuload,'%')
            end as [CPU Load]
            ,concat('/Orion/NetPerfMon/CustomChart.aspx?chartName=HostAvgCPULoad&NetObject=N:',n.nodeid,'&Period=Today') as [_linkfor_CPU Load]
            ,CASE WHEN cpuload>= n.CpuLoadThreshold.Level2Value THEN '/Orion/images/StatusIcons/Small-Down.gif'
            WHEN cpuload< n.CpuLoadThreshold.Level2Value and cpuload >= n.CpuLoadThreshold.Level1Value THEN '/Orion/images/StatusIcons/Small-Warning.gif'
            WHEN cpuload< n.CpuLoadThreshold.Level1Value THEN '/Orion/images/StatusIcons/Small-Up.gif'
            END AS [_IconFor_CPU Load]
            ,case when percentmemoryused < 0 then 'Not Polled'
            else concat(percentmemoryused,'%')
            end as [Memory Used]
            ,concat('/Orion/NetPerfMon/CustomChart.aspx?chartName=HostAvgPercentMemoryUsed&NetObject=N:',n.nodeid,'&Period=Today') as [_linkfor_Memory Used]
            ,CASE WHEN percentmemoryused>= n.percentmemoryusedThreshold.Level2Value THEN '/Orion/images/StatusIcons/Small-Down.gif'
            WHEN percentmemoryused< n.percentmemoryusedThreshold.Level2Value and percentmemoryused >= n.percentmemoryusedThreshold.Level1Value THEN '/Orion/images/StatusIcons/Small-Warning.gif' WHEN percentmemoryused< n.percentmemoryusedThreshold.Level1Value THEN '/Orion/images/StatusIcons/Small-Up.gif'
            END AS [_IconFor_Memory Used]
            ,concat(responsetime,'ms') as [Latency]
            ,concat('/Orion/NetPerfMon/CustomChart.aspx?chartName=AvgRt&NetObject=N:',n.nodeid,'&Period=Today') as [_linkfor_Latency]
            ,CASE WHEN responsetime>= n.responsetimeThreshold.Level2Value THEN '/Orion/images/StatusIcons/Small-Down.gif'
            WHEN responsetime< n.responsetimeThreshold.Level2Value and responsetime >= n.responsetimeThreshold.Level1Value THEN '/Orion/images/StatusIcons/Small-Warning.gif'
            WHEN responsetime< n.responsetimeThreshold.Level1Value THEN '/Orion/images/StatusIcons/Small-Up.gif'
            END AS [_IconFor_Latency]
            ,concat(percentloss,'%') as [Packet Loss]
            ,concat('/Orion/NetPerfMon/CustomChart.aspx?chartName=PercentLoss&NetObject=N:',n.nodeid,'&Period=Today') as [_linkfor_Packet Loss]
            ,CASE WHEN percentloss>= n.percentlossThreshold.Level2Value THEN '/Orion/images/StatusIcons/Small-Down.gif'
            WHEN percentloss< n.percentlossThreshold.Level2Value and percentloss >= n.percentlossThreshold.Level1Value THEN '/Orion/images/StatusIcons/Small-Warning.gif'
            WHEN percentloss< n.percentlossThreshold.Level1Value THEN '/Orion/images/StatusIcons/Small-Up.gif'
            END AS [_IconFor_Packet Loss]
            from orion.nodes n
            join orion.nodescustomproperties cp on cp.nodeid=n.nodeid
            join Orion.ContainerMembers c on c.memberprimaryid=n.nodeid
            where MemberEntityType like 'orion.nodes'
            and c.containerid like ${id}
            a--nd n.caption like '%${SEARCH_STRING}%'
            order by n.caption


            While you are working on groups it is probably worth pointing out that setting up lots of dynamic groups can hurt your server performance.  I have been to at least a dozen customer sites where they set up their group structure so elaborately that it was crushing their server and we had to redo them.  Typically you can see measurable differences in orion cpu load and such once people get into the hundreds of groups.  One of the easiest ways I've found to keep that load under control was to change the refresh frequencies as most groups really dont need to be recalculated every 60 seconds.  Also helps knowing the right use cases to leverage groups for their unique features versus just creating custom properties and filtering/grouping with those.


            -Marc Netterfield

                Loop1 Systems: SolarWinds Training and Professional Services