cancel
Showing results for 
Search instead for 
Did you mean: 
Create Post

Rick's Favorite Report #2: Creating Simple Custom Views Showing Multiple Interfaces' Bandwidth Utilization

Is "A Picture Worth A Thousand Words?"  Maybe even more than that!

pastedImage_0.png

I frequently receive requests to show departments / teams how their system(s) may be performing on the network.  It's not enough to just tell them "Your server's latency is sub-millisecond, it's connected at 1 Gb/s at Full Duplex, and no network errors have been recorded on its switchports in the last three months."  When you offer that kind of information it's accurate, but it may not fill the actual need of the request.

Maybe they want to know a LOT more that NPM can show about even basic network status of a system:

  • Latency
  • QoE
  • Throughput on multiple interfaces
  • Traffic trending over time--especially with an eye towards predicting whether more resources must be allocated for their system(s) in the future:
    • More memory
    • More bandwidth
    • More storage
  • Growth over the last year in various metrics:
    • Server bandwidth consumed
    • WAN bandwidth utilization
    • Latency changes

I never found a canned NPM Report that would show everything the customer wanted.  But I learned how to build one!

Check out my method of building a Custom View that shows multiple windows in a single screen--my own little "single-pane-of-glass" deployment here:  How to create a simple custom view of multiple interfaces' bandwidth utilization

It's incredibly easy to build a blank custom View that has as many monitors/ windows/ reports as I want:

  1. Create a new View
  2. Add the right number of columns and add the right Custom HTML (or other) resources to them
  3. Edit those resources to display useful and intuitive titles and subtitles
  4. Test that they show the time frames and polling frequency most useful to the customers
  5. Give the customer access to them
  6. Sit back and listen to the praise and excitement!

pastedImage_0.png

I just built a new view for all the interfaces on a Core 7609 yesterday using this process, and will build another one today on another 7609.  In the screen shot below I've zoomed far out to give you an idea of what I can see--a graph for each interface's utilization.  Normally I'd have the browser window zoomed in enough that the three columns fill a 24" display and are easily readable, and easy to scroll through vertically.

pastedImage_1.png

Benefits:

  • I need just one screen that shows everything physically connected to those core routers.
  • My team sees the labels and information displayed; that helps them understand what needs to be worked on as we move those interfaces onto replacement Nexus 7009's.
  • My boss is able to track progress, see interfaces and throughput change.
  • His boss knows the work's being done, sees what's left to do, and can answer the CIO's questions quickly and easily.

What would you pay an outside vendor to build this kind of custom view for you?  $5K?  More?   Depending on the complexity and number of interfaces, I can start and complete a new multi-interface view, complete with custom labels and customized monitoring periods and granularity in less than ten minutes--AND provide a wealth of useful, specialized information to whichever customer wants it.  Better still, I can show them how to tweak the individual windows' views to reflect differing amounts of polling granularity and time covered by the graphs.

The ability to build this has filled needs by my team, by our IBM Big Iron team (always wanting to see how much of the multiple 10 Gig interfaces they're consuming at once), our Bio Med group (which LANTronix devices have the best or worst uptime--and where they're located!), the Help Desk (what sites or systems are impacted by any given port being down), and more.  I've built all these specialized views / reports and made them available via NPM to multiple teams, and the need for this info only grows.  I've also built custom multi-graph windows that provide information about:

  • Corporate WAN utilization for interfaces that connect campuses in multiple states
  • Contracted EMHR customers' uptime, reliability, and throughput
  • Performance and availability of WAN connected sites based on WAN vendor to track SLA's
  • Cisco UCS Chassis interface utilization
  • Vendor-specific systems and hardware (particularly useful when the vendor blames our network for their hardware or application issues)

Take a look at my "How to" page here:  How to create a simple custom view of multiple interfaces' bandwidth utilization.  Then talk over the idea of providing this kind of information with your favorite (or problem) customers, and you'll see you can build bridges and service unmet needs a lot easier than you expected.  It's another way NPM shines--with information already available to you!

11 Comments
MVP
MVP

Very nice and well written. I do a lot of this stuff and the custom html is very handy - once you get a handle on it.

Level 13

I am currently being asked to do something similar to this for a customer.   The current preference is a report we can send out rather than trying to manage outside customer accounts in SolarWinds.  One other 'gotcha' after I was showing this off was they want an aggregate chart showing total bandwidth for all of their interfaces rather than individual.  As I understand it, they want to see the total of what they are using vs what they are purchasing from the network WAN group. 

I am not sure yet how to aggregate all the interfaces like that yet.

You could take the original report above and capture the WAN ports graphs for every node, and use that for some nice graphics showing trends, and then tie it in with a canned report called "Average and Peak Traffic Rates - WAN Interfaces Last 7 Days" that can be adjusted with the Report Writer.

How about looking into that report and modifying it to show only the nodes/interfaces with WAN throughput?

If you can get it to display what you want, it can be used to send anyone an automated report at whatever time interval you (or they) desire.

Still, it isn't going to show the bit-value the customer wants, is it?

So next we can look at building EXACTLY what you need.  Start out with a new Custom Report.  Mine looks like this:

pastedImage_5.png

Click on Edit Table to get to this next view:

pastedImage_2.png

Edit the layout to show the right nodes or interfaces.  Maybe you want to add conditions so it only works for nodes you have labelled with specific name patterns, like "WAN Router" or "Edge Router".

Maybe you want to report on Interface instead of Node, and you know your customers are only interested in specific ports labelled "Internet" or "WAN Port" or "Uplink to ISP".  Filter for them, add the right conditions.

pastedImage_3.png

Select "Last Month" and start testing to see if it provides what you expect.  Then tweak it until it DOES show what you need.

pastedImage_4.png

I'd love to see what you come up with for a final report.

Swift packets!

Rick Schroeder

I meant to include this Dynamic Query Builder example for you to filter just to routers, and then filter just router interfaces with a specific character set in their names:

pastedImage_0.png

Level 13

Thanks rschroeder​.  I am going to give this a try and see what we get.  Anything is progress at this point I think.   It may take me a bit to get to a final version.

My interface selection bit is going to be a mess, it won't be nearly as clean as this, but this may be a good start.  i.e. select interfaces with very different descriptions, so I may need to set custom properties on these in the end for selection.

jhandberg

I ran into that same challenge because my team had set up routers across three states using different Interface names/descriptions for each uplink. 

I played the bad guy card and made the guys go into every router and change the Interface names so they were consistent.  Consistency and cookie-cutter design/implementation really can be leveraged by SolarWinds products for cool reports and management.

Level 13

The interface descriptions in ours now are descriptions to the site or site router specifically.  I don't think I could convince them to change that.

I bet you could capture all the routers' names and uplink ports/interfaces' names via SDK and then use the output to create a report, or use the SWQL as your custom filter in a report.

Standardizing is good--but it only works when it works for your needs.  Sometimes it's better to have some inconsistencies to make other things work well, too.

In my environment, every router's name carries a specific string that indicates it's a router, and what KIND of router duty it has (border router, edge router, core router, etc.).

Then every routed interface also has a string in its description that indicates what it is, and a portion of that string is consistent across all types of links (WAN Uplink, L2 downlink, Links to ISP, BGP or MPLS or EIGRP links--depending on the provider and circuit).  That makes it easier to sort & filter with something like NPM and NCM.  It also makes monitoring and security easier by knowing what's out there via NPM / NCM reports and Compliance.

I feel your pain.  Yet I want to believe every one of those interfaces you wish to monitor for this report could have a small three or four character phrase inserted into them, which would be used to find the key ports/routers for your report. 

If only folks would tell us what they want in the future, we'd build it for them.  Without knowing about this kind of reporting/filtering solution, and how it can be done easily if a little consistency is applied across node and interface names, how would a person know the right way to name nodes & interfaces?

Where's that "EASY BUTTON"?!

Level 13

Yes, I would love that "EASY BUTTON" here.  I thought about using a custom property on all the interesting interfaces if they wouldn't change the descriptions.  Right now, that is like 94 WAN interfaces going to one customer.  That isn't very dynamic, but would get the job done.

Using a chart instead of table is closer to what the Network Engineer is asking for.  He said it looked "promising".  He is still asking for one transmit and one receive line for all 94 interfaces.  I don't think I can do that in the Manage Reports tool.  That request for total transmit/total receive for all interesting interfaces doesn't seem to be available.  Ah well, what can one do?

I (REALLY) want to believe that information can be had.  I'll admit right off the top that I don't know how to get it.  But . . .

Let's imagine you could somehow identify all the nodes and interfaces whose throughput would comprise the info your Network Engineer desires.  So you have 94 pieces of monthly information.

That really sounds like something a custom SQL or SWQL query could collect in 94 rows.  You'd have all that data for bandwidth utilization in bits, Megabits, Megabytes, TB, etc.

And a little Excel programming could automatically import those 94 rows and summarize the data into one MB/Month Input or MB/Month Output, right?

MVP
MVP

In my new position I don't interact with SolarWinds like I used to - for my client. Now I work with other clients and will be working with their installations. I'm looking forward to trying this on some of their sites. Thanks for the information.

About the Author
I grew up in Forest Lake, Minnesota in the 1960's, enjoying fishing, hunting, photography, bird watching, church, theater, music, mini-boggan, snowmobiling, neighborhood friends, and life in general. I've seen a bit, have had my eyes opened more than once, and tend not to make the same mistakes twice. Reinventing the wheel is not my preference, and if I can benefit from someone else's experience, that's good all the way around. If someone can benefit from my experience, it's why I share on Thwack.