Home » Operations Manager 2012 » Orchestrator dashboard in Operations Manager 2012

Orchestrator dashboard in Operations Manager 2012

When you start utilize Orchestrator to integrate between services and execute workflows you soon realize that you need to get an overview of what Orchestrator is actually doing. With the Orchestrator management pack for Operations Manager 2012 you get a good foundation of monitoring the Orchestrator infrastructure, but not that much about what Orchestrator is really doing. If Orchestrator is integrated with Service Manager most runbooks will run as an activity in a work item in Service Manager and then we can use Service Manager Reports to review what has been executed. In this example I will show you how you can build a dashboard in Operations Manager 2012 to show what is going on in Orchestrator.

With Operations Manager we can run a VB script and return the result as performance data. We can then use reports, performance views or dashboards to look at the performance data. In this example I have created a number of rules that runs VB scripts every 15 minute. Each script query the Orchestrator database for some information and sends the result back as performance data to Operations Manager. Some of the rules could be merge together to one SQL query, but as this is only an example and not complete management pack I did not re-wrote that. In Operations Manager I have created a dashboard to show the data.

Each script have an override controlled parameter, Script Arguments, which input Orchestrator database server and Orchestrator database name to the script. My example rules use a run as profile named “Contoso – Orchestrator – DB read account” to configure which account to use when query the Orchestrator database. With default settings, in this example, each query runs every 15 minutes and ask for data for the last hour.


My example dashboard includes five widgets, each widget show a number of performance instances.

  • Queue
    • Pending Jobs, show number of runbooks with pending status, meaning they are waiting to start
    • Top minutes in queue, show number of minutes top 1 job have been in the queue.
  • Runbook Results
    • Success, show number of runbooks that have ended with success result
    • Warning, show number of runbooks that have ended with success result
    • Failed, show number of runbooks that have ended with success result
  • Runbook Jobs. This widget show number of times each runbook have run with success result. You can easy see which runbook that most often executed. The names you see is the name of the runbook.
  • Orchestrator Server Status, show status of my Orchestrator roles. In this sandbox all roles are on the same server, SCO01.
  • Orchestrator Alerts show alerts generated by my Orchestrator machine.

You can download my example MP here, NOT SUPPORTED – Contoso.Orchestrator – v2 . Note that this is provided “AS-IS” with no warranties at all. This is not a production ready management pack or solution for your production environment, just a idea and an example.

As always, big thanks to Patrik for support and good discussions around System Center.

Other examples around scripts in rules, generating performance data, can be found here


  1. Hi,
    Thanks for reading my blog. I have used either CREATE ALERT, so create a SCOM alert with the SCOM IP. Or use a SQL db to log to, and then have SCOM to monitor the db. The log db can include a row with severity, and each time a runbook writes a log entry with warning or critical severity, SCOM picks it up and generates an alert. You can build a rule in SCOM to monitor the log db.

  2. Hello Anders – I know that this post is a little old but I am just looking into some MS Orchestrator Runbook Monitoring now that our environment is increasingly relying on the success of the runbooks running.

    Has there been and further development or suggestions regarding monitoring the health of runbooks via SCOM?. I have read a number or posts including this one suggesting A SCOM management pack or to Enalbe Orchestartor to send Platform Events via SNMP traps to the event log and then use SCOM to monitor the event log.

    There are obviously a few ways to do this – what is your preference and what have you found to be the most informative, reliable etc. Primarily for sending events on Runbook Failures and Warnings.

    King Regards


  3. ӏ don’t leave mаny responses, hß‹wever after reading É‘ fеw of the remarks ɦere Orchestrator
    dashboard inn Operations Manager 2012 « http://www.contoso.se. І do have a couple oof questiopns
    fοr you іf you do not mind. Could it be jսst me orr do soe of
    tɦese responses appear loke tɦey are left bby brain dead folks?
    😛 Αnd, if yoÕ½ are writing at additional social sites, Ó€
    would likе to keeƿ up with eѵerything fresh yοu hɑve to post.

    Would you list of all οf all үoսr social community pagеs llike
    youг Facebook page, twitter feed, or linkedin profile?

    my weblog

  4. hi Anders,
    I watched your presentation on Orchestrator and have a question..great !!
    We are looking at Orchestrator and runbooks to use as our environment automation to install SQL Server and configure them to our standards. is this something you can recommend we used orchestrator for?
    thanks in advance, hope to here from you soon


  5. Very cool. A couple of notes:
    The Contoso – Orchestrator – Perf Collection – Minutes in queue is actually set to 15 seconds, not 15 minutes (900 seconds). Make sure to override (or just change since it’s unsealed) right away.
    The minutes in queue rule is not very useful if you have any monitor runbooks started, as it will show the time since they first started. To exclude them, change this line in the script:
    Set results = sqlConnection.Execute(“SELECT TOP 1 [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.Id, [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.ParentId, [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.ParentIsWaiting, [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.StatusId, [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.CreationTime, POLICIES.Name, DATEDIFF(MINUTE, [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.CreationTime, GETUTCDATE()) AS QueueTime FROM [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs INNER JOIN POLICIES ON [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.RunbookId = POLICIES.UniqueID WHERE ([Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.StatusId LIKE ‘1’) ORDER BY QueueTime DESC”)
    to this
    Set results = sqlConnection.Execute(“SELECT TOP 1 [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.Id, [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.ParentId, [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.ParentIsWaiting, [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.StatusId, [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.CreationTime, POLICIES.Name, DATEDIFF(MINUTE, [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.CreationTime, GETUTCDATE()) AS QueueTime FROM [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs INNER JOIN POLICIES ON [Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.RunbookId = POLICIES.UniqueID WHERE ([Microsoft.SystemCenter.Orchestrator.Runtime.Internal].Jobs.StatusId LIKE ‘1’) AND POLICIES.Name NOT LIKE ‘%-RUN-%’ ORDER BY QueueTime DESC”)

    Replace -RUN- to whatever your naming standard is for runbooks that start with a monitor activity.

  6. […] The query will show you all runbooks with a name including -ON- which don’t have a running job (status equals 1). If all your monitor runbooks are running, then there should be no result. You can then use a rule or monitor in Operations Manager to monitor this, like I do in this blogpost and you can add this to your Orchestrator dashboard. […]

  7. Hi, thanks for reading my blog. Sorry dont have any good insight into that event ID, but try post it on the OM12 Technet Forum and I think you will get help, else send me a e-mail

  8. Dear
    At the first I appreciate your beneficial article. I wrote my own MP with its rules and a dashboard .My dashboard (with performance widget) worked fine. I tried to import MP many times but after a week an issue has occurred and my dashboard has been very slow and raised the following error in Windows Event :26319: “…GetDataWarehouseStoredProcedure….”
    My MP Properties:
    MP Type: unseald
    Rule DataSource: CookDown Type
    I’d appreciated it if you help me to solve it ?Is there any solution to change Dashboard datasource from dwr DB to opr DB?

  9. Hi ,

    Could you please help me.

    System Center VMM/how to set static IP in the Virtual machine using runbook

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.