How do I know what objects to choose when building a custom report?

One of the most common (and most reasonable) questions I get during Operations Manager engagements is how to build reports for performance counter information. I’ve discussed on option which is available in a two-part series about “QuickReports” available at: http://blogs.catapultsystems.com/cfuller/archive/2010/09/21/a-practical-example-of-the-opsmgr-%E2%80%9Cquickreports%E2%80%9D-approach.aspx and http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/76012/Default.aspx. This works well if you have multiple servers that you want to create reports for but with each on it’s own chart. What is more common however is a requirement to have multiple counters for the same server on the same chart (or multiple servers with a single counter – such as % process time) in the same chart. For this approach, you need to know how to step through creating your own reports based upon the generic ones available in Operations Manager.

I discussed the steps required to gather custom counters, create a free disk space report, create a processor utilization report and more in this series:

 

Part 1 – Gathering Custom Performance Counters in OpsMgr

Part 2 – How to create a free disk space report

Part 3 – How to create a processor utilization report for a group of servers

Part 4 – How to create a custom performance counters report for a group of servers

Part 5 – How to make my custom report publicly available

Part 6 – How to schedule my custom report for delivery

 

The difficulty in most situations comes down to the same question: How do I know what objects to choose when building a custom report from the generic Operations Manager reports? The following is a good trick to identify the required objects and how to use them when building your own report from a generic one in Operations Manager. For our example, we will be adding the % Processor Time, % Committed Bytes in Use and the % Free Space for both drives on a server into a single chart in a report.

To identify what counters we are looking for, we can either use top level performance view in the monitoring pane or a sub-view of performance if we are using custom groups to scope our views as discussed in the four part blog series on How to use custom groups to simplify the OpsMgr Console for Server Owners. The sub-views are very useful when you are trying to create a report for a group which has specific servers which they need reporting on and there are large numbers of servers in your Operations Manager environment.

From this performance view, I can use look for option of “Items by Text Search Option” to identify specific counters for specific systems. We choose each one required for the report that we want to create and then change the look for option to “Items in the Chart” to display the counters which we are interested in. From this view we can expand fields so that we can fully see the Target, Object, Counter and Instance fields which will be required information for when we create our report from the generic Operations Manager performance report. The figure below shows these fields in the performance view once they have been selected.

image

We grab a screenshot of the information above since we will need it when we’re creating our report and now we open the Reporting pane, Microsoft Generic Reporting Library, and open the Performance Report. We use the approaches discussed in parts 3 or 4 of the series links above to create our new report (creating a new chart, new series, adding an object and a counter). However with the information above we now know what we want to enter when we create this report.

When we choose the Add Object button, enter the Target information from above (Object = Target). So in our case we type “Microsoftr Windows Serverr 2008 Enterprise” (yes, literally as spelled because that is what’s in the target field) [ shown below ]

image

From the list available, we choose the appropriate path which equals the Path shown in our performance view (Path = Path)

image

Next we browse for the Rule where we could search by the name of the rule or by the name of the counter (I prefer the counter). For the Performance object we choose Object from above (Performance Object = Object). So in our case we type Processor. Next we choose the Counter from the list which equals Counter (Counter = Counter). So in our case we choose % Processor Time. [ shown below ]

image

If required, we specify the instance as we need to do here since we have two drives which we want to monitor the free space on (C and E). So in our case Instance actually equals Instance. (Instance = Instance)

image

Next we perform the same steps for the remaining counters on the performance view screenshot and then run the report to validate that our data appears as expected.

image

Our parameters for the report are:

image

Summary: Want to create your own custom performance report from the generic performance report in Operations Manager but you don’t know what counters to choose? Pick them from the performance view, take a screenshot and then use the following mapping to put together your report.

Report view term Path = Performance view term Path [ Identical ]

Report view term Object = Performance view term Target

Report view term Performance Object = Performance view term Object

Report view term Counter = Performance view term Counter [ Identical ]

Report view term Instance = Performance view term Instance [ Identical ]

An example of the performance view with the report terminology listed on it is shown below for visual reference.

image

0 thoughts on “How do I know what objects to choose when building a custom report?

  1. Avatar of Andreas ZuckerhutAndreas Zuckerhut

    The real fun starts when the Performance object is based on an Instancename and there’s a wildcard in it. Which is commonplace for SQL DB Counters.

    The problem is that they don’t make any sense like “MSSQL$Whatever” or “MSOLAP$Whatever”. Sometimes you are lucky and it says “SQLSERVER:Countername”, and it works properly. Even though the instancename and therefore the Performanceobject is MSSQLServer:Broker Statistics for example, which makes it confusing again.

    All I want is an additional PerformanceWriteAction module that just writes the performance data for the Server instead of writing it for the object.

    There’s just no need for SCOM-object-based performance reporting because at the end of the day they live on the same server and I can retrieve them with Object/Counter/Instance. Would make everyones life easier and I have the Instance anyway… there’s no need for another filter ^^

    I’ve talked to other people about it and their answer was: It’s so confusing, we gave up on using it.

Leave a Reply