4. Site Activity Features
Collects all Site Activity information (web site requests)
Open & Simple SQL Server Storage
Built-in Analysis Reports (simple & flexible reports creation)
Configurable Requests Filter options
HTTP
Business Activity -> TAGS
Business (BL)
5. Site Activity Features
Configurable Extra Data collection fields
– Cookie Value – according to cookie name
– HTTP Header Value – according to header name
– URL Request Parameter – according to parameter name
Built-In Session ID and Request ID (GUIDs)
Runtime override capabilities - Field/Parameter values
6. Extra Fields Data
Can be filled according to configuration or at runtime.
Extra Fields – Configuration (header / cookie / request)
<!-- extra fields source (1-5) - cookie / header / request_param -->
<add key="SiteActivityModules_Field_1_Source" value="cookie: MyCookie"/>
<add key="SiteActivityModules_Field_2_Source" value=“header: MyHeader"/>
Extra Fields – filled at runtime
// context = HttpContext.Current.Context
context.Items["Performance Monitor -> Field 1"] = “Value 1";
context.Items["Performance Monitor -> Field 2"] = “Value 2";
7. Wizards Analysis Sample
// Fill Extra Fields Data – For Creating Wizard Analysis Report
context.Items["Performance Monitor -> Field 1"] = “WIZARD"; // Type = Wizard
context.Items["Performance Monitor -> Field 2"] = “Wizard #1"; // Wizard Name
context.Items["Performance Monitor -> Field 3"] = “1"; // Wizard Step Number
8. Requests Filtering
Filter what Requests (URLs) would be recorded.
Page Types Filtering (include & exclude rules)
<!-- monitored page types -->
<add key="SiteActivityModules_PageTypes" value=".aspx ; .asmx"/>
<add key="SiteActivityModules_PageTypesExclude" value=".css ; .js"/>
URL Templates Filtering (any part of url string)
<!-- filter urls that include/exclude templates (xxx ; yyy ; zzz) -->
<add key="SiteActivityModules_UrlsInclude" value="page2.aspx ; …"/>
<add key="SiteActivityModules_UrlsExclude" value="page3.aspx ; …"/>
Requests Filtering – at runtime
context.Items["Performance Monitor -> Page Is Monitored"] = false;
10. Unique Pages Analysis
Report that shows Unique Page Visits.
Support Unique Count For:
– All Requests Count
– Unique Requests For Session
– Unique Requests For User
12. Site Performance Analysis
Collects all Site Activity information (site requests)
Analyze Requests Process Time
Designed for Production Environments
No Code Changes
No .NET Profiling (production environments)
No Client side Java Script injection
Batch Process for Logs Loading to SQL Server
13. Site Performance Analysis
Enhanced Performance Reports
Built-In monitoring for the Site Activity Module
Developers Framework for Actions & Activities
Reporting
18. Performance - Configuration Examples
Requests Process Time Filtering
<!-- filter only requests between Min-Max process time (milliseconds) -->
<add key="SiteActivityModules_MinProcessTimeToCapture" value="0"/>
<add key="SiteActivityModules_MaxProcessTimeToCapture" value="1000"/>
19. Performance - Configuration Examples
Enable On Screen Display (Off / On – by parameter / Always On)
<!-- on screen diplay of page request information-->
<add key="SiteActivityModules_OnScreenDisplay" value="0"/>
Example of data showed on page:
Site Activity Monitor - Request Information:
Begin Request|Start Page Monitor|203|634954898520043462| ; milliseconds from last action = 0
SQL Call | SQL Activity #4 | 180 | 634954898522303591 | ; milliseconds from last action = 226
Service Call | WCF Call | 140 | 634954898523703671 | ; milliseconds from last action = 140
Service Call | Web Service Call | 150 | 634954898525203757 | ; milliseconds from last action = 150
SQL Call | SQL Activity #5 | 180 | 634954898527503889 | ; milliseconds from last action = 230
End Request|Finish Page Monitor|998|634954898528023919| ; milliseconds from last action = 52
20. Code Examples
This example is for Reporting a Custom Action for a Page.
Can be Reported from any code (site, referenced dlls…) that
contains Request’s HttpContext
Report Action – From Anywhere with HTTP Context Available
// Action data format:
// context = HttpContext.Current.Context
// Action Type | Action Name | Process time in ms | ts (in ticks) | extras
if (context.Items["Performance Monitor -> Page Actions"] != null)
(context.Items["Performance Monitor -> Page Actions"])
.Add(string.Format("{0} | {1} | {2} | {3} | {4}",
actionType,actionName,processTimeInMs.ToString(),
DateTime.Now.Ticks.ToString(),extraData));
21. Code Examples (continue…)
Override Internal Parameters at runtime
// Override Session ID
context.Items["Performance Monitor -> Session ID"] = “XYZ…";
// Override Current User Name
context.Items["Performance Monitor -> User Name"] = “User 1";
// Override File Name
context.Items["Performance Monitor -> File Name"] = “Custom File Name";
// Override Url Params
context.Items["Performance Monitor -> Url Params"] = “Custom Url Params";
// Override Full Url
context.Items["Performance Monitor -> Full Url"] = “My Custom Url";
25. Planned Product Features (continue…)
Centralized Exceptions Reporting
The ability to report an exception through Http Context, includes all exception details. The
framework will be responsible to update all data on the System’s centralized storage, and
enable to generate exceptions reports (includes all request data)
Centralized Audit Reporting
The ability to report audit actions (users audit, business activity…) through Http Context. The
framework will be responsible to update all data on the System’s centralized storage, and
enable to generate audit reports
Centralized Event Log
The ability to report event log actions (Debug, Information, Warnings & Critical) through Http
Context. The framework will be responsible to update all data on the System’s centralized
storage, and enable to generate event log reports
26. Planned Product Features (continue…)
Support More Application Types
The framework is very open and flexible, and the same concept of web site pages
& in-page actions reporting (both business activity & performance) can be
adjusted to other application types (Windows Services, Mobile, Win Forms,
WPF…). The framework would provide a static global object (Http Context
equivalent) that would handle all internal processing
Enhancing Current Framework Flexibility
– Advanced requests data extraction (complex post data, xml structures…)
through regular expressions, custom extraction code, and more…
– Navigate specific requests (for example with exceptions) to other log files –
that would get extracted online to centralized storage
– SQL Provider – online logs extraction to centralized storage
– In Memory Statistics – especially for performance reports