26
Site Activity & Performance Analysis

Site activity & performance analysis

Embed Size (px)

Citation preview

Page 1: Site activity & performance analysis

Site Activity & Performance Analysis

Page 2: Site activity & performance analysis

Business & Performance DataData availability on Client Browser VS on Web Server

Page 3: Site activity & performance analysis

System Diagram

Page 4: Site activity & performance analysis

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

Business Activity -> TAGSBusiness (BL)

HTTP

Page 5: Site activity & performance analysis

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

Page 6: Site activity & performance analysis

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.Contextcontext.Items["Performance Monitor -> Field 1"] = “Value 1"; context.Items["Performance Monitor -> Field 2"] = “Value 2";

Page 7: Site activity & performance analysis

Wizards Analysis Sample// Fill Extra Fields Data – For Creating Wizard Analysis Reportcontext.Items["Performance Monitor -> Field 1"] = “WIZARD"; // Type = Wizard context.Items["Performance Monitor -> Field 2"] = “Wizard #1"; // Wizard Namecontext.Items["Performance Monitor -> Field 3"] = “1"; // Wizard Step Number

Page 8: Site activity & performance analysis

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 runtimecontext.Items["Performance Monitor -> Page Is Monitored"] = false;

Page 9: Site activity & performance analysis

User Activity Analysis Report that shows all Requests of a specific User.

Page 10: Site activity & performance analysis

Unique Pages Analysis Report that shows Unique Page Visits. Support Unique Count For:

– All Requests Count– Unique Requests For Session– Unique Requests For User

Page 11: Site activity & performance analysis

Site Performance Analysis

Page 12: Site activity & performance analysis

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

Page 13: Site activity & performance analysis

Site Performance Analysis

Enhanced Performance Reports

Built-In monitoring for the Site Activity Module

Developers Framework for Actions & Activities Reporting

Page 14: Site activity & performance analysis

Request Life Cycle

Page 15: Site activity & performance analysis

Site Performance Analysis Report that analyze site pages, with highest process

time.

Page 16: Site activity & performance analysis

Action Types & Page Analysis Report that analyze a specific page. Page Statistics & All Page internal Actions Statistics.

Page 17: Site activity & performance analysis

Actions Analysis

Page 18: Site activity & performance analysis

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"/>

Page 19: Site activity & performance analysis

Performance - Configuration ExamplesEnable 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 = 0SQL Call | SQL Activity #4 | 180 | 634954898522303591 | ; milliseconds from last action = 226Service Call | WCF Call | 140 | 634954898523703671 | ; milliseconds from last action = 140Service Call | Web Service Call | 150 | 634954898525203757 | ; milliseconds from last action = 150SQL Call | SQL Activity #5 | 180 | 634954898527503889 | ; milliseconds from last action = 230End Request|Finish Page Monitor|998|634954898528023919| ; milliseconds from last action = 52

Page 20: Site activity & performance analysis

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) | extrasif (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));

Page 21: Site activity & performance analysis

Code Examples (continue…)

Override Internal Parameters at runtime

// Override Session IDcontext.Items["Performance Monitor -> Session ID"] = “XYZ…";

// Override Current User Namecontext.Items["Performance Monitor -> User Name"] = “User 1";

// Override File Namecontext.Items["Performance Monitor -> File Name"] = “Custom File Name";

// Override Url Paramscontext.Items["Performance Monitor -> Url Params"] = “Custom Url Params";

// Override Full Urlcontext.Items["Performance Monitor -> Full Url"] = “My Custom Url";

Page 22: Site activity & performance analysis

Code Examples (continue…)

Override Internal Parameters at runtime

// Override Monitor Sourcecontext.Items["Performance Monitor -> Monitor Source"] = “My Source";

// Filter Current Requestcontext.Items["Performance Monitor -> Page Is Monitored"] = false;

Page 23: Site activity & performance analysis

RoadmapOn - Development Features

Page 24: Site activity & performance analysis

Planned Product Features

Page 25: Site activity & performance analysis

Planned Product Features (continue…)

Centralized Exceptions ReportingThe 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 ReportingThe 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 LogThe 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

Page 26: Site activity & performance analysis

Planned Product Features (continue…)

Support More Application TypesThe 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