Often times.... I hear about reports not showing any data. Especially ad-hoc performance reports.
When we run a report – we have to run the report against the same object type (class) that the data was collected from.
The problem is – “how do you know what object type that was???” This is a common issue, and makes reporting, while rich, very painful at first.
The best answer – is to search for the rule collecting the performance data, and find out what object it is targeting, then try and include that object in the report. This is often difficult to find….. and does not explain why this report works from the monitoring console, but not from the generic report library.
Here is why: I will use a simple perf counter of "Processor %Processor Time"
When you ran that report from the monitoring console – it automatically chose the Windows Computer object as the report target – but it added it “as a group” instead of “as an object”. We know this – because the “include” shows “all contained objects”.
When you are running a report manually – from the generic report library – you add the same Windows Computer object. And you click “Add Object” because that makes the most sense. However – you get no data returned.
This is simply because the rule you are looking for “Processor % Processor Time Total” is targeting a "Windows Operating System" class – not the Windows Computer. When you add the Windows Computer abject as a group, it adds the Windows Computer object, and ALL contained objects. The OS is a child object of the Windows Computer. If you look at a management pack guide - you will often see that most classes in a MP have a child relationship to the Windows Computer (or Windows Server) object class:
To make this a little easier to understand – when you run the report from the monitoring console (and get the data) – we actually show you the object instance that returned data:
This is the report from the console – see how it shows “Windows Operating System” and then the instance of it? This is the object you would need to pick to get data back.
So – in general – when creating ad-hoc reports – always try adding the Windows Computer object – as a group – and see if that is successful for you. As long as the object you are looking for is a child of the Windows Computer – it should work. If it doesn't - then spend a little time searching for the rule that collects the perf counter, and see what object it is targeting. Either target that specific object instance, or a class that is a parent, and add it "as a group".