<ss:monitoringSetting>
<!-- Global Settings for ALL monitored domains -->
<!-- Description:
minorPageLoadTime - threshold to define Heavy Sync Ajax Call – call with Full Scope Execution Time longer than this threshold (ms).
majorPageLoadTime - threshold for page loading performance event.
linkedItemSizeThreshold - size threshold for collecting information about flat files.
calcLinkedContentUsingAjax -
true if CSM needs to send ADDITIONAL request to server
for each linked file (Images, scripts, css, htc) in order to get the file size.
default value - false.
include - flag (actual for separate application domain),
true if the domain is included for monitoring.
enable - flag,
true if domain setting will override Global Settings for ALL monitored domains.
includeStatistic - flag, determines if statistics monitoring is enabled for domain.
It is applied only if 'include' flag is set to true
includeProblem - flag, determines if problem monitoring is enabled for domain.
It is applied only if 'include' flag is set to true
disabledContent - enumeration, determines which content is disabled from collecting.
0 - all content is collected
1 - images are disabled
2 - scripts are disabled
4 - css are disabled
8 - htc are disabled
16 - global variables are disabled
32 - exception stack is disabled
Bitwise combination of these flags is also supported:
Examples:
1. To disable collecting both images and css use value 5 (= 1+4)
2. To disable collecting images,scripts and css use value 7 (= 1+2+4)
Default value is 63 - all content collection is disabled.
contentLimits - Limit on collecting content information
images - Maximum number of images in DOM model that are analyzed.
clientStorageMode - flag, that determines the mode to store data on the client side between requests
0 - Data is not stored on the client side
1 - Data is stored in Cookies only
enableASQ - if true Automated Software Quality Integration is enabled, otherwise it is disabled
prefixLocation - flag, that determines the place where prefix JavaScript code will be injected to.
default - Code will be injected to the first possible place: before <script> tag or after <html> tag.
head - Code will be injected to the first possible place: before <script> tag, after <head> tag or before <Body><Script> tag.
-->
<ss:appdomains
minorPageLoadTime="3000"
majorPageLoadTime="15000"
ajaxThreshold="5000"
calcLinkedContentUsingAjax="false"
linkedItemSizeThreshold="10240"
include="false"
includeStatistic="true"
includeProblem="true"
statisticsSampling="10"
samplingMode="Full"
scriptsVersion=""
disabledContent="63"
clientStorageMode="1"
enableASQ="false"
prefixLocation="default"
encryption="Fast">
<!-- Place global filters here -->
<ss:filters>
<!--
Filter settings:
Compare type:
Simple - values == argument
Regexp - Regex(value).Match(argument)
IPMask - comparison by IP subnet. argument & attribute[mask] == value & attribute[mask]
StartsWith - whether argument starts with the specified value
Contains - whether argument contains the specified value
Argument:
Predefined
UserName or 0/System.Web.HttpContext::User/System.Security.Principal.IPrincipal::Identity/System.Security.Principal.IIdentity::Name
IPAddress or 0/System.Web.HttpContext::Request/System.Web.HttpRequest::UserHostAddress
PageName or 0/System.Web.HttpContext::Request/System.Web.HttpRequest::Path
(e.g. for http://www.contoso.com/virdir/page.html/tail, the Path is /virdir/page.html/tail)
Response.ContentType - response content type
Response.ContentEncoding - response encoding
Response.StatusCode - response status code
Response.Status - response status
Response.CurrentChunk - response chunk. It increases while the response is being written
IsMvcRequest - true, if request is made to .Net MVC application
Collections
QueryString[xxx] - Query string's parameters
RequestHeader[xxx] - Http Request headers
RequestForm[xxx] - Http form data
MvcRouteData[xxx] - MVC request route data (controller, action)
<!--streamFilters-->
<ss:streamFilters>
<ss:filterGroup filterGroupName="FilterGroupNameIdNonHtmlResponses" class="Deny" operator="OR">
<!-- Comment first or second group of filters to optimize performance, based on your application page's content -->
<!-- 1 NOTE: Comment '<!DOCTYPE' filter in case you need to monitor pages that do not start with <!doctype tag -->
<!-- Only HTML can start with "<!DOCTYPE" usually, but not all HTML pages starts with <!DOCTYPE .-->
<!--<ss:filter compareType="NotStartsWith" value="<!DOCTYPE">
<ss:attribute name="trimLeft" value="true" />
<ss:argument name="Response.CurrentChunk" value="Response.Buffer" />
</ss:filter>-->
<!-- 2 NOTE: Uncomment both '<' and '<HTML' filters if you need to disable “<!DOCTYPE” filter -->
<!-- Only HTMl and XML files starts with "<" usually. So do not instrument all other pages -->
<!-- OR -->
<!-- File does not *CONTAIN* HTML tag -->
<!-- Default Collector is specified here: -->
<ss:collector initializeString="/CsmCollector/CsmCollectorService.asmx" />
<ss:monitoringResources initializeString="" />
<ss:errorLogging mode="off" />
<ss:limitsPerPage enable="true">
<!--No more then totalEventsFromPage will be sent from the single page-->
<ss:limit name="TotalEventsFromPage" value="100" />
<!--No more then totalEventsPerMinute will be sent per minute-->
<ss:limit name="TotalEventsPerMinute" value="10" />
<!--No more then totalEventsPerFiveMinutes will be sent per five minutes-->
<ss:limit name="TotalEventsPerFiveMinutes" value="30" />
<!--No more then oneTypeTotalFromPage events with one exception message will be sent from one page-->
<ss:limit name="OneTypeTotalFromPage" value="15" />
<!--Event with one exception message will not be sent until oneTypeMinimalDelay seconds will this exception message pass from last sent event of this type-->
<ss:limit name="OneTypeMinimalDelay" value="3" />
<!--No more then oneTypePerMinute events with one exception message will be sent in minute-->
<ss:limit name="OneTypePerMinute" value="2" />
<!--No more then oneTypePerFiveMinutes events with one exception message will be sent in five minutes-->
<ss:limit name="OneTypePerFiveMinutes" value="5" />
</ss:limitsPerPage>
<ss:dataProviderSettings>
<!--these settings are needed to set regular expression for extracting ip address from
X_FORWARDED_FOR header because there may be several ip addresses
Example: "\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"
to find first ip address separated by white spaces or
"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
to find first ip address in text
P.S.: this setting cannot be set through configuration utility-->
<ss:add name="ipHeaderRegex" alias="" value="" />
<!--this setting needed to set collection of delimiters which are used to separate ip addresses
in X_FORWARDED_FOR header because of there may be several ip addresses
Example: ",;"
P.S.: this setting cannot be set through configuration utility-->
<ss:add name="ipHeaderLimiters" alias="" value=",;" />
<!--ss:add name="userType" alias="Forms authentication" value="FormsIdentity" />
<ss:add name="userType" alias="Windows authentication" value="WindowsIdentity" />
<ss:add name="userType" alias="Passport authentication" value="PassportIdentity"/>
<ss:add name="userType" alias="Windows Logon identity for w3wp.exe process" value="WindowsLogon" /-->
<!-- The following settings determine tenant extraction rules.
For example, to retrieve tenant from the following C# code
</ss:dataProviderSettings>
<!-- User Activity Monitoring settings: -->
<ss:measuredControlsEvents>
</ss:measuredControlsEvents>
<ss:pingImage customLocation="" />
<!-- Management of Ajax Monitoring
mode = "earlyOverrideForBoth" - (default value), all Ajax Calls will be monitored after page loading starts
mode = "lateOverrideForBoth" - all Ajax Calls will be monitored after page "onload" event fired
mode = "lateOverrideForXHR" - Ajax Calls made via ActiveX(MSXmlHttp) object will be monitored after page loading starts,
Ajax Calls made via XmlHttpRequest object will be monitored after page "onload" event fired.
-->
<ss:ajaxOverrideMode mode="lateOverrideForBoth"/>
<ss:excludes>
<!-- To Enable Excluding duration of function execution, use the following example, where
name - name of function
paramCount - count of function parameters(arguments)
isSystem - flag, if the function is system (DOM-, or Browser-specific) or created by custom user code
-->
<!-- <ss:exclude name="myFunction" paramCount="4" isSystem="false" /> -->
<ss:exclude name="window.alert" paramCount="1" isSystem="true" />
<ss:exclude name="window.prompt" paramCount="2" isSystem="true" />
<ss:exclude name="window.confirm" paramCount="1" isSystem="true" />
<!-- Uncomment the following line to exclude window.showModalDialog for time metrics -->
<!--
<ss:exclude name="window.showModalDialog" paramCount="3" isSystem="true" />
-->
</ss:excludes>
<ss:iisSpecificOptions>
<ss:supportFlushedPagesForIIS6 value="false"/>
</ss:iisSpecificOptions>
<ss:metaTags>
<!-- Type meta tags to insert before prefix JavaScript. Example below. -->
<!-- <ss:meta include="true"><![CDATA[<meta http-equiv="X-UA-Compatible" content="IE=7"> ]]></ss:meta> -->
</ss:metaTags>
<!-- To set limit on content items array collection specify appropriate limit-->
<ss:contentLimits/>
</ss:appdomains>
</ss:monitoringSetting>
<ss:limits>
<!-- The section contains signs of complex page. If one of the following limit is reached or exceeded, uX will stop collecting detailed data for that page -->
<ss:dataComplexity >
<!-- Size of monitored page, in bytes -->
<ss:limit id="0" name="PageSize" value="5120000 "/>
<!-- Maximum number of child elements. Only tags referenced in <measuredControlsEvent> section are analyzed -->
<ss:limit id="1" name="Controls" value="2000"/>
<!-- Number of Global Variables defined in DOM -->
<ss:limit id="2" name="GlobalVariables" value="500" />
<!-- Number of Images defined in DOM -->
<ss:limit id="3" name="Images" value="300" />
<!-- Number of script defined in DOM -->
<ss:limit id="4" name="Scripts" value="85" />
<!-- Number of style sheets defined in DOM -->
<ss:limit id="5" name="StyleSheets" value="30" />
<!-- Number of style sheet rules defined in DOM -->
<ss:limit id="6" name="Rules" value="1500" />
<!-- Length of event JSON string in symbols -->
<ss:limit id="7" name="EventSize" value="1024000" />
</ss:dataComplexity>
<!-- The section contains limitations on cycles length.-->
<ss:dataCollecting >
<!-- Only first N images is analyzed -->
<ss:limit id="0" name="Images" value="150" />
<!-- Only first N scripts is analyzed -->
<ss:limit id="1" name="Scripts" value="50" />
<!-- Only first N style sheets is analyzed -->
<ss:limit id="2" name="StyleSheets" value="20" />
<!-- Only first N HTC is analyzed -->
<ss:limit id="3" name="Htc" value="20" />
<!-- Only first N CSS Rules per style sheet is analyzed -->
<ss:limit id="4" name="Rules" value="30" />
<!-- Only first N controls of each measured type is analyzed -->
<ss:limit id="5" name="Controls" value="2000" />
</ss:dataCollecting>
<!--The section contains limitations on details of collected data.-->
<ss:detailLevels>
<!-- Maximum length of a string variable value, in symbols. -->
<ss:limit id="0" name="StringSize" value="100" />
<!-- Number of function parameters collected for a single stack point -->
<ss:limit id="1" name="FunctionParameters" value="49" />
<!-- Depth of digging into composite variables fields -->
<ss:limit id="2" name="VariablesLevels" value="2" />
<!-- Number of array elements collected -->
<ss:limit id="3" name="VariablesArraySize" value="10" />
<!-- Size of RAW text (long string) data, in symbols. Applied to Ajax POST data, Ajax Response Text, stack point source code, etc. -->
<ss:limit id="4" name="TextSize" value="2048" />
<!-- Number of global variables collected -->
<ss:limit id="5" name="GlobalVariables" value="49" />
<!-- Number of stack points collected -->
<ss:limit id="6" name="StackPointsNumber" value="100" />
</ss:detailLevels>
</ss:limits>
<ss:ajaxSettings>
<!-- This section contains AJAX specific settings. -->
<!-- Set alternative, case sensitive names for standard ActiveX methods to use in JScript -->
<ss:methods>
<ss:method standardName="open">
<ss:variant>Open</ss:variant>
</ss:method>
<ss:method standardName="send">
<ss:variant>Send</ss:variant>
</ss:method>
<ss:method standardName="abort">
<ss:variant>Abort</ss:variant>
</ss:method>
<ss:method standardName="setRequestHeader">
<ss:variant>SetRequestHeader</ss:variant>
</ss:method>
<ss:method standardName="getResponseHeader">
<ss:variant>GetResponseHeader</ss:variant>
</ss:method>
<ss:method standardName="getAllResponseHeaders">
<ss:variant>GetAllResponseHeaders</ss:variant>
</ss:method>
<ss:method standardName="overrideMimeType">
<ss:variant>OverrideMimeType</ss:variant>
</ss:method>
<ss:method standardName="addEventListener">
<ss:variant>AddEventListener</ss:variant>
</ss:method>
<ss:method standardName="addEventListenerNS">
<ss:variant>AddEventListenerNS</ss:variant>
</ss:method>
<ss:method standardName="removeEventListener">
<ss:variant>RemoveEventListener</ss:variant>
</ss:method>
<ss:method standardName="removeEventListenerNS">
<ss:variant>RemoveEventListenerNS</ss:variant>
</ss:method>
<ss:method standardName="dispatchEvent">
<ss:variant>DispatchEvent</ss:variant>
</ss:method>
</ss:methods>
<!-- Set alternative, case sensitive names for standard ActiveX properties to use in JScript -->
<ss:properties>
<ss:property standardName="readyState">
<ss:variant>ReadyState</ss:variant>
</ss:property>
<ss:property standardName="status">
<ss:variant>Status</ss:variant>
</ss:property>
<ss:property standardName="responseText">
<ss:variant>ResponseText</ss:variant>
</ss:property>
<ss:property standardName="responseXML">
<ss:variant>ResponseXml</ss:variant>
</ss:property>
<ss:property standardName="statusText">
<ss:variant>StatusText</ss:variant>
</ss:property>
</ss:properties>
</ss:ajaxSettings>