Patterns and horizontal discovery
-
- UpdatedAug 3, 2023
- 8 minutes to read
- Vancouver
- Discovery
A pattern is a series of operations that tell Discovery which CIs to find on your network, what credentials to use, and what tables to populate in the CMDB.
How Discovery uses patterns
A pattern performs the same function as a probe: it identifies and explores a target CI. Discovery uses patterns only during the last two phases of discovery: Identification and Exploration.
When you kick off horizontal discovery with patterns, the Scanning and Classification phases run as they would if you were not using patterns (only using probes and sensors). After the Classification stage completes, Discovery looks at the trigger probes on the classifier to see which probe to launch. When the Horizontal Pattern probe is specified as a trigger probe, Discovery launches both the Horizontal Pattern probe and the pattern that it specifies.
Differences between probes and patterns
The main differences between using patterns for horizontal discovery and using only probes for horizontal discovery are outlined in this table:
Patterns for top-down and for horizontal discovery
Both Discovery and Service Mapping can use the same pattern for horizontal and top-down discovery. But they are edited differently. See Create or customize patterns for all steps. If you take a pattern that was exclusively used for top-down discovery and you want to use it for horizontal discovery, you have to make a few modifications. See Use a pattern for horizontal discovery for instructions.
Pattern Orchestrator
Pattern Orchestrator is a process that allows a discovery to trigger multiple patterns related to a collection of data in a hierarchical manner. This is to help address issues with large datasets (or large payloads) that can cause slow discoveries and OOM (out-of-memory) issues on a MID Server.
The Pattern Orchestrator is accessed in the Pattern Orchestrator tab in the Pattern Designer. The tab contains three new tables: Trigger Rules, Orchestrator Input, Orchestrator Output.

- Count must specify a number for the Batch Size Count. The child pattern is triggered each time the parent pattern sends the specified number of CIs.
- All uses every CI sent from the parent pattern and triggers the child one time.
- Use Parent Context Only relies on the parent pattern's output settings to dictate which child pattern should trigger. This is useful when two patterns have the same parent, but you need one to trigger before the other.
The Orchestrator Input uses the CI Type field to accept CI types from its parent pattern or parent's parent pattern. The Saved As field saves the CI type's name to be used in the pattern. Service accounts are a special case and must be named service_account. The CI Attributes field uses any outputs from the parent pattern to select which attributes to use.
The Orchestrator Output controls which data will be sent to subsequent patterns. It has the fields CI Class Type, which is the type of CI being discovered, and Variable Names which specifies the variables to be passed on as inputs to child patterns. Any variables not specified in Variable Names are not sent to child patterns. The variable source_native_key can be manually added by searching for it in the Variable Names field.
Source Native Key
In some situations, one pattern may get partial information about a CI, while another pattern gets partial info about the same CI. Instead of creating redundant records or discarding partial information, the information is stored in the CMDB IRE Partial Payloads [cmdb_ire_partial_payloads_list] table. After enough patterns gather partial information, it can correlate that data to provide complete information on the CI.
Pagination
Another way to reduce stress on the MID Server's memory is pagination. Pagination breaks a large payload up into smaller, ordered slices called pages. Pagination limits the maximum size of items received and generates a token. Once that page is processed, the token is passed to the next page, which is then processed, until all the pages are completed.
Pagination is controlled from the Custom Operations table [sa_custom_operation]. The field Is pagination capable is hidden by default on the form, and can be added to the form with the Personalize Form controls. Once that is set to true, the associated pattern in the pattern designer has the field Paginated. Setting the Paginated field to true runs that step in the pattern with pagination.
Add the Horizontal Pattern probe to a classifier
To use a pattern for the identification and exploration phases of horizontal discovery, you must add the Horizontal Pattern probe to the classifiers for the CIs are you trying to discover.
Before you begin
About this task
Procedure
Use a pattern for horizontal discovery
If you want to use a new pattern, or if you already have a pattern that you were using for top-down discovery, you can use the pattern for horizontal discovery with a few modifications to the relevant classifier.
Before you begin
About this task
Procedure
What to do next
Run the pattern in Debug mode to test it. When you are sure the pattern works, you can run discovery by setting up a discovery schedule or running an on-demand discovery. See Schedule a horizontal Discovery for more information.