I got excited the other day. Very excited. “Big Idea” excited. That’s right, I had a Big Idea, and in that moment of Kramer-esque Zen I could clearly see what I was destined to build with Operations Manager. Alas, in order to build it, I would need to make customizations that I was not sure were possible. So, I hit up the Operations Manager SQL newsgroup and asked:
How do I create a custom discovery?
See, Operations Manager, while it is built on the idea that you can monitor anything, also has a similar concept, and that is you can discover anything. It makes no sense for you to be able to monitor something that cannot be discovered, does it? So, I wanted to discover something that I was not able to “see” anywhere.
I received a kind response in a short amount of time and was directed to the Operations Manager Authoring console. Authoring console? Wonderful! This should solve everything! Or make my life miserable for two days. Really, at that moment, I figured it could go either way. Shame that it went the way of the latter option. And here I am, blogging about it, in the hope that someone reading this will be able to point me in the right direction.
Honestly, the Authoring console looks great, it really does. The problem with it is that you seemingly have to start from scratch and build up your Management Pack (MP). Now, contrast that with the custom MP’s you build in the Operations console. When building there you essentially are extending some of the sealed MP’s, right? Well, that is what I really want. I want to export the MP I have already spent a year building, open that in the Authoring console, and extend it further by doing things the Operations console does not allow. Say, custom object discoveries.
Yeah, I know, it was a pipe dream. When I tried to export and open with the Authoring console I was greeted with a nasty error, telling me that a referenced MP could not be found. Well, not a problem, I suppose, except that I cannot get the *.MP file that it is looking for, because I cannot export a sealed MP. Usability fail.
Okay, let the hack job begin.
I decide that I could look to build another monitor using property bags and piggy back off the other monitors I have been building. It should work, but it is not my preferred choice. What about custom attributes? Well, If i try to create a custom attribute to the SQL DB Engine, it wants to look for a registry key or use a WMI query. Anyone know how to use WMI to get at database objects such as a list of stored procedures or tables? If you do, kindly shoot me an email. Thanks.
So, I have a couple of options but dammit, I want to do this correctly! I should be able to simply extend the current SQL MP’s to include the discovery of objects such as tables and save that to the current custom MP I have been building. The way things look right now, it is as if I will need to rebuild my MP from scratch, which is not something I am looking forward to. Mostly because I have no idea how to get started. I found relatively few examples on how to get started authoring MP’s. What I need is a guide that walks through customizing something that already exists, such as MS SQL Server. Sure, I could try to build that myself, starting from a base entity class and working my way up (or is it down?), but I do not believe that is the correct approach. Surely there is someone else out there that has started authoring their own SQL MP using the Authoring console.
Right?
Anyone?
Is the caller there?
I feel…so…alone. Which is very weird, since I usually feel so connected.
<heavy sigh>
Not sure about WMI, but to extract info from SQL (such as tables and sps) you should be querying SQL directly… probably this kind of discovery can be done more easily by wrapping your query logic with a script calling ADODB objects. The discovery SHOULD target the “DB” class and discover the “TABLE” class contained therein, for example.
This article from Steve should get you started on discovery based on SCRIPTs: http://technet.microsoft.com/en-us/magazine/cc983816.aspx
If you can script it, you can discover it, usually.
Hope that helps a bit.
Thanks Daniele. The point about WMI was regarding the creation of a custom attribute, you get two choices, neither of which was helpful.
Stefan posted an answer for me on his blog, and I think I should be able to continue with my Big Idea.