SiteProctor Code
Brought to you by:
moxenb
| File | Date | Author | Commit |
|---|---|---|---|
| examples | 2009-10-27 | moxenb | [r12] 0.9.2 - Fixed up Soap extension, added example ... |
| src | 2009-10-27 | moxenb | [r12] 0.9.2 - Fixed up Soap extension, added example ... |
| tests | 2009-10-15 | moxenb | [r10] Added SOAP extension to track the times of indi... |
| SiteProctor_mono.sln | 2009-10-27 | moxenb | [r12] 0.9.2 - Fixed up Soap extension, added example ... |
| SiteProctor_vs2008.sln | 2009-10-15 | moxenb | [r10] Added SOAP extension to track the times of indi... |
| license.txt | 2009-10-07 | moxenb | [r8] Updated license info |
| readme.txt | 2009-09-13 | moxenb | [r5] Added readme.txt, fixed sorting link bug |
SiteProctor is an ASP.NET library which tracks the amount of time resources
take to render. This can be useful when trying to pinpoint which pages or other
resources are slower than others.
The time recorded is the time as seen by an HttpModule, which should encompass
the majority of ASP.NET code used to render the page. Steps farther up in the
.NET pipeline won't be recorded, nor will any processing or queueing performed
by IIS/Apache.
The average time is based on the last 32 samples. Locks are done in an
efficient way which should not impact performance of the time.
Results are displayed through an HttpHandler which generates a summary. URLs
are grouped by the base URL (no query string is included). Hit count and
average load time are displayed. Click on the URL to get a breakdown of times
for each query string version of the page.
Caveat: This is still alpha, so there is NO cleanup of old entries. All unique
URLs are retained forever. Thus, if your site generates URLs which are unique
to a user or unique to an action (e.g., user-specific database keys in the
URL) you will get into a world of unhappiness quickly with a public-facing
site.
Setup should be simple-- just add the HttpHandler and HttpModule.
<configuration>
<system.web>
<httpHandlers>
<add verb="GET" path="__proctor.aspx" type="Open.Diagnostics.Web.ProctorHandler, Open.Diagnostics.Web.Proctor" />
</httpHandlers>
<httpModules>
<add name="Proctor" type="Open.Diagnostics.Web.ProctorModule, Open.Diagnostics.Web.Proctor" />
</httpModules>
That's it-- once the site is up, you can hit /__prolix.aspx to get a summary of page
load times.