Submit a ticketCall us

Systems Monitoring for Dummies
Our new eBook will teach you the fundamentals and help you create monitors and alerts that are effective, meaningful, and actionable. Monitoring is more than a checkbox on your to-do list. This free eBook will give you practical advice to help you succeed in all aspects of monitoring – discovery, alerting, remediation, and troubleshooting. Don’t miss out on this indispensable resource for newbies, experienced IT pros, and everyone in between. Register Now.

Home > Success Center > Server & Application Monitor (SAM) > Troubleshooting HTTP monitor in AppInsight for IIS

Troubleshooting HTTP monitor in AppInsight for IIS

Updated 3-13-2017

Overview

For the HTTP/HTTPS monitor in AppInsight for IIS, the implemented "automatic disabling of HTTP monitor on initial poll when no binding is working" option may give an error with mismatched component IDs. This article provides steps for finding the exact component ID having issues in your logs to investigate.

Environment

  • SAM 6.2.2, 6.2.1

 

Understanding polling and Dynamic Components

Polling components in SAM complete multiple monitoring tasks using multiple dynamic components, each with a unique ID. The polling component ID may not be not visible via the web, but the dynamic component is visible.

The HTTP monitor in AppInsight for IIS is a polling component in SAM. Each HTTP/HTTPS site monitored has a dynamic component. If an error occurs for "automatic disabling of HTTP monitor on initial poll when no binding is working", the log captures the dynamic component ID, not the polling component ID.

 

Example HTTP Monitor

On this IIS server, the polling component is executed for each web site (in standalone thread) and binding. The following IP addresses are just dummy examples and do not reflect the actual IP addresses. The following example data is available for an example component ID of 22435.

Note: This example does not include HTTPS calls. These are handled by another component for the example.

Thread Site URI Host header Response
#1 Site 1 http://10.10.10.10:80/   Response redirected
#1 Site 1 http://example.sharepoint.company.com:80/   HTTP 200 OK
#2 Site 2 http://10.10.10.11:32843/   Failed with (503) Server Unavailable
#4 Site 3 http://10.10.10.12:80/ sharepoint.company.com Failed with (503) Server Unavailable
Redirect to sharepoint.company.com
#4 Site 3 http://example.sharepoint.company.com:80/ sharepoint.company.com Failed with (401) Unauthorized

Result in Database

After the result is processed, in the database you will find information similar to following (APM_CurrentComponentStatus):

Note: The IDs are not displaying the polling component ID of a specific ID such as C22435 for the HTTPS Monitor example.

Component ID Component Status Component Error Message Site (ApplicationItemID) Description
22435 Up - NULL (Polling Component) Polling component, you can find the ID in log files, but it's hidden on the web

22517

Up - Site: Default Web Site Dynamic component, you can see the ID on the web

22541

Down The remote server returned an error: (503) Server Unavailable Site: SharePoint Web Services Dynamic component, you can see the ID on the web
22565 Down The remote server returned an error: (401) Unauthorized Site: example.sharepoint.test.com Dynamic component, you can see the ID on the web

 

Solution

To find the component ID, such as for HTTP monitor polling component ID:

  1. Open the Application Debug logs.
  2. Look for ComponentName: HTTP Bindings Monitor. You will find several matches and all threads executed by the monitor. One line example:
    742: DATE:TIME:42,571 [STP Pool: ChildProbesParallelRunner Thread #0] [C22435] DEBUG SolarWinds.APM.Probes.ProbeExecutors.ProbeHierarchyBatchExecutor - Component probe starting: JobContext - ComponentId: 22435, ComponentName: HTTP Bindings Monitor
    
  3. Take a thread number and filter all rows together with polling component ID: Thread #0] [C#####]. For example: Thread #0] [C22435]. You can locate what the thread was monitoring through a search of the thread list.
    One line example:
37: DATE:TIME,571 [STP Pool: ChildProbesParallelRunner Thread #0] [C22435] DEBUG SolarWinds.APM.Logging.ApmJobContextInfo - Setting thread property 'ComponentName' to value 'HTTP Bindings Monitor'
40: DATE:TIME,571 [STP Pool: ChildProbesParallelRunner Thread #0] [C22435] INFO  SolarWinds.APM.Common.Utility.UrlParser - ReplaceNonAsciiCharacters: Url was converted from "http://10.10.10.10:80/" to "http://10.10.10.10:80/".
42: DATE:TIME,571 [STP Pool: ChildProbesParallelRunner Thread #0] [C22435] DEBUG SolarWinds.APM.Common.Utility.UrlParser - Parse: Url was converted from "http://${IP}:80/" to "http://10.10.10:80/".
66: DATE:TIME,910 [STP Pool: ChildProbesParallelRunner Thread #0] [C22435] DEBUG SolarWinds.APM.Logging.ApmJobContextInfo - Reseting thread log data
Last modified

Tags

Classifications

Public