During a recent upgrade to SCOM 2012 R2 and UR1 and we started seeing issues with dashboard displaying performance metrics as shown below.

DashboardError.jpg

The details of the error are below:

Microsoft.EnterpriseManagement.Presentation.DataAccess.DataProviderException: An error occurred executing the command: [Microsoft.EnterpriseManagement.Presentation.DataProviders.Library!PerformanceDataProvider/ResolvePerformanceCounterSeries] in provider: [Microsoft.EnterpriseManagement.Presentation.DataProviders.PerformanceDataProvider, Microsoft.EnterpriseManagement.Presentation.DataProviders.Library, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35].Unable to execute stored procedure needed for dashboard.  If you just installed Operations Manager Reporting Server, please wait a while and try again.  This can also occur if the Operations Manager Reporting Server SQL Server is not started or inaccessible. —> Microsoft.EnterpriseManagement.Presentation.DataProviders.DataWarehouseException: Unable to execute stored procedure needed for dashboard.  If you just installed Operations Manager Reporting Server, please wait a while and try again.  This can also occur if the Operations Manager Reporting Server SQL Server is not started or inaccessible. —> Microsoft.EnterpriseManagement.Common.UnknownDatabaseException: The EXECUTE permission was denied on the object ‘Microsoft_SystemCenter_Visualization_Library_PerformanceCounterListByManagedEntityUsingContainerME’, database ‘OperationsManagerDW’, schema ‘sdk’.

   at Microsoft.EnterpriseManagement.Common.Internal.ServiceProxy.HandleFault(String methodName, Message message)

   at Microsoft.EnterpriseManagement.Common.Internal.MonitoringDataWarehouseServiceProxy.GetDataWarehouseStoredProcedureResult(String SpName, StoredProcedureParameterCollection param, IEnumerable1 columnFilter, Int32 timeout)

   at Microsoft.EnterpriseManagement.Warehouse.DataWarehouse.GetDataWarehouseData(String storedProcedureName, StoredProcedureParameterCollection param, IEnumerable1 columnFilter, Int32 timeout)

   at Microsoft.EnterpriseManagement.Monitoring.PerformanceDataReader.GetPerformanceCountersByObjectCounterInstanceManagedEntity(ManagementGroup connection, String perfObjectName, String perfCounterName, String perfCounterInstanceName, Guid[] managedEntityIds, Boolean getDistinctPerfCounters)

   at Microsoft.EnterpriseManagement.Presentation.DataProviders.PerformanceDataProvider.GetPerformanceCountersByObjectCounterInstanceManagedEntity(String perfObjectName, String perfCounterName, String perfCounterInstanceName, Guid[] managedEntityIds, Boolean getDistinctPerfCounters)

   — End of inner exception stack trace —

   at Microsoft.EnterpriseManagement.Monitoring.DataProviders.RetryCommandExecutionStrategy.Invoke(IDataProviderCommandMethodInvoker invoker)

   at Microsoft.EnterpriseManagement.Presentation.DataAccess.DataProviderCommandMethod.Invoke(CoreDataGateway gateWay, DataCommand command)

   — End of inner exception stack trace —

   at Microsoft.EnterpriseManagement.Presentation.DataAccess.DataProviderCommandMethod.Invoke(CoreDataGateway gateWay, DataCommand command)

   at Microsoft.EnterpriseManagement.Presentation.DataAccess.CoreDataGateway.ExecuteInternal[TResult](DataCommand command)

   at Microsoft.EnterpriseManagement.Presentation.DataAccess.CoreDataGateway.<ExecuteAsync>b__0[TResult](<>f__AnonymousType0`1 data)

 

Resolution: As soon as we added the permissions for the OpsMgrReader profile in the Operations Manager data warehouse the dashboards were functional again.

 

Thank you to Blake Wilson and Brent Jackson for their reporting this issue and tracking it down to resolution!