Getting performance report chart data
Several customers asked us lately if there is a way of getting actual values the performance report charts are generated on in a tabular form. Even thought this is not possible in the Performance report it is in fact possible with the Performance Detail report.
Performance Detail report could be either run directly or as a drill down from the Performance report. The report shows detailed performance chart along with a summary table below. If you choose to display histogram in the parameter block a “Detail Table” link appears inside the summary table. The link allows you to see a value table the chart is based on.
Unfortunately in RTM version of SCOM the “Detail Table” link is disabled for non-histogram reports. However if you export this non-histogram report to Excel or XML format the value table will be exported as well and could be easily viewed or used in your custom application.
Comments
Anonymous
October 14, 2007
Hi Eugene, I need to create a linked performance data report for a MP of mine. Is there any documentation you can share for the ValueTemplate report parameter? It should be the parameter I can use to specify the perf counters I want to be plotted, rules, aggregation, and so on. Just to be clearer this is from the Exchange MP: <Data> <Chart ObjectJoin="AverageAll"> <Series> <Rule>$MPElement[Name="Microsoft.Exchange.ExchangeComponent.IS.RPCOperationsSec.Collection"]$</Rule> <Scale>1</Scale> <Type>Line</Type> <Color>63, 63, 255</Color> </Series> <Series> <Rule>$MPElement[Name="Microsoft.Exchange.ExchangeComponent.IS.RPCRequests.BaseLineCollection"]$</Rule> <Scale>1</Scale> <Type>Line</Type> <Color>0, 159, 0</Color> </Series> </Chart> </Data> ThanksAnonymous
October 15, 2007
Hi Daniele, Unfortunately there is no documentation I know of currently available on the topic. I am planning to post linked performance report guide on this blog however in a near future. Since this is the most complex report it will come last in the chain after Custom Event and Custom Configuration. If you have any particular questions I will be glad to answer them before the documentation is out.Anonymous
October 19, 2007
Hi Eugene, I have two questions for you:
- which operators can I have in the objectjoin property? I need to sum all the data I get from a rule (basically is an extenmsion to the Exchange MP that returns all the processed mails from tracking log across different exchange servers)
- I see I can specify the rule ID, can I further specialize the rule filtering on object, counter and/or instance? Thanks
- Anonymous
October 24, 2007
Hi Daniele,
- ObjectJoin could be either AverageAll or ChartPerObject. In your case I guess that you need AverageAll which puts all objects you select on one chart series by averaging rule values for all of them.
- You can further filter by instance for a specific rule. See my resent post about Performance Top linked reports.
Anonymous
October 29, 2007
Hi Eugene, actually I'd need to sum all objects data sets (not having an average) and I didn’t find a way to specify an object/counter filter in your post. I try to misuse your patience, this is my scenario. Scenario. I want to collect how many messages are processed by my exchange organization. On these I want to check for trends, business hours distribution, and so on. I want to start from an organization level and then being able to drill down to a single server. Solution. I run a collection script on every exchange server, the script collects the processed messages from exchange tracking log. I have several counters (i.e. SMTP IN count, SMTP OUT count, MBs, and so on). They’re collected by a single rule, sadly I must use backward compatibility given the fact that with the new performance data collection features I cannot specify the collection time (this is needed since the tracking logs refer to the previous days). Now I need to report on the collected data. What I’d like to have is a linked performance report that shows, for example, all the inbound SMTP messages for the exchange organization (i.e. the sum of the data point collected on each exchange server). Since I have a single rule I’d like to further specify the performance counter to report on. Can you help, should I renounce to use the standard performance report and build a brand new one or I have some hope?Anonymous
October 29, 2007
Hi Daniele, There is no object/counter filter in the report. You can only filter by Rule. Data warehouse requires 1 to 1 rule to object/counter mapping even though operational infrastructure technically supports collecting more than one object/counter value by a single rule. This is only a part of the problem however. Performance data in the data warehouse is always aggregated on hourly and daily basis and all reports run only against this aggregated data. When the data is aggregated it is averaged out meaning that in your case you have an average number of messages sent in an hour not a total number of them. That is one of the reasons why we actually allow only averaging data in the report, but even if we would have an ability to apply SUM in the report instead of AVG you wouldn’t be able to get correct results anyway because of the aggregations...Anonymous
October 30, 2007
Hi Eugene, I must disagree :-), while you're aggregating you're still retaining the max value in the period (hour or day), and immo it makes sense to sum the max values. More over I will collect just one data point per day per server per counter, so the daily aggregation works perfectly fine for me. Interesting the 1:1 relationship between a rule and a performance serie. Do you know a way to filter performance data returned by a backward compatibility script, so that I can maintain that 1:1 relationship and at the same time being able to use the cookdown mechanics so that my script is executed just once? Thanks for invaluable supportAnonymous
October 31, 2007
You can use the following strategy if you want to use "backward compatible" script producing multiple counters. Create rule per counter. Each rule will have your script as data source and "publish to the DW" write action. In addition to that add condition detection module that will filter the list of counters down to one. The complete rule would look like this (xml): <Rule ID="MyRule" Enabled="true" Target="YourTarget" ConfirmDelivery="true"> <Category>PerformanceCollection</Category> <DataSources> <DataSource TypeID="YourScriptBasedPerfProvidingDataSource" ID="DataSource" /> </DataSources> <ConditionDetection TypeID="SystemLibrary!System.ExpressionFilter" ID="ConditionDetection"> <Expression> <And> <Expression> <SimpleExpression> <ValueExpression> <XPathQuery>ObjectName</XPathQuery> </ValueExpression> <Operator>Equal</Operator> <ValueExpression> <Value>PutObjectNameHere</Value> </ValueExpression> </SimpleExpression> </Expression> <Expression> <SimpleExpression> <ValueExpression> <XPathQuery>CounterName</XPathQuery> </ValueExpression> <Operator>Equal</Operator> <ValueExpression> <Value>PutYourCounterNameHere</Value> </ValueExpression> </SimpleExpression> </Expression> </And> </Expression> </ConditionDetection> <WriteActions> <WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData" /> </WriteActions> </Rule>Anonymous
September 12, 2008
Hello Eugene, I am having failures on Audit reports whenever I run from a web browser but the same reports sometimes run when I RDP to the SSRS server and run them locally. See error below: An error has occurred during report processing. Cannot create a connection to data source 'dataSource1'. For more information about this error navigate to the report server on the local server machine, or enable remote errors Nap npagonor@up.comAnonymous
November 12, 2008
The comment has been removed