cf.Objective() Adam Lehman: Scorpio Server Monitoring
This to me is one of the best features in CF (8?).
With the tracking turned on it collects a sick amount of metrics. You can see requests. You can see all the memory scopes. You can drill down into the scopes.
There is a page for looking at Cumulative Server Usage. This is very cool! It will keep track of templates and what percentage of the over all server time they use. So, you'll know what templates could benefit from tuning.
There are memory usage charts that show you how much memory is used over time broken down by scope. Then you can see things like the average memory usage per session. There's another page in this section that will show you how much ram the average request takes.
There's reporting that shows memory size for queries that you can can use to optimize block factor. I need to look into this one...
Oh, not monitoring related. But, you can now use cfqueryparam and the CF caching mechanism. Yeah, you read that right.
Andrew also shows a report where you can see the most commonly run queries. Again, this will help us know where we can best spend our tuning efforts.
Scorpio supports "Alerts". These are very configurable. Basically, you might set an alert when the majority of your threads have been tied up for a determined time. Then the server will do what you tell it while the server is under that condition.
Things it might do:
- It can send you an email.
- It can dump a snapshot (for use later determining what went wrong).
- It can quit responding to request until things get under control.
- Or it can just kill threads running above a threshold.
- It can call a CFC. It will call "onAlertStart()" start as soon as you hit your threshold and "onAlertEnd()" when it has passed.
The overhead for the detailed monitoring is about 16% currently. So, you probably won't leave it on all the time. Later he specified that you can turn on only parts of the monitoring. So, you can lower the overhead by, say, turning off Memory Tracking.
However, you can do a multi-server monitoring panel that has very low overhead. This just shows you that the servers are fine or if they are in Alert mode. When they go into Alert mode, then you can pop open the monitoring and look for rogue threads.
If you application has even moderate traffic, you will love this!

There are no comments for this entry.
[Add Comment]