Every now and then you’ll run into them – the ubiquitous online contest. And maybe you run into one that isn’t a scam, and put on by some big name companies – Marlboro, Microsoft, AMD, Best Buy – companies that you think ‘Hey, I probably have a good chance of actually receiving the item’.
Marlboro has one going on right now called “Flavor Chase“. They’re giving away one prize per minute from June 1st until July 31st. The prizes range from the low end (Mini Maglites ((217 given away per day)) ), to the middle area (Logitech Pure-Fi Anywhere iPod Speakers ((50 given away per day)) ), to the high end (46″ Sony Bravia XBR LCD TV ((One per day)), Dell XPS m1530 laptop ((One per day)), Washburn acoustic guitar ((3 per day)) and whole lot more in between. At the end of it all, they have 3 grand prizes – a Harley Davidson Night Rod Special, Dodge Challenger SRT8 or a Jeep Wrangler Rubicon.
You can enter once per day – and they’ll happily send you text messages and emails to remind you. That’s all fine and well – but what if you aren’t by your PC or phone for the day or even just plain forget?
SCOM can help.
How? It’s easy – SCOM has a management pack template called “Web Applications”. It is essentially a synthetic transaction recorder. Like it sounds, it will loop through a set of actions you do at timed intervals – specifically to gather performance information, but you can also use it to enter for you. Give it a shot!
It’s a fairly easy thing to setup, too. Go to Authoring, right click on Management Pack Templates, then click on “Add Monitoring WIzard”.
Now I’ll be writing this tutorial not using the Marlboro contest website. I’m in the contest, and just to be on the safe side I’ll do it the old fashioned way. Instead, I’ll setup a synthetic transaction that will go through a few google searches.
So right click on management pack templates, then click on “Add Monitoring Wizard”
Click on “Web Application” then select next
Next it will ask for some basic information, name the rule, give a description and place it into a management pack
Click on next and enter the url “www.Google.Com” and hit “Test”.
After it comes up successful, move to the bottom of the screen and adjust the transaction interval
The default of 2 minutes is probably a little too often – it won’t add much extra stress to the watcher node or to the website itself, but it will add a lot of extra information into the database – especially if you turn on extended performance monitoring. 30 minutes seems like a good interval to use, and I don’t like to go much shorter then every 15 minutes. Regardless, set your time and hit next!
The next page will have a general overview of what you’ve done. Excellent. Before you hit “Create”, click on “Configure Advanced Monitoring or Record a browser session”.
Hit create and it will crunch away for a bit and then pop up the Web Application Editor. Right now, we’re mostly interested in the far right pane listed as “Actions”. Under that pane, click on “Start Capture”
What should happen next is that Internet Explorer will pop up and give you a blank screen. What you probably don’t see if the Web Recorder browser add-in. Sometimes you can start your transaction and it will record, sometimes it won’t – so it’s best to see the Web Recorder to make sure it’s doing what it’s supposed to be doing. To show it, go to View > Explorer Bar > Web Recorder. Click it, and you should see the snapin.
That’s a little pro-tip right there, as I’ve seen many questions about the Web Recorder and why can’t I see it – and there you go, that’s how.
Now let’s start our session. I went to www.google.com, entered “Jeremy Pavleck” in the search box, and hit search. then I clicked on image search, then back to regular search, then to blog search. As you’re doing this, you’ll notice that Web Recorder is doing it’s Orwellian job of watching you, and will have the URLs you went to shown in order.
When you’re done, hit the “Stop” button, and it will pop up the Web Application Editor – this time with a multitude of URLs
In the top half you will see each url that was recorded and in the bottom half you’ll options you can set for the various requests. The default setting is to log an error condition when the web server returns a 400 or higher – this covers everything from a “Bad Request” to a “Page Not Found” and all the way up to “Service Unavailable” (503) to “Bandwidth Exceeded” (509) – basically all of the client (400) errors and all of the server (500) errors.
I just left mine as it was, but also turned on “Content Matching” and told it to raise an error and send an alert if the content of Google’s homepage ever says “Microsoft is awesome”. If that ever happened, we can assume the worst!
If you were to scroll down in this pane, you’d see all of the options repeated – only instead of matches for raising an Error alert, this one will raise a Warning level alert.
Now, we’re almost done – the next thing to do is to go back to the right side of the editor, and in the middle click on “Configure Settings” under Web Application.
The Web Application dialog will come up and give you plenty of additional options to play with, starting with the “General” tab.
Along with changing the basic information of the synthetic transaction, such as it’s name or description, the general tab is where you would go if you wanted to set extra settings, such as:
- Retry: This is how many times SCOM will attempt to retry the monitor if it runs into a warning or health condition – this is useful if the site you’re monitoring is under high load consistently or occasionally hiccups when sessions are being transferred from one server to another on a load balance, fault tolerant system.
- Authentication Settings: Your method choices are None, Basic, Digest, Negotiate and NTLM. You don’t actually enter any usernames or passwords here, you’re essentially choosing from a list of User Roles you have contained in the Administration > etc etc .
Using authentication is a valuable asset, allowing you to create a synthetic transaction for sensitive data that you otherwise couldn’t. Now you can create a special service account with privs as restrictive as you desire. - Proxy Server: Self explanatory. At least I hope it is. I mean, you’re in IT. Probably been messing with PCs for a long time. I don’t know. Proxies were really big in my younger days. Maybe they aren’t know and you wouldn’t expected to know, like punch cards are for me. If that’s the case, I’m sorry. I take it all back. I’m sure you’re quite brilliant.
The next tab is “Watcher Node” and is quite self explanatory again – we did all this earlier, but if you messed up you can change the server that runs the query, or the time between runs.
One interesting thing we’ll talk about much later is how you can create really complicated rollup aggregation rules by simply setting up a number of watchers – say one per floor, or one per building, country, etc – then roll them all up and from this simple 5 minute session recording, you can build comprehensive network response data from a world perspective all the way down to a floor or switch level of granularity. Pretty sweet, right?
The next tab is closer to the cool one, and relates to it – Performance Criteria.
This tab lets you set the ‘Big Picture’ Warning and Error states for your transactions. This is where you set the round trip response times that your transaction should take before issuing a warning or error status.
Now we come to the final tab, “Performance Counter”. This one is invaluable for all you graph fetishists out there.
By default, nothing more then the “Transaction Response Time” is selected to be recorded, and with good reasons too. In this tab you can record up to 34 additional parameters of the transaction, useful for performance analysis and trending. A lot of them are useless 99% of the time, and invaluable the other 1%. This is why I prefer a larger monitoring interval – because if I err in my performance counter selection, I err to safety and pick more then I think I need – having a larger interval between monitors puts a lot less data in the database, which makes generating reports a lot more meaningful. The “Request Performance Counter” section is broken down into 4 elements:
- Base Page: These are performance counters that refer to the page served by the URL requested.
- Links: Performance counters for links based off of the base page, above.
- Resources: These are performance counters for resources on the page. Resources are almost anything included – such as CSS, images, and scripts
- Total: This is very much like it sounds – it contains the performance counters for all of the previous elements rolled into a single number.
In all of the sections, the most important counters to have selected are “DNS Resolution Time”, “TCP Connect Time” and “Total Response Time”. These 3 basic counters will contain a vast majority of what people care about. The other counters are very situational and depend entirely on how the page is coded and what you’re attempting to do. Either know exactly what you’re looking for, or ask someone who does.
When you’re done, hit “Ok” and you’ll be returned to the Web App Editor. From there, hit the “Verify” link to make sure your settings are all correct, then hit apply. It will crunch away as it saves your changes and then bam, you’re done!
Revel in your brilliance as you now have some awesome new metrics to show off to the world (And by world, I mean your boss).
Congrats!














Great Article and much needed, Thanks!