Building Stellar Orion Reports From the Ground Up – SolarWinds Lab Episode #88

June 17, 2020

Reports are among one of the most powerful and ubiquitous aspects of the Orion Platform. Despite being right at people’s fingertips, they’re often overlooked or under-appreciated as a tool to provide robust insight and monitoring awareness. Part of that might be due to users not feeling comfortable with the process of building reports.

In this episode of SolarWinds Lab, Head Geek Chrystal Taylor will go back to the basics with you — covering the process of building a report and showing all of the incredible features standard in the web-based report writer. Then, she’ll take it a step further, showing some of the more sophisticated results you can get with just a few simple options.

This episode will cover:

  • The right way to start building a custom report from the ground up
  • Powerful options that are already built into the report engine
  • Small customizations with a huge impact on the final result
  • How SWQL fits into Orion reports and when you will (and won’t) need to bring out the big guns

Back to Video Archive

Episode Transcript

But okay forget that, forget work from home. What about reports from home?

Remote reporting.


Remote you’re right, yeah. And, instead of Lab every day it’s report every day.

No, that’s not enough. What you wanna do is you want to report every hour, then you print them out, all right? Take those emails, you print them out, Then you make like a little flip book so you can see [laughs] Yeah.

Oh my god!

I’m the only one that does that?



Are they the ones at your house or where you sending them?

No, I send them all to a printer in Austin. [laughs]

Of course you do.

To the Sales floor. [laughs]

Yeah it’s sitting there, there’s no paper it’s completely out of toner. There’s a giant pile next to the recycling bin. [laughs]


Oh that’s awful. All right, no wait. But, just seriously for a second. There’s this post on THWACK that I saw yesterday that, somebody has inherited their Orion instance and we’ve talked about this before, and they just need to come up with basic reports. And, we’ve got a bunch of resources on how to do the heavy-duty stuff but, Patrick have we covered basic reporting on Lab before?

Over the last five years? Yeah, we’ve touched on it a couple of times but, there’s been so many changes in the last couple of releases, I’m not sure that we have and especially, to your point like, if we inherited a whole bunch of them and there’s 100 or more in the system maybe we ought to go back and talk about how to actually do a little Spring cleaning.

All right, so someone’s gotta actually commit to doing a Lab episode on basic reporting. We gotta figure- All right

Hey guys! Sorry, I’m late.

Oh, hey Chrystal.

What did I miss?

You know what? It might just be perfect timing. We were talking about basic reporting and, how Lab hasn’t done that in a while. Do you have anything in your travels about how to set up just the general, just the basic stuff?

Sure. How many reports have I set up or helped set up over the last nine years with hundreds of different clients? [laughs] Too many.

Okay, so do you feel like making that your first Lab episode as a Head Geek?

Oh, yeah that sounds like a good time. Who wants to join me?

I’m always down for a Lab episode. So, I’ll do this one with you.

Sounds like a quorum of two.

Fantastic. All right, let’s make this happen. [upbeat instrumental music]

Before we get started, I wanna talk about a few assumptions going in. I assume that you have a need for a report, I don’t really need to know why.


I also assume that you’re not an advanced report creator. Meaning you maybe have dabbled with the built-in reports, maybe you’ve customized one or two. Maybe you’ve looked around but you ran out of time or you ran out of patience, trying to figure out how to get that working. So, today I wanna show you a couple of options from the very basic to the little bit more advanced. To help make your reports a little bit better. So, all of the reports that I’m gonna showcase today are reports that I’ve created and used in production environments over the last several years, to help solve a problem. And if it solves a problem for you, and you like the report, please feel free to download it from the THWACK Content Exchange.

And if you have questions for us, as we’re going through things, feel free to ask us in the chat window that you see off to the side. And if you don’t see a chat window off to the side, that means you’re doing this wrong, because you should be watching Lab live. To do that, you want to go to And that’ll tell you when the upcoming episodes are, so you can jump on and watch live and ask your questions. You can also go there to find the archive of our past episodes and see what you might have missed.

So, let’s jump right in. [electronic chimes] First, you need to know how to get to Manage Reports which is where we’re gonna create our reports. So, we’re gonna go, from our Home Summary page, we’re gonna go to Settings and then we’re gonna go, All Settings. Now, you might wonder why I’m not going to Reports. My answer to that is it takes-

I was gonna ask that, yeah.

It takes the same number of steps and it’s just an old preference of mine to go through the Settings page. I’ve been using SolarWinds Orion for a very long time and finding things through the Setting pages, these menus did not exist. And now that they do, I find myself just going back and forth to the old settings pages. [mouse clicks] So, it’s a little bit more manageable to me because we wanna go into manage reports. The Reports menu up here takes you into viewing reports, so you still have to go to manage reports from there. So, we’re gonna go into our Alerts and Reports section here. And we’re gonna select Manage Reports. And we’re gonna see there’s like a ton of out-of-the-box reports. But we’re not gonna use any of those, what we’re gonna do is we’re gonna create a brand-new report. [mouse clicks] And, this report is gonna be very simple. So you see immediately we popped up a screen because I’ve either never been in the screen before on this Orion instance, in the account that I’m logged in. Or, I’ve just never checked this box to never show this again. So, what we wanna do is you can see here there’s a lot of information that says some basic stuff of what you can do. And then, you can just click on the GET STARTED [mouse clicks] cause we don’t need that. There’s a lot of options jumping right in and, a lot of people are inclined to maybe ignore this or take a little gander and see what’s in there. We’re gonna talk about that a little bit later. Right now, we’re gonna use the reports resources. We’re gonna use the Custom Table. And now you can use the Custom Table, or you can use Custom Chart. The Custom Chart is a little bit more advanced only because you do require a time series. It’s a little fidgety when you try to do something very specifically custom. So, we’re gonna use the Custom Table. [mouse clicks] And it’s gonna take us right in to adding that content. So, you have a few options here for selecting your methods. So you can select Specific Objects so, we can go in here and say I want node X and node Y only I don’t care about anything else. You can use the Dynamic Query Builder, which is the default, or you can use the Advanced Database Query with SQL or SWQL. And, we’re not gonna get into that right now. I’m gonna talk about it a little tiny bit later, but it’s a little more advanced than what I wanna get into in this session. So, we’re gonna leave it on the Dynamic Query Builder. You have two options, Basic Selector and Advanced Selector. You can see already I wanna a report on node. It’s gonna automatically select all nodes. Do we want to select all nodes? Yes. But also we wanna add a condition. So, we’re gonna add a condition. And I’m gonna change this because the report that I want to create is based on interfaces. So, we’re gonna come in here and we’re gonna find Interface and we’re gonna change it to Interface. Now, it’s gonna select all interfaces and that’s not what we want. I’m gonna tell you what we’re gonna look for today. What we’re gonna look for is interfaces that have been re-indexed. A lot of times, you’ll notice or you may not have ever noticed, in your Orion instance that you have orphaned interfaces, they’re unknown. Most of the time that comes about from an interface being re-indexed. So it changes to a negative index value and that forces it to be orphaned by Orion. So, you’re no longer gonna be collecting your statistics on that interface. It could be an important interface, I don’t know. So, what I like to do as kind of a cleanup tool is I like to create a report that tells me when I have orphaned interfaces, so I can go rediscover them and add them to my environment. And, you could also do that with a regular network discovery to regularly add your new interfaces in. But, it’s still nice to be able to go in there and clean up the old ones that no longer matter.

Right. And I want to point out for those folks who come from a network background that, you may be aware that there’s a Cisco IOS command that forces your network devices not to re-index to keep their index number no matter what else changes. However, not all devices have that capability. So, other operating systems and other network vendors don’t always have that do not re-index. And, so this report really allows you to know when important interfaces have dropped off the list or are no longer collecting stats.

Yes, absolutely. So, you’ll notice two I mentioned the Basic Selector and the Advanced Selector. The Basic Selector is gonna give you a drop-down field and this is all it’s gonna let me do. This doesn’t do what I need it to do. There’s no information here for the Interface index is what I need to look for. So, what I’m gonna do is, I’m gonna switch it to the Advanced Selector. What that’s gonna do is give me an out of button. And I’m gonna select that button and I can now select anything I want from the database that is related to this table in the database. So what I want is, I want to find this Interface Index field right here. [mouse clicks] And you can use the Search up top. But what I wanna do is, I want to just use Interface Index. So we’re gonna select it and add that and we’re gonna say, is less than zero. [mouse clicks] Because it becomes a negative value in the database. I happen to know this just by working with it for a very long time. You may not have known this ahead of time. [mouse clicks]

Right. And the other thing is that if you’re used to creating custom alerts, which I think more people generally, when they’re getting started with Orion, end up creating alerts, again, sooner than they have to create a custom report. Then


The interfaces look a lot similar when you go to that Advanced Selector.

Yes, absolutely. So then we can name it so, we’re gonna name our data source. And the reason why you wanna name your data sources is if you eventually do want to add more resources to this report, you can select from the drop-down of data sources for your new resources. So, you don’t have to recreate them. So, if you’re later later you’ve been messing around with reports for a really long time and you get more comfortable. You can add different datatype sets, and, if they’re named you know what they are. So, we’re gonna name it

Hmm. [keyboard clatters]

Re-Indexed Interfaces. [keyboard clatters] Because that tells me [keyboard clatters] what I need to know. [mouse clicks] And ADD TO LAYOUT. And then, it’s gonna immediately jump us into editing that Custom Table. So we’re gonna select what fields we want in here. [mouse clicks] We’re gonna add some columns and I wanna add, I’m gonna add from my interfaces, which is automatically deselected, we’re gonna select Caption. Because we want the name of it. And, I’m gonna add the Interface Index just to show you what that kind of looks like. And then, I’m also going to add the status, which is down here. Add the status so you know what that interface status is. And then, I’m also gonna go in here [mouse clicks] and I’m gonna change this to a different property that’s connected, which is our node. Because, I wanna know what device this is attached to. And interface name is all well and good, but without a node device name, you’re not gonna know what that’s from a lot of them are gonna be the same you know, you’ve got your Fast Ethernet and then you’re gonna be like, “Well, what device does this go to?” [laughs] That’s not helpful for me.

Where in port one, where? Which one? Yeah.

So, we’re gonna select our fields these are all the fields that I wanna add. [mouse clicks] And I’m gonna hit Add Column. So, now that they’ve been added, you can see there’s two Caption fields, and that’s not gonna make any sense later. So what I’m gonna do is, I’m gonna rearrange a little bit, so I’ll drag and drop. It’s very lovely. And I’m gonna select Advanced, and then I’m gonna rename this. So you can see this is the field in the database. It’s Node Caption, so I’m gonna say is, this is our Node Name. [keyboard clatters] [mouse clicks] And then, in the interfaces one I’m gonna rename that one [Keyboard clatters] to Interface Name you guessed it. Great. And then, I can name our table. [mouse clicks] I’m just gonna stick with the same name because that is what it is. [keyboard clatters]

Yeah, don’t get creative and call something like Blue mountain hamsters. Like, really name things what they are you’re not gonna appreciate future you is gonna hate present you if you start doing something cutesy.

Yeah absolutely, you’ll be so confused later. Or, if you leave the company then some poor soul who has to come in there afterwards, is gonna be very confused.


So we’re gonna create that. We’re gonna talk a little bit more about some of these other options later, but you can use this PREVIEW RESOURCE [mouse clicks] to see what it’s gonna look like. Just pop up right on the screen for us. And this is what it’s gonna end up looking like. [mouse clicks] And then, SUBMIT. So, you’ll notice that the first thing I did wasn’t name my report. The first thing it had me do was add things and that’s by default. So, now we need to name it, you can add a subtitle, which can be a more descriptive information if you need it. Or, it can be like a time range, I’ve used that if I build reports that are like monthly, yearly, they’re on a timeframe. Then I’ll come in here, I’ll name them basically the same then I’ll put their timeframe in the subtitle or something like that. Or, if you wanted to add, I don’t know anything else in there, you could. [mouse clicks] So, I’m just gonna go ahead and jump to our finished report so you can see what it looks like. Now, this is good information. This is information that tells me that these devices have lost those interfaces, maybe they’ve been re-added and we need to go in here and we need to clean these up, because they’re not collecting statistical information they’re not collecting status anymore, and they’re not useful to us in our monitoring. We need to go add the new ones that are useful to us.

Right. And, this also underscores the difference philosophically between an alert and a report. I think some people will look at this event, right? That an interface becomes re-indexed and say, “I need to know about that right away.” Really? Two o’clock in the morning, [laughs] you need a page to wake you up out of bed because an interface re-index. I mean, maybe but I would say not across the entire enterprise. So, that’s where


You would create a report and schedule it to go out every Monday morning and say, “All right. Help Desk, this is your cleanup list for Monday morning.” Or whatever it is. That’s


What a report is meant to do.

Absolutely absolutely. And, these like as I mentioned this is really useful if you are the administrator of your SolarWinds platform ’cause then later when they come yell at you, because you didn’t know that some interface out there was maxed out or dropping a ton of packets or something. It’s because you didn’t know it had been re-indexed and you’re not monitoring the new interface. So, that is a problem that we want to be able to solve. So, this is mainly used for keeping your Orion instance clean, for me. So that was like a very basic, simple report only one single condition we only cared about one thing and that was when interface indexes went below zero. So, I wanna talk about something a little bit more advanced. So, we’re going to go back into our manage reports. And we’re gonna create [mouse clicks] another new report. [chimes] And, we’re gonna use a Custom Table once again. [mouse clicks] And this report, I designed to look for Empty Custom Properties. Now, why do you care about that? So, the answer to that is if you use your Custom Properties correctly then they are extremely helpful across the platform. You can use them in alerting, you can use them in reporting, you can use them to filter resources on your different pages. You can use them to do account limitations or report limitations or whatever I mean, they’re immensely useful. You can’t create…

All right I’m gonna just jump in here and I’m gonna say that if you’re not using Custom Properties you are SolarWinds-ing wrong.


It’s just I’m judging you now. [laughs] That’s all that’s all we’re doing

Judging you now. Yeah, definitely definitely. Custom properties are amazing. And, I love them so much, I use them all the time. And, I’m gonna use them here. What we’re gonna do is look for empty ones and why do we care about empty ones? So, the answer to that is if you’re using Custom Properties in your alerting, let’s say, well, we’ll take a specific example. In your alerting and you have alerts that are dependent on a Custom Property being filled out, like, maybe you have one that differentiates between the server team and the network team and whatever. And you have this alert set up to if it’s a network node, go to the network team. And if it’s a server node, go to the server team. But you probably don’t have anything set up for let’s say, if that field is not filled out, so no one will get alerted if it’s not filled out. Now you can make Custom Properties mandatory. And you can prefill them with information as well. And I do recommend using those if it makes sense to. It doesn’t always make sense to but, usually it makes sense to that way you don’t run into fat fingering. You don’t run into typos you don’t run into weird spaces or capitalization problems. They’re just all symmetrical. So, what we’re gonna do is we’re gonna look for things that don’t have Custom Properties that we’re using in this test environment that are important. So, what we’re gonna do [mouse clicks] is we’re gonna stay on node because that’s what we care about, we’re gonna switch to the Advanced Selector again, because it is a little bit more gives you a little bit more flexibility on what you can pull in. [mouse clicks] Now, we’re gonna go to select fields and we’re gonna go down, we’re gonna go down down down this list. There’s a lot of things in here, but what we’re gonna look for is our Nodes Custom Properties, right there for us. Now we care about [mouse clicks] the decommission date and we care about [mouse clicks] the purpose. And so we’re gonna say, we’re gonna select one, and we’re gonna say Decommissioned_Date. And then, we’re gonna say is equal to. [mouse clicks] And then just leave it alone, it’s blank. Or we can say, we can come in here and say “Is empty.” Which we’re gonna use

It is empty, right?

So, we’re gonna come in here I’m gonna add another one, add a simple condition. So you can add an Advanced Condition you can add an And/Or block so you can be a little bit more flexible as far as how you’re doing this. And this looks exactly the same as your alert builder. So, if you’re already comfortable with alerts, this will be comfortable for you, we’re gonna add a simple condition. And, we’re gonna go back into our Custom Properties. And, for instance

If you’re not comfortable with the whole hierarchy here, you could always do a search, [mouse clicks] just want to point that out. But


We know where we’re going.

Yeah, I know where I’m going and also, for Custom Properties is helpful. It’s helpful if you have a bunch, I’ve seen environments that have hundreds of Custom Properties. So, having a list is a little bit easier to process when you’re trying to create these kinds of things, than searching for specific ones ’cause you might forget one that was created or you might come in here and look at this list and go, “Who made that? And what are they using it for?” [laughs] So, that definitely has happened. So, we’re gonna select our purpose [mouse clicks] and we’re gonna add that one and we’re also gonna say, “Is empty.” Now, we don’t want them both to be empty we wanna see when either one is empty. So, I’m gonna change this to an OR condition. But just notice that there’s also a must not and then there’s at least one child must not. So, this is like an AND NOT and this is an OR NOT. So we’re just gonna use OR. [mouse clicks] Switch it to an OR, gonna create our data source. [keyboard clatters] And we’re gonna call it, [keyboard clatters] Nodes with Empty CPs. Because that’s Custom Properties.


For me. If you might not know what that is later, but I’ll know what it is ’cause I’ve been using Orion for a very long time. So we’re gonna add our columns that again took us right in. So we want to know [mouse clicks] what node it is. And we want to know, [mouse clicks] hold on we can go in here and search, so we can say. [keyboard clatters]

So, as you’re searching, I just want to clarify for folks who are looking, what we did before we set the condition of what’s gonna get listed in the report. We didn’t say what’s gonna show up, what information. We just said that any node that satisfies this criteria again, if you’re familiar with alert triggers, then that is the alert trigger. But now what we’re doing is we’re saying “This is the information that’s actually gonna show on the screen.” The two don’t have to necessarily be the same thing.

Absolutely, absolutely. So, we’re gonna come in here and we say, we want to select our Caption, which is our Node Name. And we’re gonna select the two properties because we want to see them because if one is filled out and the other one is not filled out, then we still wanna see that. So, [mouse clicks] we’re gonna add them. I wanna talk about something else here. So, before you saw me come in here and rename your columns. So, you can rename any of your columns we know that now already. [mouse clicks] So, I’m gonna come in here and again, rename this to make more sense for me. [keyboard clatters] I’m gonna rename it Node Name. And then, I wanna talk about some of these other options real quick. So, we have these display settings here. This is really useful. So, what we’re gonna do is this amazing little thing, right here Details Page Link is gonna automatically create a hyperlink on our Node Name to take us to the Node Details Page. And

I’m so glad you showed that.

It’s wonderful. And you can do that as well, on our previous report, we talked about interfaces, you can do it for interfaces. Anything that has its own details page, you can automatically add that Details Page Link, and it’s gonna pull it through SWQL on the back-end, which is awesome. So we’re gonna add that there are a couple of other options there as well but that one is, I think the most useful and most important for being able to manage things through reporting.

It also means that if this report isn’t just showing up on a NOC screen that is sort of, look don’t touch. That, if this is a page that people go to that things become clickable, and so that


People can go through. And it’s not just, again, like you said the Node Name, it can also be the Interface or even, CPU or any of those other elements. So you can see a report that is displaying a list of problematic elements or things. And people can get right to work going to those things and updating them or fixing them or changing them. Sorry, I just had to

Absolutely. So, you’ll notice there’s a couple of other things. You can allow HTML tags that’s a little bit more advanced. I’m not gonna get into it. You can hide the column. So, if you want to have it for while you’re looking at it, while you’re making it but you wanna hide it for the eventual final report, you can choose to hide it but leave it in your report. And you can–

Or for sorting.

Or for sorting, exactly.

It’s also really good for sorting. If you want to sort by like say date, but you don’t want them to see, or grouping. But you don’t want to see it, you can have it there, it’s sorting or grouping, but it doesn’t show. Sorry, just go ahead.

Absolutely. [mouse clicks] And then, this is not relevant to what we’re doing right now. But you have data aggregation options, which are, Count, Min, Max, and that kind of thing. I don’t care about that for what we’re doing with this report. [mouse clicks] So, I’m not gonna add anything there. And you can also do some basic formatting for the visual aspect of your report. You can change your column widths you can change your alignment for each field, and why you might care about that, especially if you have a lot of fields coming into one report. Like, if I had let’s say 10 columns trying to come into this. It’s gonna try and autofit it as best as possible. But this might come in handy if you’re using like, if you wanna do something that goes up on the NOC screen and that’s gonna be a wider screen. You might wanna adjust those column widths to make it fit better on that screen. And also you can use it for many other things. So like, if I was using a field that has very small, it’s like a single digit or double digit number in it, I don’t need it to be as wide as my Node Name field. I don’t need it to be the same width. So, I might come in here and make some little adjustments to make it look better. So, I just wanted to mention those real quick. And then, you have some more fields down here so if you needed to create a top report, top 10, top 50, whatever. Or if you wanted to do a percentage of that, then you can do that as well. And then, [mouse clicks] we have sorting and grouping, which Leon mentioned. You can use that, it doesn’t have to be hidden columns it can be any column in the report, in the table, any column and the same for the grouping. [mouse clicks] I’m gonna go ahead. [mouse clicks] All right I was gonna group by and I’m not gonna group by and the reason for that is it’s gonna change, it’s gonna alter what the report looks like. I’ll just show you real quick what I mean. So, if I preview this resource, with the fields as they are with no grouping and no sorting. It’s just gonna show them in a kind of like a flat format. Now, if I go back and I want to sort because I need to sort I wanna sort by Node Name. And, ascending is fine you can change it to descending as well by just clicking it. [mouse clicks] And then if I create a group by, [mouse clicks] that’s gonna change the way my report looks a lot. So now it’s very spaced out. And for this report, I don’t wanna do that. But if I was pulling a bunch of different metrics, let’s say I wanted to have my device name and then I also wanted to pull all of the interfaces group by is super useful. So you can show each of the interfaces under the nodes. But, for this report I’m not gonna do with the group by I just gonna do the sorting. So, we’re gonna just delete that, super easy. [mouse clicks] And, and once again we’re gonna name it [keyboard clatters] And SUBMIT, and it’ll take us back to our page. And, we’re gonna name our report again. [keyboard clatters] And, the reason why I name all of these things which seems kind of redundant if you’re just doing a single resource and a single report with a single datasource. That thing, it seems kind of redundant and you may think that and you may not bother with the renaming of them. But once again, I do like to have them named so that way in case I later decide I wanna add columns or I wanna add content, I can know what the differentiating factor is there. [mouse clicks] And you’ll notice, I didn’t mention this earlier but you can change your logo, so it automatically defaults to the SolarWinds logo, because it is your SolarWinds Orion instance. But if you wanted to change that to your company logo, you can definitely do that as well. And, I kind of skipped past all of this stuff earlier. And I’m just gonna take you through a couple of the options. So, first it will take you through a preview of what your report is gonna look like. And you’ll notice that these node names are blue ’cause they’re hyperlinked. And, then you can hover over them until, you know where it’s gonna take you. And it’s gonna take you to each of those Node Details pages. And you’ll see some of these fields have information, but they don’t have information in the other fields. So, our report is doing exactly what we want it to, it’s telling us where those fields are not filled out. Now, I might not care about particular devices because I don’t need to alert on them for that particular alert or what have you. But, you are gonna probably care about some of them if you’re using your Custom Properties in that fashion. So, [mouse clicks] we’re gonna go back go to the next page. And the next page is gonna take us into a couple of options here. You can give your report a description. If you’re making a report that isn’t gonna make sense to somebody else or that, you know you’re gonna be transitioning out of your position in a few months, or you’re preparing to transition to another person. I’ve seen this a lot, companies get shuffled around most likely, SolarWinds admin is not your only job. So there’s gonna be more than one admin or you’re gonna be transitioning those responsibilities to somebody else. And in those cases, you may find a report description extremely helpful or if you, are gonna come back to this report at a later date, and then look at it and not know what it is you definitely want to have


That report description filled out. And you can

Right. We’re back to like, help out future you by explaining you have present you explain to future you what you were thinking when you did this. But the reality is that we all as IT pros, I think, understand that documenting what we’re doing and why, you can put in


Who requested this. When they requested this. ’cause a lot of times we’re not, as monitoring engineers we’re not generating reports, just for the fun of it. We’re generating because somebody made a request.


So you can say who the requester is. And, when they asked for an edit, and that way when they come back and say “But I don’t understand, how come that data element is in there?” Or, “How come it’s not in there?” And you can say, “Well, if you look at the description you can see where, you said I hate that column, it’s ugly or whatever and I took it out and now you want me to put it back and please make up your mind.” Or whatever.

Yeah, absolutely. And I’ve used it kind of in that fashion as well especially as a contractor coming into an environment that I don’t own. So, I’ll come in there and write created by Chrystal for so and so. ‘Cause usually I’ll have my own account so, it’ll be marked that I’m the creator of this report. But if I created it for a specific purpose, or I created it for a specific team or anything like that. I like to make sure I come in here and put that in report description. Because once again, if someone comes in here later or as a contractor you’re not gonna be there forever, most likely. So, eventually when the contract is up or they’ve moved on to something else, then they’ll be able to come back in here and say, “Oh, I know what this was doing. I know what this was for.” if they ever need to edit it.

Right. And one more thing that actually we mentioned right at the beginning of this episode but it’s important is you can share your reports on the Content Exchange.


So, if you put in the description, created by and here’s why, and here’s what the purpose was, then, you get a little bit of credibility and you get your name out there too. But also people who are browsing through the Content Exchange, really understand what this report is supposed to be doing.

Oh, absolutely. And as Leon and I were both THWACK MVPs before we joined SolarWinds as employees, I think we both would say that the community is a fantastic place. And there are a lot of things out there that you can find either on reports or anything like that in the Content Exchange to pull into your environment. Don’t reinvent the wheel, don’t make this harder [laughs] on yourself, if you don’t need to.


I mean, it’s time-consuming sometimes. And you definitely don’t always need to do that. And we have a great community, a great MVP space, and lots of people helping each other out. So, definitely recommend checking that out if you have not.

Yes. [mouse clicks]

A couple of other things that you can have, as I mentioned, Custom Properties are useful everywhere. You can also add Custom Properties to your report. We’re not gonna do that today. You can change the report category. So, if you wanted to put it in a specific section, there’s all of your report categories that already exist, are here, or you can add a completely new one. So if you wanted to say, create server team reports or something like that to make it easier for new hires, or new SolarWinds admins to understand what it was created for or what team or anything like that, you can come create new categories. [mouse clicks] And, you can also add limitations. So, if you wanted to by default, there is no report limitations. But you can add categories. So if you wanted to say, again, I’m gonna reference this again if you have different teams that are using SolarWinds, and you have them limited by what they can see. So like, if your server team is in there they and I’m gonna say should they should only be able to see their equipment there is absolutely no reason for them to see the network equipment or be able to fiddle with it in any way. So, if your server team is in there and they have their account limited already, so they’re not seeing the rest of the stuff. You can also limit what reports they can see so they don’t need access to networking reports or anything like that. Then you can put a limitation in there. You can categorize your reports, put them all together in specific spots and then say, “Okay, you get these reports and you get those reports. And you don’t need any other reports.” You often have a lot of people that can see your SolarWinds data but they aren’t admins and they shouldn’t be

Yeah, and limitations on their own is a much larger topic you can put limitations


At the account level. You can put account limitations at the view level. You can put limitations at the report level and they can stack. But the idea is that, if you build a report, they will obey account limitations.


You don’t have to put them in here also. But at the same time, you can make a report that is incapable of showing like you said, network equipment no matter who’s looking at it, or whatever. And that way, and that allows you to do things that you might not be comfortable or want to do as the filtering, the dataset that we did at the beginning of this example.

Absolutely. Absolutely. Lots of options. [mouse clicks]


Which, can be part of the problem it can be overwhelming. So, Leon mentioned also that you can schedule your reports. So I just wanted to quickly show you can set up a schedule. So by default, it’s always set to not schedule. But if you wanted to set up a schedule, then you can assign the schedule so some that are already created, or you can create you can create preformatted ones so it just has


Like a very basic send it every day at 7 a.m. or whatever, and you can assign that schedule to as many reports as you want. Or you can create individual schedules for the individual ones. And that, is that schedule assignment looks very similar to the one that you have set up for your alerting schedules. So it should also


Be familiar to you. I’m not gonna get into the nitty gritty details of that [mouse clicks] ’cause that is not what we’re doing today. [mouse clicks] So, I’m just gonna say “No schedule needed.” [mouse clicks] And, then it takes us to a summary where it shows us everything This looks very similar to your alert creation summary as well. Where it shows you what you did shows you all the things that you created, and then, you can preview it again if you want or you can click this box here to show the report after saving. So, we’re gonna go ahead and do that. We’re gonna show the report after saving and it’s gonna take us into our created reports. And from here, we could just go into those individual Nodes and then go populate those Custom Properties or we could keep this on a separate tab and go open up our Manage Nodes page and go do a bunch of them together or our Manage Custom Properties page. And edit those a bunch together so that we can get that up to date and hopefully clear off this list. ‘Cause we wanna keep our Orion instance clean. So now we’ve shown you two reports that use the Custom Table resource. And, I’ve gone through a little bit I got a little bit more advanced and showed you a lot of the features that are available out of the box with the reports and what you can kind of modify. So, I wanna get into it a little bit deeper. I’m not gonna go over those tacks again, I’m going to go into a little bit more information. So, I kind of skimmed over a couple of things earlier and I wanna show you those things. So, we’re gonna go create another new report. And this report,

Another one.

Yes, another one. And this report, I’ve kind of stylized capacity issues. And, it’s designed to kind of just show us what we’re working with. So, what we’ve got here is, I kind of skimmed over the fact that there’s all of these categories here in our resources and I just used the reports one. And I will say that nine times out of 10 when I create a report myself I use these two resources. But there are a lot of other options. So, I wanna show you a couple of the other options that we have here. And what you wanna do. So, what I’m gonna first do is I’m gonna search resources. And I’m gonna look for capacity because I bet there’s some prebuilt things that are used for that. So what you can see is here, this is a bunch of stuff we have already already prebuilt resources. You’ve probably seen resources that look exactly like these, when we look at our preview of a report on here, Node details or your Interface details. Or, any of those pages are gonna have something like this on them. You can see already we’ve got Node Capacity Forecast that’s gonna be on your Node Details Page. You’ve got Interface Utilization Forecasting also on your interface Details page. So you can use those resources also in your reports. So, we are going to use [mouse clicks] top 10 capacity problems. We’re gonna use Top XX and we’re gonna make it 10 [mouse clicks] because I don’t want more than 10. That seems like too many. So this time, it didn’t automatically take us into the Edit resource, you’ll notice ’cause it’s prebuilt. But, I wanna go in there so you can see if there’s options and what those options are. So these prebuilt ones. So we can say, “Oh, I don’t wanna see all of these metrics I wanna see CPU and memory and disk. But I don’t need to see Interface information.” Or vice versa or anything like that. You can also filter it. So, if you want to show specific, specific Interfaces or specific Nodes, or if you want to filter by Custom Properties, you can do that as well. [mouse clicks] And your filter examples are there

And if you’ve ever Sorry, if you’ve ever edited any of the resources that are on the summary screens that Show Filter example should be familiar. And if you haven’t, that’s where you’ll also see it. These are simple


Filtering things that actually have a lot of power built into them. You have to play around with it a little bit. But there’s some really cool effects that you can get just out of those simple filters.

Absolutely, absolutely. And, there’s many prebuilt resources I really would give you the recommendation to take a little bit of time to see what prebuilt resources you can build into your report. Once again, I am not a fan of reinventing the wheel so, if it’s already been created and I don’t need to go through all the hard work of recreating and figure out how those database tables are tied together, so I can pull the data together I’m not gonna. Also, they’re usually the prebuilt ones are usually very pretty. And you may not get something as good looking out of the Custom Resource, because it’s not gonna do all that formatting that SolarWinds has already done for you. So, I just renamed it, it was called Top XX. It’s doing 10 events, I can change that number if I like, but I’m not going to. And I take out the XX and I’m going to change it to 10 so that we know exactly what we’re doing. And I’m gonna SUBMIT that. Now, I also want to add I also want to add [mouse clicks] another type of resource that I didn’t go over. So, here you have these page formatting. [mouse clicks] And in here, you can add blank spaces to your report. Now, why would you want to do that? So, I can think of a couple of reasons why you would want to add blank spaces. If you wanna break up the data a little bit, so it doesn’t all run together, let’s say you put two Custom Tables right one on top of another on top of another, well, that data might seem like it’s gonna run together really easily. So, it might make sense to add a blank space to kind of give yourself a visual differentiation between those two resources. So, we can add a blank space I’m gonna add a short blank space here. [mouse clicks] And then, I’m gonna add another resource. But, because I already showed you how to do the Custom Table resource, I’m not gonna show you how to do this one. But what we’re gonna do is we would add here another resource and add a Custom Table resource to it. And we’re gonna get some more information on those interfaces. Now, you can also change your page layout here. There’s lots of options for formatting, ’cause we want pretty good looking reports. [mouse clicks] And of course, we would rename everything, give ourselves a subtitle if we need it, go through and create a schedule if we need it, and then we would see our summary. So, I’m gonna go ahead and jump to the finished report. [mouse clicks] And this is our Capacity Issues report. Now, you can see this resource that they’ve built. Gorgeous. It’s got coloring, it’s got links already premade. It’s got a lot of information there that maybe we didn’t need or we weren’t gonna be able to pull very easily. Would take a lot more work for me to go create this by myself. Rather than just adding it to the page. And then, we’ve got our blank space so we can differentiate between the two resources. And we’ve got another report here. So I added a Custom Table for disk over 95% utilized. So, I wanted to care about this capacity problem that I was having. And we also have, links to those individual details pages. So, now for our very last demo today I want to build one more report, just one more. [chimes] And, I want to go over something that I glossed over earlier. Which is going to be Custom SQL/Custom SWQL. Now, if you don’t know what SWQL is SWQL is the SolarWinds query language. And, it is fantastic and it makes beautiful things in the Orion website. You can also use it in the API to do that kind of work. So, there’s lots of information out there on that stuff already. And, I will say that because it’s built with SolarWinds in mind, a lot of times your resources and the data that you’re going to be pulling in is gonna be a lot cleaner and a lot prettier if you use the Custom SWQL resources instead of Custom SQL resources. And, I will also say that the transition to custom SWQL from custom SQL is not very difficult. And, Leon why might we want to use custom SWQL?

So, first of all, like you said, the transition if you know SQL, SWQL isn’t going to be much of a lift. But, the main reason that we tell people is that it’s future-proofing your queries. If you go with regular old SQL and I was a hardcore hair on the knuckles dragging on the ground SQL [laughs] coder for a long because it’s all you had. But the problem is that, as we develop our products as we expand things out we add tables, the schema changes and therefore


Your queries break. Because we move things around. It’s not just that we add a table in space, we actually move data from one place to another. And so your SQL completely breaks down. Whereas SWQL, that’s not going to happen. So that’s your primary reason for converting things over and converting your brain over to SWQL.

Yes, and I will say as someone who used to build things in custom SQL all the time, that exact thing happened to me. And that is why I started to switch to SWQL because, I was a part of I had created a bunch of custom alerts and custom reports that were looking at things and then we upgraded and that was when the alerts and the reports moved to the web console. And if you didn’t know that also changed on the database back-end. So they had few tables, and, everything was in a different spot and all


Of those things broke and, so I had to go rebuild them from scratch. So, if you can future-proof something, why wouldn’t you?

Exactly, I’ll also say that if you want to get started or get a sense of how the schema works under SWQL. The best way to do is to download the Orion SDK. There’s a whole studio there that you can browse through and find your tables and find your views and things. So, it’s not that hard, really.

Yeah, it’s not that hard and, don’t let it intimidate you. If you need to pull data, different datasets together from different tables that aren’t tied together, SWQL is a good way to go. We have lots of resources out there. There’s lots of great content put out there by community members that are already using Custom SWQL and do some crazy things. There’s some awesome stuff out there. And, it’s fantastic so you should check it out. So, once again we’re gonna create this new report and, I’m gonna use the Custom Table resource but this time, I’m gonna use the Advanced Database queries SQL or SWQL selection. And I’m gonna leave it on SWQL but if you do if you are insisting on SQL because you think that it’s better or whatever I mean, I’m sure that lots of people can have the argument all day. You’re welcome to use SQL, you just switch over to [laughs] to SQL from SWQL. So, I’m not gonna show I’m not gonna get into the details of how I created this query, there’s like Lambda, there’s lots of resources out there. There’s [chimes] I’m sure there’s other videos on THWACK Tuesday Tips or on Lab or wherever that we’ve put out there on creating custom SWQL things. So, I’m not gonna get into the details of how I created this query. I’m just gonna paste it in here. And, we can preview right here to see if it works. [mouse clicks] Which it does. So, right now it’s pulling in

It does.

All of these fields. We’re gonna rename this and what this query does, because I need to tell you that. What this query does is, it is looking for CPU specifically so it’s not foolproof. CPU data that is not being updated. Now, why might you care about that? So, what I noticed many years ago is that, SNMP connection does not change your node status you can lose connectivity to a Windows machine out there or something like that where you’re using WMI or if you’re using, maybe a new firewall got put in and you’re not connecting anymore, but ICMP still gets through. So your status is still getting updated, but you’re not getting your statistical data anymore. And because you’re not getting that statistical data anymore, you’re losing all kinds of monitoring goodness. And we don’t want that. Now, this is a little bit different now, because you have the new changes to node status that came out in the 2019.2 release. So why create this that did not exist? I will say that. And, it has been extremely useful for me to find out when devices stop reporting via SNMP or WMI and then later when they added the agent via the agent. So, if we’re not pulling that information. I want to know and I want to go fix it. So that’s what

And there’s still I think, there’s still valid reasons why you would wanna get availability meaning up/down from Ping but you, obviously wanna know when it’s not collecting statistics. So there’s, even though we have the ability now to determine availability using SNMP, which would tell you when SNMP stops, there’s plenty of perfectly justified reasons why that’s not an okay solution in your particular use case. So this report still has, usable use, yeah, to do things.

Yes, do all the things.

Do all the things.

And, it’s just really an example for you to show what you can do. There’s a lot of different joins in here, there’s a lot of fields being pulled in from all over the place. So it’s really a good example for you, if you’re gonna start getting into it, of what it’s doing. And what kind of functions and things can work. So, we’re gonna put that in there and then, we’re gonna create it we’re gonna, of course gonna name it. And then we’ll go through the all of the same rigmarole that we did before of adding columns. Now, when you do Custom SQL or Custom SWQL, the columns that are available to you are only gonna be, the columns that you pulled into your query. So, you’re not gonna have all of the options that you had before with just the Dynamic Query Selection. Because, it’s no longer tied in the same way. So it’s only gonna pull what you specifically pull in. So, anything you can think of that you might want to see in your report, go ahead and pull it into your Select Query.

Well, and I’m gonna say, DIY is DIY. And, what that means specifically, if you look down to below you’ve got the Caption, the Node Name but you also had to pull the URL for that, because if you want to make that caption clickable, you’re gonna have to have pulled in the URL along with it, you won’t be able to use any other option to bring that in. So that’s an example of what you’d have to like why you’d have to do that.

Right, and as mentioned, this is advanced. So, this is definitely the most advanced thing we’re showing you today. I will also point out that we are also pulling in icon so, you can see


It’s pulling in image files here. So that we’re gonna be using that. So, I’m not gonna go through all the rigmarole that we already went through I’m just going to jump to our finished report. And again, these are all available to you on the Content Exchange. [mouse clicks] Two, if you go to our final report, you can see we didn’t end up using that icon. Why not? Maybe I just didn’t feel like pulling it in. Maybe I want to later, you don’t know. So, what we’re doing is these are what they are. This is the collection type. So, if we had things that weren’t reporting anymore, that were SNMP, or whatever. Then, you can come in here and change or you’d see what kind of type of collection is doing. When was the last time that we got information from it, and what is our status description. So, you can see this Node status is critical. And our CPU load threshold is critical. But, the threshold is critical even though it’s no longer collecting data. So that’s very interesting. And a way of keeping a clean house as I like to say, and that’s what most of these reports have been about, keeping your SolarWinds house clean. And I think that’s very important for keeping your monitoring data good and clean and effective because nothing irritates people more than getting continuous alerts from things that don’t matter or they don’t care about. [laughs] They will start putting those in a special box inbox folder and they will no longer be paying attention to them and then, they’re gonna yell and scream at you because they didn’t get their notifications that they needed. Well, they probably did


It was just lost somewhere in the noise. So that’s really what I wanted to show you today. Just a couple of tips and tricks on making your reports a little bit better. And please feel free to ask any questions of us in the chat. We’ll hang out for a little bit. And, that is our final demo. [mouse clicks]

This is fantastic. Thank you so much.