Configure .NET Frontend URL Groups

Frontend URL groups are named groupings of transactions that you define in terms of a URL path prefix. Introscope aggregates metrics for each URL group.
apmdevops106
Frontend URL groups
are named groupings of transactions that you define in terms of a URL path prefix. Introscope aggregates metrics for each URL group.
3
2
Using URL Groups
URL groups are named groupings of transactions that you define in terms of a URL path prefix. Introscope aggregates metrics for each URL group and presents those metrics under the Investigator Frontends|Apps|<ApplicationName>|URLs node.
A path prefix is the portion of the URL that follows the host name. For example, in this URL:
http://burger1.com/
TestWar
/burgerServlet?ViewItem&category=11776&item=5550662630&rd=1
The path prefix is:
/TestWar
You can define a URL group for any useful category of requests that can be derived from a URL path prefix. For example, depending on the form of your application URLs, you could define several URL groups. Groups for each customer your application supports, for each major application, or for sub-applications. The ability to define URL groups allows you to monitor performance in the context of committed service levels, or for mission-critical portions of your application.
By default, all URLs are assigned to a URL group that is named
Default
. This naming prevents the overhead that is imposed when invalid URLs do not create unique, one-time metrics. For example, URLs that result in a 404 error. Configuring meaningful URL groups allows performance monitoring at the sub-application level.
URL Group Properties
Define URL groups in the IntroscopeAgent.profile file, using these properties:
  • introscope.agent.urlgroup.
    keys
  • introscope.agent.urlgroup.
    group.default.pathprefix
  • introscope.agent.urlgroup.
    group.default.format
Here is an excerpt from an agent profile that illustrates how URL groups are defined.
introscope.agent.urlgroup.
keys
=alpha,beta,gamma
introscope.agent.urlgroup.
group.alpha.pathprefix
=/testWarintroscope.agent.urlgroup.
group.alpha.format
=foo {host} bar {protocol} baz {port} quux {query_param:foo} red {path_substring:2:5} yellow {path_delimited:/:0:1} green{path_delimited:/:1:4} blue {path_substring:0:0}
introscope.agent.urlgroup.
group.beta.pathprefix
=/nofilterWarintroscope.agent.urlgroup.
group.beta.format
=nofilter foo {host} bar {protocol} baz {port} quux{query_param:foo} red {path_substring:2:5} yellow{path_delimited:/:0:1} green {path_delimited:/:1:4} blue{path_substring:0:0}
introscope.agent.urlgroup.
group.gamma.pathprefix
=/examplesWebAppintroscope.agent.urlgroup.
group.gamma.format
=Examples Web App
Defining URL Groups
The following sections provide information about the properties that configure URL groups.
Define Keys for URL Groups
Use the
introscope.agent.urlgroup.keys
property to define a list of the IDs, or keys, of all your URL groups. The key for a URL group is referenced in other property definitions that declare an attribute of the URL group. This example defines the keys for three URL groups:
introscope.agent.urlgroup.keys=alpha,beta,gamma
The order in which you specify keys for URL groups is important.
Define URL Group Membership
Use the
introscope.agent.urlgroup.group.GroupKey.pathprefix
property to define which requests fall within the URL group. Specify the pattern against which the path prefix of a URL is matched. You can use the asterisk symbol (*) as a wildcard.
  • Example 1
    This
    introscope.agent.urlgroup.group.alpha.pathprefix
    property configuration assigns all requests in which the path portion of the URL starts with
    /TestWar
    to the URL group whose key is
    alpha
    :
    introscope.agent.urlgroup.group.alpha.pathprefix=/TestWar
    Here are requests that match the specified
    pathprefix
    :
    http://burger1.com/TestWar/burgerServlet?ViewItem&category=11776&item=5550662630&rd=1
    http://burger1.com/TestWar/burgerServlet?Command=Order&item=5550662630
  • Example 2
    A company that provides call center services could monitor response time for functional areas by setting up a URL group for each application function. Customers can access services using this URL:
    http://genesystems/us/application_function/
    In the URL,
    application_function
    corresponds to applications such as OrderEntry, AcctService, and Support. The
    introscope.agent.urlgroup.group.alpha.pathprefix
    property configuration for each URL group specifies the appropriate application_function.
Define a URL Group Name
Use the
introscope.agent.urlgroup.group.GroupKey.format
property to determine the names under which response time metrics for a URL group, whose key is
GroupKey
, appear in the Metric Browser.
Typically, the format property is used to assign a text string as the name for a URL. This example causes metrics for the URL group with key
alpha
to appear in the Metric Browser under the name
Alpha Group
:
introscope.agent.urlgroup.group.alpha.format=Alpha Group
Advanced Naming Techniques for URL Groups
You can derive a URL group name from request elements. For example, the server port, the protocol, or from a sub-string of the request URL. This capability is useful when application modules are easily differentiated by inspecting the request. The following sections describe advanced ways of configuring the
introscope.agent.urlgroup.group.alpha.format
property.
Use a Host as a URL Group Name
You can organize metrics for a URL group under Investigator node names that reflect the HTTP server host name that is associated with requests. Here is how you configure the
introscope.agent.urlgroup.group.alpha.format
property:
introscope.agent.urlgroup.group.alpha.format={host}
For example, statistics for the following requests appear under the
and
uk.mybank.com
metric names, respectively:
https://
us.mybank.com
/mifi/loanApp...
https://
uk.mybank.com
/mifi/loanApp...
Use a Protocol as a URL Group Name
To organize statistics for a URL group under names that reflect the protocol that is associated with requests, define the format property as follows:
introscope.agent.urlgroup.group.alpha.format={protocol}
When format={protocol}, statistics are grouped in the Investigator under metric names that correspond to the protocol portion of request URLs. For example, statistics for these requests appear under the metric name
https:
https
://us.mybank.com/cgi-bin/mifi/scripts......
https
://uk.mybank.com/cgi-bin/mifi/scripts......
Use a Port as a URL Group Name
To organize statistics for a URL group under names that reflect the port that is associated with requests, define the format property as follows:
introscope.agent.urlgroup.group.alpha.format={port}
When format={port}, statistics are grouped under names that correspond to the port portion of request URLs. For example, statistics for these requests appear under the name
9001
.
https://us.mybank.com:
9001
/cgi-bin/mifi/scripts......
https://uk.mybank.com:
9001
/cgi-bin/mifi/scripts......
Use a Parameter as a URL Group Name
You can organize statistics for a URL group under metric names that reflect the value of a parameter that is associated with request. Configure the
introscope.agent.urlgroup.group.alpha.format
property as shown:
introscope.agent.urlgroup.group.alpha.format={query_param:
param
}
When
format={query_param:param}
, statistics are grouped in the Metric Browser under metric names that correspond to value of the parameter specified. Requests without parameters are listed under
<empty>
. For example, you use this parameter definition:
introscope.agent.urlgroup.group.alpha.format={query_param:category}
Statistics for these requests appear under the metric name
734
.
http://ubuy.com/ws/shopping?ViewItem&
category=734
&item=3772&tc=photo
http://ubuy.com/ws/shopping?ViewItem&
category=734
&item=8574&tc=photo
Use a Request Path Substring as a URL Group Name
To organize statistics for a URL group under names that reflect a substring of the path portion of request URLs, define the
format
property as shown:
introscope.agent.urlgroup.group.alpha.format={path_substring:
m
:
n
}
Where
m
is the index of the first character, and
n
is one greater than the index of the last character. For example, using this setting:
introscope.agent.urlgroup.group.alpha.format={path_substring:0:3}
Statistics for this request appear under the
/ht
metric node as shown in this example:
Use a Delimited Portion of the Request Path as a URL Group Name
To organize statistics for a URL group under names that reflect a character-delimited portion request URL path, define the
format
property as shown:
introscope.agent.urlgroup.group.alpha.format={path_delimited:
delim_char
:m:n}
The
delim_char
variable delimits the segments in the path. The
m
variable is the index of the first segment to select. The
n
variable is one greater than the index of the last segment to select.
These rules apply:
  • a delimited character counts as a segment
  • the segment count starts at 0
For example,
introscope.agent.urlgroup.group.alpha.format
is configured as shown.
introscope.agent.urlgroup.group.alpha.format={path_delimited:/:2:4}
Statistics for the requests that are formatted as shown appear under the
/pageid
metric node.
http://www.buyitall.com/userid,sessionid/pageid
This table shows the example segments as delimited by the slash character:
Segment Index
0
1
2
3
Segment String
/
userid,sessionid
/
pageid
Multiple Delimiters
You can specify multiple delimiters. For example,
introscope.agent.urlgroup.group.alpha.format
is configured as shown.
introscope.agent.urlgroup.group.alpha.format={path_delimited:/,:3:4}
Statistics for the requests that are formatted as shown appear under the
sessionid
metric node.
http://www.buyitall.com/userid,sessionid/pageid
This table shows the example segments as delimited by the slash and the comma character:
Segment Index
0
1
2
3
4
5
Segment String
/
userid
,
sessionid
/
pageid
Use Multiple Naming Methods for URL Groups
You can combine multiple naming methods in a single
format
string, as shown:
introscope.agent.urlgroup.group.alpha.format=red {host} orange {protocol} yellow {port} green {query_param:foo} blue {path_substring:2:5} indigo {path_delimited:/:0:1} violet {path_delimited:/:1:4} ultraviolet {path_substring:0:0} friend computer
Limit the Number of Unique Frontend URL Group Metrics
You can use the
introscope.agent.urlgroup.frontend.url.clamp
property to to limit the number of unique frontend URL group metrics that the .NET agent creates. When the number of new URL groups reaches the set value, metrics for new URL groups display under the Metric Browse
Frontends|Apps|URLs|Default
node. This property helps to prevent metric explosions.
To collect meaningful metrics from the
Frontends|Apps|URLs
node, set up URL groups that are relevant to your deployment.
Follow these steps:
  1. Open the IntroscopeAgent.profile in the <Agent_Home> directory in a text editor.
  2. Go to the URL Grouping Configuration section.
  3. Configure the
    introscope.agent.urlgroup.frontend.url.clamp
    property.
    The default is 5 URL groups.
  4. Save and close the file.
    No managed application restart is needed.
Frontend URL Group Naming
These frontend URL group properties work together when all are set to their default introscopeAgent.profile settings:
introscope.agent.urlgroup.keys=resources,default
introscope.agent.urlgroup.group.resources.pathprefix=*/bundle*
introscope.agent.urlgroup.group.resources.format=Resources
introscope.agent.urlgroup.group.default.pathprefix=*
introscope.agent.urlgroup.group.default.format={path_delimited:/:0:5}
introscope.agent.urlgroup.frontend.url.clamp=5
With this configuration, the default frontend URLs display in a URL group. The URL group is named for and located two directories after the URL port in the URL path.
For example, in the URL path http://localhost:80/abc/def/default.aspx, the port is 80. In the Metric Browser, a frontend with the URL http://localhost:80/abc/def/default.aspx is listed under the
Frontends|Apps|URLs|
abc/def
/ node. When the number of frontend URL groups that are created across all the .NET applications reaches the
introscope.agent.urlgroup.frontend.url.clamp
setting, any new URLs display under the
Frontends|Apps|URLs|Default
node.
Frontend URL Group Naming Normalization Examples
The default NET URL group property settings enable the .NET agent to normalize URLs as shown in these examples:
  • The normalized
    /ShoppingKart/generateTxn/invokeService
    URL becomes the
    normalized ShoppingKart/generateTxn
    URL.
  • The unnormalized
    /ShoppingKart/bundle/jquery
    URL becomes the normalized
    Resources
    URL.
  • The unnormalized
    /ShoppingKart/Default.aspx
    URL becomes the normalized
    /ShoppingKart/Default.aspx
    URL.
Frontend Resources URL Group
Frontends URL groups can contain specific file extensions, for example, png in <filenam
e
>.png, We name these extensions as
resources
. The
introscope.agent.urlgroup.frontend.url.resources.list
property specifies the file extension types. Here is the default setting:
introscope.agent.urlgroup.frontend.url.resources.list=tif,tiff,jpg,jpeg,gif,png,bmp,bmpf,ico,cur,xbm,svg,img,css,woff,nil
When frontends URLs contain the resources that are listed in
introscope.agent.urlgroup.frontend.url.resources.list
, the resources display under the
Frontends|Apps|URLs|Resources
node.
URLs that include the
/bundle
segment are also grouped under the
Resources
node, not the
Default
node.
The Resources URL group prevents invalid URLs from creating unique, one-time metrics and using large amounts of Enterprise Manager memory. Common invalid URLs are those URLs that generate 404 errors,