Application Dependency Mapping (ADM) probes collects information on the processes running on a server. If the process matches the conditions of a process classifier, probes will be triggered to get more information on application. CIs for such applications are created, a relationship is also created to the server where the application is running on. This article provides information on the Application Dependency Mapping flow and some troubleshooting steps.
Application Dependency Mapping Flow
The Application Dependency Mapping probe is triggered once the Identification phase completes for a device being discovered, other exploration phase probes are triggered as well after identification is complete.
The Application Dependency Mapping:
- Gathers the running processes and connections on a server via the ADM probe. There are multiple ADM probes. The ADM probe triggered will depend on the classifier, unix, windows, linux, etc.
- The data returned by the ADM probe is processed by the ADM sensor. The ADM sensor creates a JSON payload that is enriched by the DiscoveryJSONADMSensor script include.
- The DiscoveryJSONADMSensor calls the ApplicationDependencyMapping script include.
- Finally, the ApplicationDependencyMapping script include creates the application CI according to the "Discovery Definition > CI Classification > Processes" configuration.
The following document highlights some of the applications discovered out of box:
The following document goes over NGINX web server discovery and is a good example of a process classifier:
The following links will also be helpful in understanding ADM and process classification:
- Create a Discovery process classification
- On classification script objects for Discovery
- Create a Discovery process handler
The following are some of the issues often seen and possible solutions.
Application Dependency Mapping probe not triggered | No application records created
If no application CIs are created at all when discovering a server, the application dependency mapping probe may be turned off for the specific class. As a solution, check if the probe is present on the classifier and make sure it is active.
- Go to "Discovery Definition > CI Classification > All".
- Search for the classifier used when discovering the server, "table=cmdb_ci_win_server" for windows servers in the following example.
- Open the classifier and find the probe on "Triggers Probes" related list.
Application Dependency Mapping probe triggered, however application is not created
In this case, it is likely that the process information did not have a condition match under the discovery_classy_proc table. For such cases:
- Open the Application Dependency Mapping input ecc_queue record.
- Find the process in the payload and check for any potential errors in the payload.
- Compare the process information with the process classifier which should have created the application and triggered further exploration probes.
- Adjust the process classifier conditions to match on the intended process if necessary.
In the following example we discover test server appserver-01. We can see in the following image that a "SQL Server Analysis Service" and two "MSFT SQL Instances" were discovered and added to the CI.
The following screenshot shows the ECC Queue related list for the discovery status, ordered newest to oldest. We can see that probes were triggered for each application discovered after the ADM input was processed.
Taking the "Windows - MSSQL" probe as an example, we can search "Discovery Definition > Probes" for "Windows - MSSQL" to find the probe. From the "Triggered by classifier" related list we can find the process classifier which triggered the probe.
Next, we can see the condition in the process classifier which triggers the "Windows - MSSQL" probe.
Finally, we can see the process information in the payload returned by the "Windows - Application Dependency Mapping" probe.
The following blog post has an example on how to configure discovery to collect information on applications not discovered out of box: