Creating Performance Reports in SCOM 2012

One of the things I constantly get asked about is how to create Performance Reports in SCOM. The truth is its really simple, so I’d guess that a lot of you reading this post will know the basics already. But for those of you new to Reporting, read on and hopefully this will be the definitive guide to answering your questions and get you into building some quick and easy reports.

Since we’re talking about Performance Reports, you’re going to need to be capturing the Performance Data. After all, if your Data Warehouse DB doesn’t contain the data then your reports are going to be blank.

So let’s start there.


My Example Report

To keep this post on track and as easy to follow as possible, let’s assume we’ve been asked to collect 2 performance collection counters for a group of servers. I’m going to use my Citrix Provisioning Servers as an example. I’m going to collect 2 counters…

  • Copy Reads Hits %
  • IO Data Operations (for the StreamProcess Process)

And I’m going to collect these 2 performance counters for a group of Provisioning Servers. Now there’s plenty of ways to effectively target servers but for the purposes of this post I will simply create a group, explicitly add my provisioning servers to that group and override my performance collections rules (which will be disabled by default) to be enabled for this group. I might reconsider this approach in the real world depending on the SCOM environment, but it’ll work fine for most deployments.


So the steps I’ll perform are as follows:

  • Create a Group called “Citrix Provisioning Servers” and populate it with the Provisioning Servers Windows Computer Object
  • Create the Performance Collection Rules (and have them disabled by default)
  • Override the Rules to enabled for the “Citrix Provisioning Servers” group
  • Create a Report to display these Performance Collection Rules.
  • Optionally, create a Dashboard to display these values in the console


Clearly we’ve got a bit to do, but its quite easy work…so let’s get cracking.



Create a Group

In the SCOM Console we’ll choose the “Authoring” window and select Groups.

Groups 01











In the actions pane we’ll choose “Create a New Group”.

Groups 02





This starts up the “Create Group Wizard”, we’ll first need to enter in a name for our group, along with a good description and finally choose which Management Pack we’ll save our group to.

Groups 03 - Name





















For the Management Pack, I’ll create a new one so I’ll click “New” and we’ll enter in a Name and Description for this Management Pack and click “Next”.

Groups 04 - New MP




















Now we’ll optionally add in a Knowledge Article here or we can do it in XML by following my steps outlined in this post: How to insert Knowledge into a SCOM Management Pack. I’ll skip it for this post and click “Create”.

Groups 05 - Knowledge




















Now our Management Pack drop down window has been populated with our new MP name, we’ll click “Next”.

Groups 06 - Added MP





















We have the option of using Explicit Members or Dynamic Members in our Groups and for this exercise I’ll use explicit ones. The general consensus is that using explicit membership creates less overhead for group calculations so it’s less resource intensive. Dynamic membership offers the advantage of automatically updating the group as objects that match your inclusion criteria are added or removed from your Management Group. Anyway, that’s for another discussion, so I’m going with Explicit and click the “Add/Remove Objects” button.

Groups 07 - Explicit








Now we’ll type in the name of our server or servers we wish to add and click “Search”. Once we’ve located the correct object we’ll click “Add” and we’ll see them listed under the “Selected Objects” section.

Groups 08 - Object Search




















Once you’re done, click “OK”.

You’ll see all of the objects you’ve added in the “Group Members” window. We’ll click “Next”.

Groups 09 - Explicit Added




















Here we can use Dynamic Members and I’ve already touched on why you might like to use them. In case you’re thinking along these lines then to add in Dynamic Members you’ll follow similar steps. Click the “Create/Edit rules…” button.

Groups 10 - Dynamic




















And enter in your criteria. Here I’ve added in a basic regular expression that matches a Windows Computer object with a case insensitive Principal Name (hostname) of anything that starts with “provserver”. So this would match “Provserver1”, “provserver1”, “PROVSEVER1”, “PrOVserver595” and so on.

Groups 11 - Dynamic Example
















Next we can include Subgroups inside this group if we like. I’m not going to do that, I’ll click “Next”.

Groups 12 - Subgroups




















We can also Exclude Members from our group. Not really necessary if we’re working with explicit members because we choose what we want to add to our group. But if your regex picks up servers that you don’t want to include, you can add those servers or objects into this window and have them excluded.

Groups 13 - Excluded



















We’re done, we’ll click “Create”.

Groups 14 - Create




If you chose to use Dynamic Members then it’d be a good idea before you get going to ensure that your Regex was correct and the group has been populated before moving forward, otherwise none of counters will run against the correct machines.

Just select the group and choose “View Group Members”.

Groups 15 - View Members







If you don’t see your servers/objects listed then check your regex is correct or those machines are in fact discovered.



Creating Performance Collection Rules

The next step in our plan is to create the performance collection rules that will be responsible for collecting the performance data. Obviously if its a common counter like disk or cpu or network activity then you might find those already being collected. Since the counters I chose for this example are a little more obscure then they probably aren’t being collected. Either way, its a good idea to check that you aren’t already collecting them.

So we’ll need to create a new Performance Collection Rule for each counter we wish to collect. If we want to alert on them then that’s a different story, we’d need to create a monitor there…but for this post we’re only collecting data for reporting.

In the Authoring Window, we’ll right click “Rules” and choose “Create a new rule…”.

Rule - 01 - Create a New Rule









We’ll first need to choose what type of Rule we want to create. I’ll choose a “Collection Rule” and select “Windows Performance”. Under the Management Pack drop down box I’ll choose the MP I created earlier when I created the Group. Then I’ll click “Next”.

Rule - 02 - Windows Performance Rule





















We’ll then need to give our Rule a Name and a Description and we’ll leave the Rule Category at a Performance Collection.

Rule - 03 - Name and Description





















We’ll then need to choose a Rule target. Often I see people on the internet or even in person asking can I target this at a group? The answer is yes, but no. Yes you can target a group, but no, it won’t work as expected.

If you target the group, then you’ll be attempting to grab this performance data from the group itself which is a singleton class that exists only on your Management Server. Instead we need to target a class like Windows Computer or something more specific.

So for my target I’ll type in Citrix Computer to be a little more granular.

Rule - 04 - Citrix Computer Class



















Now we can see my settings, the final thing I want to do is disable this rule by default by unchecking the “Rule is enabled” checkbox that way it won’t immediately go off trying to collect this data from every discovered instance of Citrix Computer.

Rule - 05 - Rule Enabled




















Now we’ll click “Next” and we’ll need to specify the performance counter we wish to collect.

Rule - 06 - Click Select



















Since the this window defaults to my local server, in other words my SCOM Management Server, I’ll need to either know exactly what to type in here to choose the correct performance counter, or we’ll have to connect to our server that does have the counters.

In my example I’m trying to find things specific to my Citrix Servers so it’s probably easier to connect to one of them. So we’ll click the “Select” button and type in the name of the server we wish to connect to.

We’ll then locate the Object (in my example the first perf object is cache). Then select the counter from the list.

Rule - 07a - Select Performance Counter














Now the information is filled it. Again, we could have simply written in the correct values if we knew them, but its probably easier to connect to the target computer and avoid any typos.

Finally we can set the collection interval from it’s default of 15 minutes to anything we like. I’ll set mine to a lower value to make for a bit more accuracy in my reports but we can change this if we like later on via an override…but its best to set the value right the first time if you can.

Rule - 08 - Counters Filled in





















The final step is to configure Optimization. If you want to reduce the amount of database instance space you can choose to collect values based on how much the data has changed. I’m not going to worry about this for now, I’ll choose “Create”.

Rule - 09 - Optimisation




















Ok that’s it, simply repeat that process for the second performance collection rule or any other ones you want to create. I’ll move onto the next step which is to turn this rule on, but only for members of our group.


Override the Rules

Now that our rule or rules have been created, let’s turn them on so they can start collecting data.

So in our SCOM Console we’ll locate our new rule and right click it and choose “Overrides –> Override the Rule –> For a group…”.

Override 01 - For a Group









We’ll type in the name of the group and select it and click “OK”.

Override 02 - Select Group



















Finally we will set this override to Enabled = True and I’m also going to set the collection interval to 60 seconds to make things quicker in my lab, again in the real world you’ll want to decide on what performance collection frequency is best for you.

Override 03 - Enabled True























Right, that’s done…remember to do this for each Performance Rule you want to be enabled.



Create a Report

Ok it’s time to create a Report. Let’s click “Reporting”.

Reporting 01







We’ll choose “Microsoft Generic Report Library” and select a “Performance” report then click “Open”.

Reporting 02 - Generic Report Library












This starts us off with a blank report window. Click the “Change” button.

Reporting 03 - Click Change














Since our report is blank we’ll need to add either a New Chart or a New Series. In fact, we’ll need to add both. If we click “New Series” it’ll add in a new chart anyway. So what’s the difference?

A New Chart adds in a new chart or a graph to our report.

A New Series adds a new object to an existing chart/graph.

I’m going to click “New Chart”.

Reporting 05 - Clicked Chart


















In the “Chart title” field give the chart a name. So remember, this Chart is in fact a Graph that will appear on our report. If we wanted to add more than one graph to our report, we can just click “New Chart” again. But first things first, let’s create one.

Reporting 06 - New Chart Title


















Now we’ll click “New Series” this is where we’ll add objects to our Chart. Note that our chart has defaulted to a Light Blue colour and using a Line Graph. Using the options I’ve highlighted we can change those to different colours or a different style of graph such as a column or area graph.

Reporting 07 - New Series


















Now we need to choose objects to add to our group and this is where things can get tricky. It really depends on what class the object you want to add has been targeted at. Remember we chose Citrix Computer as the class for our Rule. We could have easily chosen a parent class of Windows Computer. If you don’t know the correct class and you choose the wrong one you’ll find that your reports are blank. Rather than go into too much detail, here’s a great post from Kevin Holman explaining why this is the case…please read it.

So if you aren’t completely sure what class the data is targeted at, let’s choose “Add Group”.

Reporting 08 - Add Group or Object










Locate the Windows Computer object for the server we wish to add and select it from the “Available items” window. Click “Add” so it appears in the “Selected objects” window. Then click “OK”.

Reporting 09 - Select Object




















Now we can see our Computer Object is listed in our Series with the Light Blue colour.

Reporting 10 - Object Added


















Now we’ll need to choose which Rule we want to show data for. We’ll click “Browse”.

Reporting 11 - Click Browse


















And we’ll locate the Performance Collection Rule we created earlier.

Reporting 12 - Select Rule
















So what we have now is actually a completed report. It will only show 1 server and 1 performance collection rule but its ready to go.

Reporting 13 - Ready to GO


















But let’s add in our second server. We’ll click the “New Series” button as this will allow us to add a new line to our chart. This time, it defaults to a Dark Green colour (which we can of course change).

Reporting 14 - New Series



















We’ll locate our second computer just like we did before and assign it a rule. Now we have both servers added they will display the same rule’s data but be shown in different colours. We can now click “OK” and then run our report.

Reporting 15 - Server Added


















And here we can see our Finished Report which we can export to a PDF and email it and so forth.

Reporting 16 - Finished Report






















Very nice.

But let’s take this one step further. Let’s add a New Chart to our report. We’ll click the Show/Hide button to bring back our controls for our report.

Reporting 17 - Edit









We’ll click the “Change” button.

Reporting 18 - Change











We’ll click the “New Chart” button and give the “Chart title” field a value.

Reporting 19 - New Chart


















Then we’ll follow the same steps as before. We’ll add in a Group Object and find our Servers. Then we’ll locate the appropriate Counter. This time we’ll use the IO Data Operations (StreamProcess) counter.

Reporting 20 - StreamProcess
















There’s the first server added.

Reporting 21 - StreamProcess Added


















And now the second one. Notice how we’re building our report…we have two charts, each with two series.

Reporting 22 - StreamProcess Added 2nd Server


















Let’s run the report. This time we have 2 pages in our report.

Reporting 23 - 2 Pages










And here’s the second page.

Reporting 24 - 2 Graphs Final Report

















The final step is to save our report to a Management Pack once we’re happy with it. This way we can run it whenever we like or even schedule it to be run as often as we like. We’ll click the “File” menu and choose “Save to management pack…”.

Reporting 25 - Save to MP












We’ll give the report a name and a description and select which Management pack to save it to.

Reporting 26 - Saved it



















That’s it. But the final thing I do want to point out is that if you decide to come back and change this report in any way you can choose the “Publish…” option to save the report. Just remember that first you must run the report before you choose this option otherwise any changes you make will be lost. So make your changes, “RUN IT” then choose Publish. If you don’t run it first it won’t save any changes…just a little gotcha to be aware of.

Reporting 27 - Publish Changes











And if you choose to “Publish…” your reports you can change the name and description or just click “OK”.

Reporting 28 - Publish it








Well done, you’ve just built a report with 2 charts and 2 series each!



Create a Dashboard

The last thing I wanted to touch on in this post is creating a Dashboard view to visualize this data in the console.

When we created our MP back in our “Creating the Group” section, it also created a folder on our Monitoring Window. We’ll use that to create a new dashboard. So we’ll right click on our folder and choose “New –> Dashboard View”.

Dashboard 01 - Citrix Folder






Then I’ll choose a “Grid Layout”.

Dashboard 02 - Grid Layout


















Then I’ll give it a name and of course, a description.

Dashboard 03 - Name


















Then we’ll choose a layout…or in other words…how many widgets do we want to display?

I’m going to choose a 4 Cell layout here. Now I could have chosen a 2 cell layout and later on when I populate the widgets target my “Citrix Provisioning Servers” group, but that will add both servers to the same graph. Instead to make this a little clearer since I have only 2 servers, I’m going to choose a 4 cell layout and target each server individually. I think it makes the graph much cleaner. Either will work, you just go with whatever looks and works best for you.

Dashboard 04 - 4 Cell Layout


















Finally click the “Create” button.

Dashboard 05 - Summary Create


















And we’re done.

Dashboard 06 - Close


















Well we’re not really done. We’ve created the Dashboard but there’s nothing in it. Let’s fix that because right now we have a window that’s waiting for us to populate it with widgets.

Dashboard 07 - Click to add widget





















So we’ll click the blue hyperlink “Click to add widget”.

Let’s choose a Performance Widget and click “Next”.

Dashboard 08 - Performance Widget

















Enter in a Name and a Description for the Widget.

Dashboard 09 - Name and Description

















Then we’ll need to choose the Scope and Counters. Or in other words, select the target and the performance counter or counters. In my example I am targeting a server object because I only want a single servers data appearing in my Dashboard Performance Graph. I could easily target a group of servers here if I wanted all of them to appear in the same graph.

Dashboard 10 - Add Object

















I’ll click “Add” and locate the Performance Counter I wish to add.

Dashboard 11 - Select Object and Counter



















Then we’ll choose a time range. 24 Hours is the default, but you might like to show only an hour or two.

Dashboard 12 - Select Time Range






Finally we’ll need to choose what values we’ll show in our graph. For this widget I’m showing Target, Last Value and the Performance Counter.

Dashboard 13 - Chart Preferences















Here’s how those values would map to a graph.

Dashboard 14 - Chart Preferences and Chart








And we’re done…simply complete those same steps for any remaining widgets and you should be left with a Dashboard View that looks like this. Very useful.

Provisioning Servers IO Dashboard























Its been a big post and a lot of screenshots, but from start to finish we’ve seen how to build a group, collect data, build reports and display a dashboard. Have fun building your own!


No comments yet.

Leave a Reply