Moviri Integrator for BMC Helix Capacity Optimization - ServiceNow
“Moviri Integrator for BMC Helix Continuous Optimization – ServiceNow” is an additional component of the BMC Helix Continuous Optimization product. It allows to extract data from ServiceNow CMDB. The integration supports the extraction of both configuration metrics (based on ServiceNow fields) and relationships (based on ServiceNow topology).
The documentation is targeted at BMC Helix Continuous Optimization administrators, in charge of configuring and monitoring the integration between BMC Helix Continuous Optimization and ServiceNow CMDB.
Collecting data by using the ServiceNow
To collect data by using the ServiceNow ETL, do the following tasks:
II. ServiceNow Configuration JSON File
III. Configure ServiceNow ETL.
IV. Run ServiceNow ETL.
Step | Details |
---|---|
Check that the ServiceNow version is supported |
|
Grant the correct privileges in ServiceNow | |
Verify the connection between TSCO instance and ServiceNow API (proxy supported) | |
Configure data extraction and hierarchy | A valid JSON file configuration, accessible by the ETL Engine running the “Moviri Integrator for BMC Helix Continuous Optimization – ServiceNow”. Please refer to "JSON File Configuration Format" section for more information about the JSON configuration file |
JSON File Configuration Format
A. Decide What hierarchy you want to import and build in TSCO. Generally starts with Business Services → Business Application → Server Machines (Contains metrics).
B. Decide whether use the reference number for each nodes and their relationships or not. If you have two or more nodes belongs to the same ServiceNow table, it's highly recommended to use a reference number. So the relationship know which nodes it's referring to.
File Structure
The “Moviri Integrator for BMC Helix Continuous Optimization – ServiceNow” requires as input a JSON file following the JSON schema described in the following file (ServiceNow_JSON_Schema.json).
The following table contains the description for each field (use “dot notation” to traverse element in the JSON schema):
Property | Description | Example |
---|---|---|
JSON Configuration File | ||
configVersion | Version of the JSON file configuration | “1.0” |
links | Array of “link” element, defining nodes and relationships |
|
standaloneEntities | Array of “node” elements, identifying the list of entities that are not visited by any relationship. These nodes will appear under the domain configured in the ETL |
"standaloneEntites": [{ |
Link Element: define a set of hierarchies. You can have as many as links as necessary. | ||
links.tscoRelType | Type of TSCO relationship | “contains” |
links.nodes | Array of “node” elements identifying the levels that should be imported. The array must include a “root” and a “leaf” node |
|
links.relationships | Array of “relationship” elements, identifying the connections that should be imported. It must include at least one element |
|
Node Element: each nodes is a type of entity in TSCO. | ||
node.type | The type of the node. This property accepts three possible values:
| “root” |
node.ref | (Optional) If you use a reference number, then define ref on each nodes. Ref of each nodes within the same link should be unique | "0001" |
node.snowFilter | ServiceNow query that can be used to filter the type of node to be extracted from ServiceNow API | “parent.classification=Production^name=srv001” |
node.snowClassName | ServiceNow class name that identifies the entity. It must be a valid ServiceNow table. | “cmdb_ci_server” |
node.tscoLookupField | ServiceNow field (available in the snowClassName table) that will used as simple lookup value. | “name” |
node.tscoNodeName | ServiceNow field (available in the snowClassName table) that will used as entity name | “name” |
node.tscoTypeName | A valid TSCO entity type name | “gen” |
node.tscoCatName | A valid TSCO entity category (“APP”, “SYS”, “WKLD”) | “SYS” |
node.hidden | (Optional) a hidden node will not be shown in TSCO hierarchy. Only "inter" node can be hidden. If not defining, default value is "no" | "yes" |
node.metrics | Array of “metric” elements, identifying configuration metrics to be imported |
|
node.tagType | (Optional) Define the tag type for "inter" nodes' names above "leaf" as tag. For example, if tagType "Web_Server" is defined on nodes who are direct parent above leaf nodes, no matter the inter nodes is hidden or not, the inter node's name will be imported as tag with tag type "Web_Server". | "Web_Server" |
Metric Element: metrics imported from leaf nodes | ||
metric.snowMetric | ServiceNow field (available in the snowClassName table) whose value will be imported in TSCO. Use “dot notation” to traverse fields represented as ServiceNow link | “ram” |
metric.tscoMetric | A valid TSCO metric used to map the ServiceNow Field | “TOTAL_REAL_MEM” “HW_VENDOR” |
metric.scaleFactor | The scale factor to convert the ServiceNow field to the proper metric unit | 1024 |
metric.tagType | (Optional) If want to use this metric value as tag, define tagType here | "OS_VER" |
Relationship Element: The 1-to-1 relationship between two nodes. The number of relationships are number of nodes -1. | ||
relationship.snowRelType | ServiceNow relationship class type | “Depends On::Used by” |
relationship.snowRelParType | ServiceNow class name that identifies the parent entity of the relationship. It must be a valid ServiceNow table. If use the reference number, then use corresponding node.ref as value | “cmdb_ci_service” / "0001" |
relationship.snowRelChildType | ServiceNow class name that identifies the child entity of the relationship. It must be a valid ServiceNow table. If use the reference number, then use corresponding node.ref as value | “cmdb_ci_server” /"0002" |
relationship.snowFilter | ServiceNow query that can be used to filter the list of relationships to be extracted from ServiceNow API | “parent.classification=Production^name=srv001” |
- ServiceNow REST API Explorer
- (within the context of a Server or Business Service) Dependency View
Example I.
As example, you can refer to the following ServiceNow topology:
Please notice that this topology contains both Linux Servers (class “cmdb_ci_linux_server”, linked via Web Server, class “class_ci_web_server”) and Windows Servers (class “cmdb_ci_win_server”).
This topology can be represented by the following JSON configuration file (ServiceNow_Configuration_Example.json).
Considering the JSON configuration file described above, the “Moviri Integrator for BMC Helix Continuous Optimization – ServiceNow” will create the following hierarchy in the TSCO workspace:
Example II.
Considering the above example with modification: using reference number, have hidden node and use last inter node as leaf node's tag value. The configuration file will look like this example2Ref_hidden_tag.json
Note that in this case, the inter node above leaf node is defined to be "hidden", so they will be not imported as TSCO hierarchy. But since we defined tagType on the inter node above leaf node, even though the inter node is hidden, the name of the inter node still appears on leaf node as a tagType "WebServer"'s value. The hierarchy in TSCO will looks like this:
The leaf node will have a tagType called "WebServer" using the hidden inter node's name as values as PS_Apache01, PS_Apache02 or PS_Apache03.
Example III.
As example, you can refer to the following dependency views from ServiceNow:
These topologies can be represented by the following JSON configuration file (ServiceNow_Configuration_Example_1.json). They both starts with root (cmdb_ci_service) and goes to inter (cmdb_ci_service) and reaches to leaf (cmdb_ci_server).
Considering the JSON configuration file described above, the “Moviri Integrator for BMC Helix Continuous Optimization – ServiceNow” will create the following hierarchy in the TSCO workspace:
A. Configuring the basic properties
Some of the basic properties display default values. You can modify these values if required.
To configure the basic properties:
- In the console, navigate to Administration > ETL & System Tasks, and select ETL tasks.
On the ETL tasks page, click Add > Add ETL. The Add ETL page displays the configuration properties. You must configure properties in the following tabs: Run configuration, Entity catalog, and Amazon Web Services Connection
On the Run Configuration tab, select Moviri - ServiceNow Extractor from the ETL Module list. The name of the ETL is displayed in the ETL task name field. You can edit this field to customize the name.
- Click the Entity catalog tab, and select one of the following options:
Shared Entity Catalog:
- From the Sharing with Entity Catalog list, select the entity catalog name that is shared between ETLs.
- Private Entity Catalog: Select if this is the only ETL that extracts data from the ServiceNow resources.
Click the ServiceNow - Connection Parameters tab, and configure the following properties:
Property Name
Value Type
Required
Default
Description
ServiceNow API URL
String
Yes
ServiceNow API URL, with the format http(s)://<servicenow>:<port>
ServiceNow API username
String
Yes
User used to access ServiceNow API
ServiceNow API password
String
Yes
Password for the user used to access ServiceNow API
Use HTTP Proxy?
String
Yes
No
Select ‘yes’ if an HTTP proxy is required to connect to ServiceNow API
Proxy Host
String
Proxy FQDN or IP Address
Proxy Port
String
Proxy server port
Proxy Username
String
Proxy server username
Proxy Password
String
Proxy server password
6. Click the ServiceNow - Extraction tab, and configure the following properties:
Property Name | Value Type | Required | Default | Description |
---|---|---|---|---|
Use Reference Number in json Configuration | Boolean | Yes | If uses Reference number. If "yes", "node.Ref" has to be defined configuration Json file, and relationship.snowRelParType and relationship.snowRelChiType needs to use the reference number refer to the corresponding nodes. | |
JSON file configuration full path | String | Yes |
| Absolute path to the JSON configuration file accessible by the ETL engine |
7. (Optional) Override the default values of properties in the following tabs:
The ETL tasks page shows the details of the newly configured ServiceNow ETL.
(Optional) B. Configuring the advanced properties
You can configure the advanced properties to change the way the ETL works or to collect additional metrics.
To configure the advanced properties:
- On the Add ETL page, click Advanced.
Configure the following properties:
- Click Save.
The ETL tasks page shows the details of the newly configured ServiceNow ETL.
After you configure the ETL, you can run it to collect data. You can run the ETL in the following modes:
A. Simulation mode: Only validates connection to the data source, does not collect data. Use this mode when you want to run the ETL for the first time or after you make any changes to the ETL configuration.
B. Production mode: Collects data from the data source.
A. Running the ETL in the simulation mode
To run the ETL in the simulation mode:
- In the console, navigate to Administration > ETL & System Tasks, and select ETL tasks.
- On the ETL tasks page, click the ETL. The ETL details are displayed.
- In the Run configurations table, click Edit to modify the ETL configuration settings.
- On the Run configuration tab, ensure that the Execute in simulation mode option is set to Yes, and click Save.
- Click Run active configuration. A confirmation message about the ETL run job submission is displayed.
- On the ETL tasks page, check the ETL run status in the Last exit column.
OK Indicates that the ETL ran without any error. You are ready to run the ETL in the production mode. - If the ETL run status is Warning, Error, or Failed:
- On the ETL tasks page, click in the last column of the ETL name row.
- Check the log and reconfigure the ETL if required.
- Run the ETL again.
- Repeat these steps until the ETL run status changes to OK.
B. Running the ETL in the production mode
You can run the ETL manually when required or schedule it to run at a specified time.
Running the ETL manually
- On the ETL tasks page, click the ETL. The ETL details are displayed.
- In the Run configurations table, click Edit to modify the ETL configuration settings. The Edit run configuration page is displayed.
- On the Run configuration tab, select No for the Execute in simulation mode option, and click Save.
- To run the ETL immediately, click Run active configuration. A confirmation message about the ETL run job submission is displayed.
When the ETL is run, it collects data from the source and transfers it to the database.
Scheduling the ETL run
By default, the ETL is scheduled to run daily. You can customize this schedule by changing the frequency and period of running the ETL.
To configure the ETL run schedule:
- On the ETL tasks page, click the ETL, and click Edit. The ETL details are displayed.
On the Edit task page, do the following, and click Save:
- Specify a unique name and description for the ETL task.
- In the Maximum execution time before warning field, specify the duration for which the ETL must run before generating warnings or alerts, if any.
- Select a predefined or custom frequency for starting the ETL run. The default selection is Predefined.
- Select the task group and the scheduler to which you want to assign the ETL task.
Click Schedule. A message confirming the scheduling job submission is displayed.
When the ETL runs as scheduled, it collects data from the source and transfers it to the database.
Verify that the ETL ran successfully and check whether the ServiceNow data is refreshed in the Workspace.
To verify whether the ETL ran successfully:
- In the console, click Administration > ETL and System Tasks > ETL tasks.
- In the Last exec time column corresponding to the ETL name, verify that the current date and time are displayed.
- In the console, click Workspace.
- Expand (Domain name) > Systems > ServiceNow> Instances.
- In the left pane, verify that the hierarchy displays the new and updated ServiceNow instances.
- Click a ServiceNow entity, and click the Metrics tab in the right pane.
- Check if the Last Activity column in the Configuration metrics and Performance metrics tables displays the current date.
ServiceNow Workspace Entity | Details |
---|---|
Entities | Entities are defined from Configuration Json file node ServiceNow tables |
Hierarchy | Hierarchies are defined as Configuration Json file relationships entities |
Configuration and Performance metrics | Metrics are defined as Configuration Json file metric entities |
Lookup Consideration | Lookup values are defined in the Configuration Json file |
Tags | Tags are defined in the Configuration Json file |
Comments
Log in or register to comment.