Creating Custom Performance Counters in OpsMgr (Part 1)
Written by Mark Farrugia, Senior Microsoft Premier Field Engineer.
I recently switched disciplines in the Microsoft Premier Field Engineering (PFE) organization, changing from a Platforms-focused position to a System Center Operations Manager (OpsMgr) focused role. I discovered during my ramp up that I had questions on how to do some easy tasks, and that the answers were not always 100% obvious at first. For example, I recently wanted to report on the following counters in the Operations Manager console:
- \Processor\% Idle Time
- \Processor\% User Time
- \Processor\% Privileged Time
I assumed that the Windows Operating System Management Pack had collected all this data points, and that I somehow had overlooked it in the console. After going through the documentation and opening up the Management Pack (MP), I realized that the MP was not collecting the data points I wanted. In order to get the data that I wanted, I decided that I was going to open the authoring console and create my own MP to collect the data that I want. Here are the steps I completed to get the data points I wanted.
Install the Operations Manager 2007 R2 Authoring Console
Configure the Authoring Console
Create the Custom Management Pack
I’ll cover the first two parts in this post and detail the third item in my next post.
1. Installing The Operations Manager 2007 R2 Authoring Console
The authoring console can be downloaded from the Microsoft Download site, and is available in 32-bit or 64-bit variants. The one pre-requisite for the authoring console is that .Net 3.5 SP1 (231MB) be installed. The package is a standard MSI installation package with very little customization options.
2. Configure the Authoring Console
Before we start the console there is one step I like to do, and that is to collect all my installed management packs and copy them to a single directory. I usually go into “C:\Program Files” and “C:\Program Files (x86)” and do a search for “*.mp” in Windows Explorer. I take all the results and copy these to a directory I previously create like “C:\MP References”. I don’t know if copying these files are a best practice or not, but I find it easier than setting up multiple paths in the authoring console. The only downside to this method is that you have to ensure you update the MPs in your references directory when you update your environment.
Go ahead and start the Authoring Console now. It will start up and look very similar to the Operations Manager console. The first thing we need to do is configure the console. Go to the Tools menu and choose Options. On the General Tab there will be a couple of options we want to configure:
- Auto-Increment management pack version on save
- Custom Editor
The option to auto-increment the version number on the management pack on save is handy because it creates a crude version control, and can be handy when developing a pack.
The custom editor is going to be called upon when you need to go and edit the XML. In my example I use Microsoft Visual Studio, but you can use any text editor you like (e.g. Notepad).
On the References tab, we add the path to our folder that we created earlier with all of our discovered management packs. Click on add and navigate to “C:\MP References”. This folder will allow us to reference other management packs to utilize their classes, discoveries and other elements that may assist us in getting our tasks done.
Service Model is the area where we will define classes and relationships between classes that are unrelated but can affect health and referenced classes from other management packs.
Health Model is where we begin to get into defining discoveries, monitors, rules, tasks, etc.
Presentation hub is where you can build out views that would be visible in the console.
Type Library is area where you can build advanced workflows, such as a discovery and rule sharing a script that supports cookdown. Cookdown refers to a feature of Operations Manager 2007 where a single copy of a data source module is shared among multiple workflows to reduce overhead.
Reporting module is where we can define reports to be run against the data warehouse on different date points that we have collected.
Language Packs contains all the localizable content of a Management Pack.
Now that we got the OpsMgr Authoring Console installed and configured, I will actually go through the steps of creating the custom counters specified in my next blog post.