DXO2 Service Modeling – Manual Discovery & Transaction Enablement
search cancel

DXO2 Service Modeling – Manual Discovery & Transaction Enablement

book

Article ID: 425899

calendar_today

Updated On:

Products

DX Operational Observability

Issue/Introduction

This KB and attached document is intended for DXO2 customers and advanced users who want to leverage advanced service modeling capabilities using REST APIs. Specifically, it explains:

• How to enable Manual Discovery in a DXO2 Service definition
• How to control graph traversal behavior using traverseQueries
• How to enable Transaction discovery using followTransactions
• How these configurations fit into a complete DXO2 Service definition

Environment

DX O2

Resolution

1. Purpose

This approach is typically used when:
• Auto-discovery is not sufficient
• Customers want precise control over CI relationships
• Services must be built programmatically or via automation

2. What is Manual Discovery in DXO2?

Manual Discovery allows users to explicitly define how DXO2 should traverse inventory
relationships to build a service topology.
Instead of relying purely on automatic discovery, the user specifies:
• Which relationships to follow
• In which direction
• How deep the traversal should go
• Whether traversal steps are optional or mandatory
This is configured using the traverseQueries block inside a service's serviceContent.

3. Manual Discovery – Traversal Configuration

The traverseQueries array defines graph traversal rules used during service discovery

3.1 Supported Traversal Parameters

Parameter Required     Description
semantic              Yes   Semantic relationship name as defined in inventory (e.g.,contains, runs_on)
displayName        No    Human-readable name for the traversal step
direction                No    Direction of traversal: FORWARD (default), BACKWARD, ANY
repeat                   No    Number of times this traversal step is repeated (default: 1)
repeatMin             No    Minimum number of repeats that must satisfy filters (default =
repeat)
optional                 No    If true, traversal behaves like a LEFT JOIN; otherwise
INNER JOIN
keepBaseContent No    Retains base-level entities in service content
keepLevelContent No   Retains intermediate-level entities
next                       No   Nested traversal steps (array of traverseQueries)

3.2 Direction Semantics

Direction           Behavior
FORWARD       Traverse from source → target (default)
BACKWARD    Traverse from target → source
ANY                 Traverse in both directions

3.3 Optional Traversal Behavior

• optional = false (default)
o Traversal works like an INNER JOIN
o All traversal steps from leaf to root must match

• optional = true
o Traversal works like a LEFT JOIN
o Only parent rules up to root must match

This is useful when some relationships may not exist for all entities.

4. Example – Manual Discovery Traversal

"traverseQueries": [
{
"displayName": "App to System",
"semantic": "contains",
"repeat": 1,
"direction": "BACKWARD",
"keepBaseContent": true,
"keepLevelContent": true,
"next": null
}
]

Explanation
• Traverses the contains relationship
• Moves backward in the inventory graph
• Includes both base and intermediate entities in service topology

5. Enabling Transaction Discovery

DXO2 allows services to automatically discover transactions associated with discovered
entities.

5.1 Configuration Option
Transaction discovery is enabled using the options block:
"options": {
"followTransactions": true,
"includeExperience": false
}

Option Details
Option Description
followTransactions Enables transaction discovery for the service
includeExperience Enables experience-level modeling (optional)

Setting followTransactions: true is sufficient to enable transaction discovery

6. Complete DXO2 Service Definition (with Highlights)

Below is a complete Service definition with Manual Discovery and Transaction Enablement clearly highlighted.


"vertices": [
{
"attributes": {
"type": "saService",
"name": "my_custom_service",
"serviceType": "Service",
"state": "ACTIVE",
"maintenance": false,
"situationsIncludeChildServices": false,
"serviceContent": [
{
"query": [
{
"attributeName": "app_name",
"attributeValue": "my_custom_app",
"operator": "IN"
}
],

// ===== MANUAL DISCOVERY CONFIGURATION =====
"traverseQueries": [
{
"displayName": "App to System",
"semantic": "contains",
"repeat": 1,
"direction": "BACKWARD",
"keepBaseContent": true,
"keepLevelContent": true,
"next": null
}
],

// ===== TRANSACTION ENABLEMENT =====
"options": {
"followTransactions": true,
"includeExperience": false
}
}
],
"root_service": null,
"tags": [],
"location": "",
"description": "",
"customProperties": [],
"customMetrics": [],
"metrics": []
}
}
],
"edges": []
}

7. Key Takeaways


• Manual Discovery gives full control over service topology creation
• traverseQueries define how inventory relationships are traversed
• direction, repeat, and optional control traversal precision
• Transactions are enabled simply by setting followTransactions: true
• This approach is ideal for advanced service modeling, automation, and custom onboarding flows

 

Additional Information

Techdocs DXO2 - Service Analytics APIs

Attachments

DXO2 Service Modeling.pdf get_app