PE PowerExams Prepare. Practice. Pass.
CIS-Discovery · Domain 1 of 4

Discovery Pattern Design

About 35% of the CIS-Discovery exam — see all 4 domains.

35%
of the exam
95
practice questions
4
domains total

Patterns are the modern engine of horizontal Discovery. Where the legacy approach used a long chain of probes and sensors, a pattern is a declarative, ordered set of operations that the MID Server executes to find data, parse it, and populate Configuration Items (CIs). You author and edit patterns in the Pattern Designer, a low-code editor. Understanding what a pattern is made of and how it runs is the single most testable skill on the exam.

Anatomy of a pattern

A discovery pattern is built from sections, and each section is an ordered list of steps:

  • Identification section: runs first. Its job is to collect just enough data to identify the primary CI (for example, the host) and create or match it in the CMDB through the Identification and Reconciliation Engine (IRE). The identification section determines whether you have found a real, uniquely identifiable device before you invest effort exploring it.
  • Connection section(s): exist only in application patterns (Service Mapping). They run after an identification section has matched the CI and find the CI's outgoing connections (for example, from a load balancer to the application servers behind it, or from a running process to the database it connects to). Horizontal (infrastructure) patterns have no connection section, and a connection section never opens or authenticates the SSH, WMI or SNMP session.
  • Extension sections: add logic (often through a shared library) without editing the shipped identification section.
  • Steps and operations: every step holds exactly one operation, and steps run in order.

Operations and parsing strategies

Each pattern is a sequence of operations. Common operation types you must recognize:

  • Set Parameter Value: assign or compute a variable used later in the pattern.
  • Parse Variable / Parse File: extract structured data from raw command output or a file.
  • Process and connection collection: Parse Command Output on commands such as ps or netstat pulls running processes and their network connections (the backbone of application discovery).
  • WMI Query, SNMP Query, HTTP Get Call, Parse Command Output: protocol-specific data collection steps.
  • Create Relation/Reference: build a relationship (such as Runs on::Runs) or reference between CIs. CI attributes themselves are filled through CI attribute variables.
  • Create Connection: describe an outgoing connection; available only in connection sections of application patterns.
  • Merge Table / Filter Table / Transform Table / Union Table: manipulate the in-pattern tabular variables (Merge Table joins two tables, Filter Table keeps the rows that meet a condition).
  • Match: checks a condition and stops running the pattern if the condition is not met. It does not join tables or filter rows.

There is no generic "Web Service" operation (HTTP data collection uses HTTP Get Call) and no loop or For Each construct: table operations already work across all rows.

When you extract data from raw text, you choose a parsing strategy. The main strategies tested are:

  • Delimited text: split each line on a delimiter (space, comma, tab) into columns.
  • Configuration file strategies (for example INI or properties files): pull name = value style output.
  • Regular expression (regex): capture groups from semi-structured text. The most flexible and the most common source of pattern bugs.
  • XML / JSON / table: parse structured payloads directly into pattern variables.

Most operations write their results into a temporary variable (scalar or tabular). The documented variable kinds are global variables, CI attribute variables and temporary variables; there are no CI, Global or Connection "scopes". Later operations read from those variables. Tracing the flow of a variable from the operation that fills it to the operation that consumes it is the core troubleshooting skill.

Authoring and debugging in Pattern Designer

  • Use Debug mode to run a pattern against a chosen target, testing each step with its Test button and inspecting the value of every variable after each operation. This is how you isolate which operation produced a wrong or empty value.
  • Pattern steps run top to bottom; reordering operations changes behavior. An identification step that depends on a variable must come after the operation that sets it.
  • Extensions let you enhance a pattern (add new exploration logic) without altering its identification section, so you do not change how the primary CI is matched.
  • Patterns are versioned and can be associated with CI types; the right pattern runs based on what classification determined the device to be.

Pattern vs. probe-based discovery

  • Probes/sensors (legacy/classic) are still used in the early phases (port scanning, classification), but identification and exploration of most CI classes is pattern-driven today.
  • A pattern executes entirely on the MID Server and returns results in a single payload, which is generally more efficient than many round-trips of probes and sensors.

What to drill for Domain 1: the section types (identification, extension, and connection sections in application patterns only) and one operation per step; the order of operations and variable flow; Match vs. Merge Table vs. Filter Table; parsing strategies and when to use each; how to use Debug to find the failing step; extensions vs. editing identification; and how a connection section in an application pattern finds outgoing connections after identification.


Sample questions from this domain

Three of the 95 in this domain, with the reasoning. The full set is in the question bank.

Question 1 · easy

In ServiceNow Pattern Designer, which section of a horizontal discovery pattern is responsible for setting the correct value in the name field of the CI so that the Identification and Reconciliation Engine can match the record?

  • A. The Library Reference operation
  • B. The Identification section ✓
  • C. The Exploration section
  • D. The Connection section

Why: The Identification section populates the identifier attributes (such as name and serial number) that the IRE uses to match or create the CMDB record, and identification sections run first. A connection section exists only in application patterns and runs after identification to find the CI's outgoing connections, so it does not set identifier values. A Library Reference operation calls a shared library from an extension section and does not replace identification. Exploration is a Discovery phase name, not a pattern section.

Question 2 · easy

Which Pattern Designer operation is used to extract a value from text output by applying a regular expression and storing the result for use by later steps?

  • A. Set Parameter Value
  • B. Parse Variable ✓
  • C. Filter Table
  • D. Union Tables

Why: Parse Variable applies a parsing strategy, such as a regular expression or delimiter, to data already held in a variable and stores the extracted value in a pattern variable. Set Parameter Value assigns a value to a variable without parsing it. Filter Table keeps the rows of a tabular variable that meet a condition rather than extracting a value from text, and Union Tables appends the rows of two tables into one.

Question 3 · medium

A pattern author needs to read the contents of /etc/redhat-release on a Linux host and place the text into a temporary table for later parsing. Which Pattern Designer operation is most appropriate?

  • A. HTTP Get Call
  • B. Parse Variable
  • C. Filter Table
  • D. Parse File ✓

Why: Parse File reads a file on the target host and places its contents, parsed by the chosen strategy, into a variable or table, which fits /etc/redhat-release. Parse Variable works on data that is already in a variable, so it cannot read the file itself. HTTP Get Call collects data over HTTP from an endpoint, not from a local file, and Filter Table removes rows from an existing tabular variable rather than reading anything from the host.