3 Replies Latest reply on Mar 25, 2015 11:11 AM by silverbacksays

    1 Page - All interface Graphs Wanted ... Help me kill MRTG

    Chris Poetzel

      For years my company has used an endless supply of free/home brew network management tools: MRTG, rancid, Nagios, ServersAlive, Smokeping, etc.

      We finally ponied up the money for Solarwinds to replace all of this.  So far we are happy with this.


      The last thing to fully transition would be MRTG.  Solarwinds NPM and MRTG are now essentially double graphing all 600+ of our switches.

      We are happy with the graph style of solar winds and do not want to make the graphs more like MRTG.


      What i am looking for is more of the MRTG Style Overview page for a device.  Specifically i have attached 2 pics to help illustrate my point.

      Today, if i want to look at any MRTG graphs i go to MRTG-NodeOverview (attached file).  This lists all of my active devices i am polling.

      Then i would click on a device to open up its overview page listing all the graphs for each interface on the box (see 1Node-AllInterfaces attachment).


      Its really just a different presentation of the interface graph data than Solarwinds does.  I guess all of our admins are just used to looking at it this way and keep asking for it.


      Is something like this available? Anyone done this?


      i have played with the custom html stuff and see how you can make 1 page with multiple graphs in it by grabbing the html code for the graph and inserting it into a custom page.

      This is good but is not dynamic and would take me weeks of effort to do this for every switch and every interface we have.


      My quick thought on how to do this would be to get under the covers of the javascript/html and do some custom hacking.  i would really prefer not to get into this.


      i have to at least explore all options on this before i can shut off MRTG.

      thanks for the help,

      chris poetzel



      Our Environment:

      Orion Core 2011.2.2, NCM 7.0.2, NPM 10.2.2, IVIM 1.2.0

        • Re: 1 Page - All interface Graphs Wanted ... Help me kill MRTG
          Víťa Tauer

          Hi Chris,

          The supported way how to do this is using Multiple Object Chart, but if you want the graphs to be created separately, there is no easy way other than click-me-view-for-everything I'm aware of.


          When you're using Custom HTML resource, you can easily make it show charts for every interface: (use on your own risk, not supported). I've checked that this working in Chrome, but it should work everywhere.

          Following JS in Custom HTML resource (note, it needs to be in this resource, as it takes advantage of it's ${NODEID} replacement:




            var scr = document.getElementsByTagName('script');

            var mydiv = $(scr[scr.length - 1].parentNode); // hack, gets surrounding DIV



            // load interfaces for current Node from SWIS

            var params = JSON.stringify({query:'SELECT InterfaceID FROM Orion.NPM.Interfaces WHERE NodeID=@nodeid', parameters: {nodeid:'${NODEID}'}});


            type: 'POST',

            url: '/Orion/Services/Information.asmx/QueryWithParameters',

            data: params,

            contentType: "application/json; charset=utf-8",

            dataType: "json",

            success: function(msg) {

              var table = $('<table></table>'); mydiv.append(table);

              var addChart=function(ifaceID, ifaceRow, chartName)


              // you can modify for example width here

               ifaceRow.append('<td><img src="/Orion/NetPerfMon/Chart.aspx?ChartName='+chartName+'&NetObject=I:'+ifaceID+'&NetObjectPrefix=I&Period=Today&Width=300"/></td>');



              for(var i in msg.d.Rows) // foreach interface


               var ifaceID = msg.d.Rows[i][0]; // get ID

               var ifaceRow = $('<tr></tr>'); table.append(ifaceRow); // create row



          /* now, add every chart you need */

               addChart(ifaceID, ifaceRow, 'MMAVGBPS');

               addChart(ifaceID, ifaceRow, 'ERRORSDISCARDS');



            error: function(msg) {











          Hope this helps.

          1 of 1 people found this helpful