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 (10)

  1. Brandubh says:

    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>

    Thanks                        

  2. eugenebykov says:

    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.

  3. Brandubh says:

    Hi Eugene,

    I have two questions for you:

    1) 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)

    2) I see I can specify the rule ID, can I further specialize the rule filtering on object, counter and/or instance?

    Thanks

  4. eugenebykov says:

    Hi Daniele,

    1. 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.

    2. You can further filter by instance for a specific rule. See my resent post about Performance Top linked reports.

  5. Brandubh says:

    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?

  6. eugenebykov says:

    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…

  7. Brandubh says:

    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 support

  8. vitalyf says:

    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>

  9. npagonor says:

    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.com

  10. eugenebykov says:

    Unfortunately Audit reports are created differently than all other SCOM reports. They are not distributed thought Management Packs and they are using different connection mechanism including different security for the report generation. All standard SCOM 2007 reports use Unattended Execution Account to create a database connection, but Audit reports require direct Windows Authentication. For this reason there could be problems for you to generate reports depending which endpoint you do this from.

    I would recommend you to lookup or ask this question in Audit reports newsgroups.