Network Health and Performance Monitoring: Custom Pollers
There are actually two ways to create pollers or custom pollers. The first way is the Device Studio that you can find right within the web console. Device Studio was the second of two poller tools released and fill some specific functionality gaps in the original tool, most notably the ability to modify existing resources such as node details and previously customers had to use the original UNDP tool to build individual resources for each line in node details that the default poller was missing and this led to several resources and a lot of scrolling. So the Device Studio can poll
for multiple OIDs for a technology. It can poll single CPU and RAM and poll for multiple CPUs and RAM. It can also poll for additional node details and perform logical operations for custom polling. With Device Studio you can display custom polled values in existing resources such as vital stats or node details. This is the ability added to this feature that allows for inserting data into the node details resource, something that was a popular request. Because the tool was designed this way you can only build pollers for CPU memory and node details with this tool. The technology is very specific and for anything outside CPU memory and node details you would use our other tool, however for those technologies this tool is very effective and the preferred method for polling that data. So the other tool or the original tool is called Universal Device Pollers or
UNDP. That's the second method and you can find this in the SolarWinds program files folder and it's independent of the web console. You must RDP to the application server to use this tool. UNDP can poll only one OID. Polled values are displayed in dedicated resources in the web console. They cannot be placed in existing ones and it can also perform logical operations. Now let me demonstrate how to create custom pollers for a device we will use the adtran 1335 to build a poller for CPU and memory utilization using Device Studio. First I'll switch to our device's
node details page and look at vital stats which can be found right here in the sub view pane. Apparently this view does not show a resource for CPU and memory use so we'll use this as our example to demonstrate building custom pollers using Device Studio. I'll go back to node details page. Remember that you need to obtain the OID or OIDs for a metric that you want to poll. This has to be done before you build a poller since I already researched for the OID I can use the MIB browser to search and ensure that the OIDs I will use are already in the MIB database. So let me put the OID and click search. Okay so our search works so we're good to go. Now if I expand the tree based on our OID we should
be able to find the metrics we're supposed to create starting with CPU load. Let's see this and this is what we're looking for so I can take note of the specific OID and use it later for building our poller. We are also looking for member used and it looks like that there is no specific OID for that stat but we can calculate using the memory heap size. The same as total memory and total heap free for free memory. We will obtain the total memory use by subtracting the total heap free from the total heap size. So I have already taken note of the OIDs we need so let's go to the next step. So I'll go to settings, all settings, and click on manage pollers.
The manage pollers page displays pollers that come out of the box and this is named as SolarWinds native poller and SolarWinds. It should also display custom pollers if you have created one. On this page you can also turn the poller on or off. You can assign it to a device and even edit existing ones. You can also directly import pollers shared in the flat
community if it matches your device but in this demo we're gonna click on create new poller for our CPU and memory utilization. So now you will be presented a quick guide on how to create pollers. It's going to give you a few tips when building one. So let's go ahead and click on get started. First step is to define the general parameters. This is where you can specify what type of data or technology you want to poll. Remember that Device Studio only supports the following
technology: single CPU and memory, multi-cpu and memory, and node details. I will select single CPU and memory for our poller, then specify a meaningful name for your poller. Let's name that as SolarWinds or sw- poller 1 and then select a test node. This is only the node to test the poller against it does not assign the poller to that node. So we'll select our device atran1335 and click submit.
You may also put tags which is optional. You can put description and author for efficient searching but for this exercise I'm gonna leave it blank and hit on next. The next step is to specify the data source. So we have the total memory, free memory, and CPU load. Let's start with the CPU load and click on define data source.
So we'll do that for each of the OIDs that we have searched in the MIB browser. So starting off with CPU load remember I have taken note of the OID we've searched a while ago. Click search. So there you go we have one result if you select that this will display
the information about that specific OID. As you can see the description says average CPU utilization over the last second it's OID, from what MIB, the type, and so on and so forth. If you scroll down a little bit there is an option that says manually define object identifier. Know that you may not have updated the database for some reason that means OID is not in our database so you may use this option to define the OIDs manually but I recommend using it on a short term basis if you have to see the data now and cannot wait for two to four weeks for a MIB database update. Once you have the update you will want to switch your poller over to the OID and away from the static value for a couple of reasons. First, this feature does not add the information to the MIB database. The platform or the Network
Health and Performance Monitoring is designed to function around the MIB database when it comes to SNMP. Full functionality of the product is not guaranteed for anything outside the MIB database. So let me select the OID again and hit submit now we're looking at the current result and it says eight percent. Now if you feel that the value is reasonable you can go ahead and click on yes the data source is reasonable and that value will be displayed in this column. Now let's do that again on free memory so we'll just repeat the steps. I'm gonna paste the OID here, search, select, there's the description. Scroll down a little bit and hit submit and if the result is reasonable then go ahead and click yes the data source is reasonable. Then for used memory this is quite a different process since
it involves calculation of subtracting free memory from total memory to arrive at a value for used memory. So let's do that. First let's search for the OID of the total memory size. Select and submit. Before we go ahead and click on yes the data source is reasonable we must add an additional OID so that we can go ahead and create a calculation based on the OIDs we've searched. So I'm going to select an additional OID and search for the heap free, select and submit. So we have heap free and heap size. Now we can go ahead and add a calculated value. Let's select the input. First is the total size minus
heap free. You can go ahead and click on tests and you have your value for used memory. Let's click on submit and you have that third value for your used memory.
So since this looks good we can go ahead and click yes the data source is reasonable and we all have the value for all OIDs we have selected let's now hit on next. Now in the discovery settings you have this option automatically poll nodes during network discovery, add node, and list resources to determine if this poller is a match. Checking this box automatically polls all nodes monitor that support these OIDs. In the future any nodes added that support the OIDs will also automatically be polled and show in list resources. Right now we will uncheck that box so that we can assign the poller later. Hit next, review, and then submit.
This brings us back to the manage pollers page. Now let's find the poller we created, If we look at the group by author there is one unknown here. Let's click that. This is what we created a while ago. Remember we did not specify the author name that's why it's unknown. The SW Dash poller 1 is currently turned off. You can turn on using this button, so let's do that. This is now turned on but not assigned to any node. Click the unassigned button so we can assign it.
Okay now let's find the adtran device by changing group by to vendor so it's easier to find that way. So here's our adtran1335. Let's click scan now to poll the device immediately. This will also automatically turn the poller on. In this environment it shouldn't take a little bit of time. The scanned result shows an exact match so we're good to go. Now let's return to the node details page to see the desired result by clicking on this node. This could take a few minutes to show up for this device as the polling has to be complete. There aren't too many nodes in this environment but poll now
puts the polling to the top of the current polling queue which could take a minute anyway. So just continue refreshing until the data shows. So let me switch back to vital stats and see if we have the desired result. Now we're seeing the data from our custom poller, so it's a success. From this point forward this
data will be polled on the same interval as any other statistic on the node. You can click edit here to change the gauges but right now we have the data already. A couple of things to note this resource for the CPU in memory is hidden in this view if not use so it automatically became visible with our custom poller. Important to note as if you ever want to stop getting data for whatever reason or if this custom poller is deleted this resource will still show but we'll just continue to show the last poll data meaning it's stale data which won't be accurate. You can get around this by
deleting and re-adding the node which will reset the resources. If you're not comfortable with doing that you can just delete the resource, show the data will still be in the database but you won't see it. Resources can be added back later. Now I'm going to demonstrate creating custom poller using an older tool called the universal device poller or UNDP. We will use another device and right now I am in the node details page of our Foundry 624 device. Remember that when creating custom poller you must obtain the OID for the metric already. So I have that and we'll use that in this demo. There
really isn't any hardware monitoring here so we're going to add some first a poller for temperature next a poller for power supply and fan status. We'll have a resource for these pollers with gauges and everything we have with out of the box poller. Now let me switch to the UNDP application. Okay you can launch the UNDP application from program files and then SolarWinds. You can click that right here and find the UNDP application which is right here with a leaf icon. Okay so UNDP is a back-end application and not web-based application. Some basic calculations
are possible with transform result here and we'll look at that. We'll start with a poller for temperature on this device. So let me click new universal device poller. Okay so right away we need the OID. Good thing I looked it up. So I'm going to paste that but you can also browse the MIB tree if you choose. Now the manufacturer measures temperature in celsius and one half degree so we'll fix that later in this exercise. So I have supplied the OID since this is in the SolarWinds MIB database I can see the name and then the description supplied already. So that means this is the OID I want. Let me click on the advanced option.
This lets you configure SNMP polling intervals and other values in this example we'll just keep the default so I'm going to minimize that. Keep historical data yes or no. The data will automatically show in the web console. This option here is for storing in the database and here are a couple of questions to ask yourself before choosing between these options. First question is do you want charts graphs and reporting on historical data? Do you want to alert on this poller or will you be using the poller in any PerfStack troubleshooting view? Is this full data what you will be interacting with or are you going to transform this into a more usable format? In other words is this just raw data you'll never interact with? Because you can choose to save historical data in the transform tool. So if checked the data
will take space in the database. Always consider that with this option no option will allow me to see current data in the web console but nothing historical will be stored or an option to display. For this one, since I'm going to transform this data into a more consumable format I'm not going to keep this raw data as I'll never interact with it so there's no point in it taking space in my database. Status is enabled that's fine and underneath you have the status. Let's keep it enabled and group this is a way to organize pollers in UNDP default is fine so I'll hit next. Next is to assign nodes and test. With UNDP you assign nodes and test at the same time. Be very careful
with this window. If you select numerous nodes and click test it will test against every single node. This can cause significant performance issues on your platform server and has happened many times to customers over the years. So test your poller against a small sample or handful of nodes then go back and assign to other nodes. So I'll find my node and test. Here we go, test. Alright so we have the value there. Let's try to select another node here and do a test this time for another device. The reason I did that is to show you the errors.
On adtran node the OID is not supported. When the OID is not supported UNDP will let you know. So I will deselect that and hit next and remember this temperature right here is temperature value one half degree interval so this is essentially double the actual temperature and considering this is Celsius we can go ahead and transform that to Fahrenheit. So let's hit next. So here you choose the view. The available boxes are active and grayed out for the unavailable boxes. We have to make additional calculations on your temperature so for now we'll say no for it appearing in the web console and we can change that later let's hit finish. Now the poller is created and it can be modified. Right now let's hit transform result.
This will let me change my temperature to full degrees and even from Celsius to Fahrenheit if I choose. So let me hit next and let's define the transform. I'll just name this SolarWinds poller transform. You can put description if you choose, keep historical data, now I'll I will keep the data as this is the final format and what I will be interacting with. Status is enabled. Let's leave
the default group and for the polling interval I'm going to leave that blank to use the Network Health and Performance default polling interval. Hit next, now here's where you define the formula. So first let's choose a poller and what we're looking for is actual temperature. So what we're going to do is divide the results by two to get an accurate reading since this is 0.5 value temperature and then let's select the foundry device and test. Okay so I think this result looks correct for Celsius. I'm going to convert to Fahrenheit so it's easier for us. So let's add a function and look for temperature and choose Celsius to Fahrenheit. Now I can copy or cut
the formula and paste it inside the parentheses to complete this transformation and test. Now the value in Fahrenheit looks right. So let's hit next and we will now assign this to the correct device and test.
Looks great, hit next. Okay so for the view I want gauges and I want it in vital stat so I'll select those. I also don't want this in devices where it's not polled so I'll check that box and hit finish. Last step is to assign both the temperature and the transform pollers to the right node which I'll do now. So just collapse all pollers and we put our pollers in the default group. Let's select both, hit next, choose the node, choose the node. Here's our Foundry 624 device and hit finish. Now we
can return to the web console refresh and poll until the data is shown. So let me do that. Okay I'm back to the vital stats let me switch to summary so that I can click on poll now. Click poll now.
Then let's switch back to vital stats. Let's scroll down a little bit and we have the temperature. Next we'll add the fan status and power supply status pollers on this same device. I have the OIDs already. So this exercise will use multiple OIDs one for fan and one for power
supply status along with putting that data in a table so it's a bit more challenging. So just for a review we'll double check the MIB database and make sure the OIDs are there. So let me switch back to summary, click the MIB browser. I'll check the fan status first. So we have three values here now let's try the fan status.
Search, select and we also have three values on a table. So we'll talk about those as we build the poller and how to use them. So let me switch back to UNDP. Click new UNDP or universal device poller. Paste the OID. In this one we'll use the advanced options because we have to format this data. So let's find the format drop down and see the options. Okay operational status seems to be the right one but when we tested that it only gave an up or down status so not quite will use and enumerate instead. Now I'll map those values to what I want to see by clicking map values button. Here I can
assign statuses to these values we saw in the OID table where we had two as the values. So one is other and I don't need that so we'll leave it, two is normal. I'm going to make it a okay and three is failure which in our world is a red alert. Let's hit okay and minimize advanced option. This time, considering I'm using a table, I'm going to say no to keep historical data. That takes too much space for my comfort. Now let's hit next and let's choose the same node for testing
to make sure all is good. Let's hit next. Now I'm choosing table and I can name my columns. The easiest way to do this is to find your node and click on test. So let's do that. Hit test. Okay so this will show the actual table on your node so you can map it correctly.
I'm working with the fan so I'll map my values to fan index and hit next. Now I want to put this in vital stats again but this time as a table and let's hit finish. Let's confirm is the poller assigned? Looks good. Now confirm the poller is assigned. Fan status, hit next. Alright so we're doing it again. Hit finish. Okay alright and now we can
return to the web console and refresh for the data and we should see that all three fans are all a okay but let's do that later on. First let's add the poller for power supply. So we will just repeat the process with the power supply OID and add it to the same table. To access the rest of this training series log into your customer portal account at customerportal.solarwinds.com