This topic contains recommendations for how to create and classify Watchpoints. It is intended as a best practices guide.
The types of Watchpoints that can be created are grouped into the following classes:
Because Watchpoints are grouped alphabetically on the Watchpoint Summary page, it is useful to prefix a letter to the Watchpoint name that corresponds to the class. For example, C-Client X refers to a Client Watchpoint class that monitors a specific client. These letters help sort the Watchpoints by the category of traffic that they are watching.
Summary table of Watchpoint classes
Watchpoint class | Type | Log/MIB | Purpose | Sort by |
---|---|---|---|---|
Application | Page | Off / On | Track errors or performance by application group | Application name |
Infrastructure | Object | Off / On | Track errors or performance by servers or tier | Server or tier |
Key functions and transactions | Page | Off / On | Track errors or performance by function | URI stem, URI query, POST Data |
Performance – Errors | Object | On / Off | Capture and log errors | not applicable |
Performance – Slow Pages | Page | On / Off | Capture and log slow pages | not applicable |
Performance – Dynamic Objects | Object | Off / On | Track performance of all host processing heavy request | Application name or group |
Performance – Static Objects | Object | Off / On | Track performance of all static content | Application name or group |
Performance – | Object | On / On | Capture and log requests with network problems | not applicable |
Client | Page | Off / On | Track errors/performance by client | not applicable |
Watchpoints categorized as Infrastructure report on the platforms and devices that make up the web application. These Watchpoints are useful for benchmarking and monitoring the servers and tiers of the web application.
Server—Watchpoints that capture traffic based on individual servers are useful for comparing performance, load, and availability across servers. Typically, logging is not turned on for these Watchpoints. These Watchpoints can be created based on a cookie value, an IP address, or a host name that identifies a specific server.
For example: (server_ip = 10.1.1.1).
Tier—Web applications are aggregations of different functional components. To complete complex end-user requests, the web servers forward portions of the work out to back-end services. Watchpoints can be created to isolate traffic based on those application tiers, but it requires in-depth knowledge of the application. Some examples of tiers by which that traffic can be grouped are web, application, reverse proxy cache, database, authentication server, and report server.
For example, (host is "rpc.mysite.com") and (host is "image.mysite,com) are examples of Watchpoints grouped by report server and authentication server respectively.
Watchpoints categorized as Performance consist of Watchpoints for errors, slow pages, requests with network problems, static objects, and dynamic objects.
Errors—Watchpoints can be created to captured errored requests only. Individual Watchpoints can be created for different kinds of errors or errors can be grouped into one Watchpoint. It is common practice to have a Watchpoint for application errors and one for all errors. Enable logging for Watchpoints that capture errors to see the error types, who experienced them, and what caused them.
Examples of Performance Watchpoints
Error type | Status code | Completion code | Notes |
---|---|---|---|
All Errors | >=400 | 4 or 5 | This error does not include HTTP Status 401 responses. |
Content not found or Forbidden | 404/403 | 4 (error) | Watchpoint filter could be configured to check for internal referrer field. Example: |
Application Errors | 500/503 | 4 (error) | Example: (http_status = 500) or (http_status = 503) |
Frustrated Aborts | 504 1 | 2 (aborts) | A user aborts a request after waiting less than 8 seconds for the host to respond. Example: |
Server Timeout | 504 1 | 5 | A user aborts a request after waiting more than 8 seconds for the host or host does not respond in under 30 seconds. Example: |
1 Status codes of 504 with a completion code of 5 or 2 represent requests that had no HTTP response generated by the server. The 504 code is created when the server does not respond or the response exceeds the wait time.
Dynamic Objects—Watchpoints can be created to capture requests for dynamic objects. Dynamic content has to be created at the time of each request. As such, requests for dynamic content generally take longer and will include varying payload when the responses are completed. These characteristics make them more challenging to classify. Dynamic objects are usually identified with a standard file extension like .asp, .php, .jsp and .do. The host time for dynamic objects is a key metric to track for understanding the capacity and performance of web applications.
For example: (uri_stem endswith “.cgi”) or (uri_stem endswith “.asp”) or (uri_stem endswith “.jsp”).
Static Objects—Watchpoints can be created to capture requests for static objects like .gif, .jpg and .css. A Watchpoint for static objects is useful for understanding the web applications ability to handle TCP connections and deliver static content across the Internet. The host time for all static objects should be low, such as below 200ms.
For example: (uri_stem endswith “.jpg”) or (uri_stem endswith “.gif”) or (uri_stem endswith “.css”).
High Host latency—Watchpoints can be created to capture requests with high host processing time. Enable logging for Watchpoints that capture requests for high host latency. You can review the logs to identify which URLs are problematic and what parameters the user was passing to them.
For example: (host_time > 3000).
High TCP Retransmits / High OOO—Watchpoints can be created to capture requests with high TCP retransmits and “out of order” (OOO) segments. Out-Of-Order TCP segments are a good indicator of routing issues or poor connection quality. When segments are received out-of-order, the TCP stack must wait for the completion of preceding segments before passing the data up to the application layer. This source of network latency is most often coupled with a second indicator of line quality, high TCP retransmits. Abnormally high TCP retransmits can also indicate improperly set network parameters on either the client or the server. Enable logging for Watchpoints that capture requests with high OOO segments. You can review the logs for client IPs to identify which clients are having routing issues or packet loss.
For example: (tcp_retrans > 5) or (tcp_ooo > 5).
Examples of Watchpoints related to key functions and transactions
Watchpoint name | Filter |
---|---|
F – Activation Page | (uri_stem endswith “/account/activate.jsp”) |
F – Problematic Page | (uri_stem endswith “/webservicecall.jsp”) |
F1 – Login | (uri_stem endswith “/page. jsp” and uri_query(“view”) = “login”) |
F2 – Add to cart | (uri_stem endswith “/page.jsp” and uri_query(“action”) = “add_to_cart”) |
F3 – Checkout | (uri_stem endswith “/page.jsp” and uri_query(“action”) = “checkout”) |
Page definition—An application can use several different ways to invoke a call to a page. It is common to have a unique page identifier in the URI stem or in a URI parameter that can be passed through the URI query, or in a POST parameter where the value is contained in the POST submission.
Examples:
Examples of Client Watchpoints
Watchpoint name | Filter |
---|---|
C – Client X | (hostname = “clientx.mysite.com”) |
C – Customer B | (uri_query(“client_ID”) = ”CustomerB”) |