Moviri Integrator for TrueSight Capacity Optimization - Dynatrace
The integration supports the extraction of both performance and configuration."Moviri Integrator for BMC Helix Continuous Optimization – Dynatrace" is an additional component of BMC Helix Continuous Optimization product. It allows extracting data from Dynatrace. Relevant capacity metrics are loaded intoBMC Helix Continuous Optimization, which provides advanced analytics over the extracted data.
The documentation is targeted at BMC BMC Helix Continuous Optimization administrators, in charge of configuring and monitoring the integration between BMC BMC Helix Continuous Optimization and Dynatrace.
If you used the Moviri Integrator for BMC Helix Continuous Optimization – Dynatrace before, the hierarchy will be changed in this version 20.02.01, and some entities will be gone and left at "All systems and business drivers → Unassigned".
This version of the Moviri Integrator for – BMC Helix Continuous Optimization Dynatrace uses Metrics v2 endpoint for data extraction, which is different than the previous version. Check the "Verify Dynatrace Data" section for detailed metrics.
Collecting data by using the Dynatrace
To collect data by using the Dynatrace ETL, do the following tasks:
III. Run Dynatrace ETL.
IV. Verify Dynatrace Data.S
V. Custom metrics
Step I. Complete the preconfiguration tasks
| Check that the Dynatrace version is supported |
|
| Generate an authorization token to access Dynatrace API. | Generate Token To generate the token follow these steps:
|
| Verify if the token is working | Verify Token Execute the following command from a linux console:
An output similar to the following should be obtained: {"version": "1.137.79.20180123-105448"} |
Step II. Configure the ETL
Step II. Configure the ETL
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 - Dynatrace 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 Dynatrace resources.
- Click the Dynatrace - Connection Parameters tab, and configure the following properties:
Property
|
|---|
Description
| Dynatrace URL prefix | Dynatrace URL. The URL must be in the form "https://{id}.live.dynatrace.com" |
| Dynatrace API Token | Dynatrace API Token (Generated in the Prerequisite) |
| Semi-colon separated list of HTTP Headers (<header>:"<value>") | Extra Http Header key-valye pair used for accessing Dynatrace API (semi-colon separate list for multiple HTTP Headers) |
| Use HTTP Proxy to connect to Dynatrace | Select yes if a HTTP proxy is required in order to connect to Dynatrace API |
| Use HTTPS | Whether or not use HTTPS to connect to the HTTP(S) proxy. |
| HTTP Proxy Address | HTTP Proxy FQDN or IP Address |
| HTTP Proxy Port | HTTP(S) proxy server port |
| HTTP Proxy Username | HTTP(S) proxy server username |
| HTTP Proxy Password | HTTP(S) proxy server password |
Click the Dynatrace - Extraction tab, and configure the following properties:
| Default Lastcounter (YYYY-MM-DD HH24:MI:SS) | Initial timestamp from which extract data. |
| Max Extraction Period (hours) | Specify the max extraction period in hours (default is 24 hours / 1 day). |
| Entities batch size | Specify how many entities is extracted at the same time from Dynatrace. |
| Timeout seconds | Specify timeout seconds for Dynatrace API connection |
| Waiting period in seconds when hit API limits | Specify waiting period when hit Dynatrace API number of request per minute limit |
| Data Resolution | Select at which resolution data will be imported. Possible values are:
|
| Extraction time chunk size (hour), 0 for no limitation | Specify how many hours of data can be extracted once (default is 0, no limitation, extracting all data from last counter) |
| ETL waits when API calls reaches this number | Specify the safeguard threshold for the 'X-RateLimit-Remaining'. The ETL will wait for the next time slot available (or up to the Timeout seconds) when the 'X-RateLimit-Remaining' header will reach this value. More information at (Dynatrace API - Access limit ) |
| Page Size | Specify page size of each Dynatrace response, page size represents how many data entries returned from Dynatrace API |
| Lag hour to now as end timestamp | If ending timestamp of extraction period is close to current timestamp, specify lag hours from the current timestamp for Dynatrace Metric API |
| Create 'Default Business Service' domain? | Select if the Dynatrace ETL should be configured to support the Business Service View. |
| Tag Type for Service Pools? | Specify which Tag Type should be used to import Service Pools, to be used in the Business Service View (default AppTier). |
| Alternative name for 'Default Business Service' domain | Alternative name for default business service view |
| Extract Dynatrace Tags? | Select if the Dynatrace ETL should import of Dynatrace Tag |
| Enable Default Tag for Dynatrace tags without a key/value pair? | Select if the Dynatrace ETL is able to import Dynatrace Tag without a Key Value. Not all the Dynatrace Tag are available in the format of key:value (imported as TAGTYPE:TAG). This property enables the possibility to import Dynatrace Tag configured with just a value |
| Default tagtype | TAGTYPE to use for Dynatrace Tag without a key |
| Extract Application Tags? | Select if the Dynatrace ETL should import Dynatrace Tag defined at the Application level |
| Allowlist Application Tags (Leave empty to extract ALL tags; semicolon separated) | Allowlist of Dynatrace Tag to be imported at the Application Level (semi-colon separated) |
| Extract Service Tags? | Select if the Dynatrace ETL should import Dynatrace Tag defined at the Service level |
| Allowlist Service Tags (Leave empty to extract ALL tags; semicolon separated) | Allowlist of Dynatrace Tag to be imported at the Service Level (semi-colon separated) |
| Extract Host Tags? | Select if the Dynatrace ETL should import Dynatrace Tag defined at the Host level |
| Allowlist Host Tags (Leave empty to extract ALL tags; semicolon separated) | Allowlist of Dynatrace Tag to be imported at the Host Level (semi-colon separated) |
| Host Lookup Information | This property allow to define which value should be used as Strong Lookup Field
|
| Import WEB_ACTIVE_SESSIONS or USERS_CURRENT as TOTAL_EVENTS for Business Service View | Choose to import TOTAL_EVENTS data mapped to WEB_ACTIVE_SESSIONS metric or USERS_CURRENT metric. |
Click the Dynatrace - Filter tab, and configure the following properties:
| Collect infrastructure metrics | If set to true, the connector will collect metrics at host level (VM, Generic) |
| Import indirect services for each applications | If set to true, the indirect services will be imported |
| Skip Process Group aggregation | If set to true, the processes data won't be aggregated to Services |
| Extract additional .NET metrics | If set to true, additional metrics relative to .NET scope will be imported. In order to create such metrics in your BHCO environment, please contact support to get the .NET metrics installation package. |
| Extract service key request metrics | If set to true, the key request metrics (BYSET_* Business Driver Metrics) will be imported |
| Extract all hosts | If set to true, all the hosts (even the one not assigned to any application/service) will be imported. Host not assigned to any application will be available in the "Infrastructure" domain |
| Extract all services | If set to true, all the services (even the one not assigned to any application) will be imported. Services are not assigned to any application will be available in the "Services" domain |
| Extract BYFS_ metrics for hosts? | If set to true, it will import byfs_metrics, which results in a very slow execution since it's not aggregated. Default is "No" If set to true, the Disk's UUID (format DISK-123456789) will be used as sub object names. If want to use disk name (path), manually add a property "extract.dynatrace.disk.name" and set to "true". Extracting Disk names will require to use API V2 Read Entities scope. Please refer to "Generate the token" section above. Using disk name (path) will also results in a slow execution. |
| Extract network interface metrics for hosts? | If set to true, it will extract network interfaces from the API and create a map |
| Change entitytype based on Cloud type? | Change entity type based on cloud type, limited to aws, gcp, azure, and oracle. Openstack or other vm platform type will be put as "generic". |
| Custom metrics JSON file location | The location of where the custom metrics configuration JSON file. If not want to use the custom metrics, leave this field empty. |
| Application Allowlist (; separated) | Semicolon separated list of Java Regular Expression that will be used to identify the applications to be imported (multiple Regular Expressions will be considered in "OR" clause) |
| Application Denylist (; separated) | Semicolon separated list of Java Regular Expression that will be used to identify the applications not to be imported (multiple Regular Expressions will be considered in "OR" clause) |
| Application Allowlist (; separated), support Application ID | Semicolon separated list of Application ID that will be used to identify the applications to be imported (multiple Regular Expressions will be considered in "OR" clause). This property does not accept Regular Expression, an exact match of the Application ID will be performed. |
| Application Denylist (; separated), support Application ID | Semicolon separated list of Application ID that will be used to identify the applications to be imported (multiple Regular Expressions will be considered in "OR" clause). This property does not accept Regular Expression, an exact match of the Application ID will be performed. |
| Application Injection Type Allowlist (; separated) | Semicolon separated list of Injection Types to be imported. This property does not accept regular expressions, an exact match of Injection Types will be performed. |
| Application Injection Type Denylist (; separated) | Semicolon separated list of Injection Types to not be imported. This property does not accept regular expressions, an exact match of Injection Types will be performed. |
| Host Allowlist (; separated) | Semicolon separated list of Java Regular Expression that will be used to identify the hosts to be imported (multiple Regular Expressions will be considered in "OR" clause) |
| Host Denylist (; separated) | Semicolon separated list of Java Regular Expression that will be used to identify the hosts not to be imported (multiple Regular Expressions will be considered in "OR" clause) |
| Host Allowlist (; separated), support Host ID | Semicolon separated list of Host ID that will be used to identify the applications to be imported (the Regular Expressions will be considered in "OR" statements). This property does not accept Regular Expression, an exact match of the Host ID will be performed. |
| Host Denylist (; separated), support Host ID | Semicolon separated list of Host ID that will be used to identify the applications not to be imported (the Regular Expressions will be considered in "OR" statements). This property does not accept Regular Expression, an exact match of the Host ID will be performed. |
| Host Monitoring Mode filter Allowlist (; separated) | Semicolon separated list of Host Monitoring Modes to be imported. This property does not accept regular expressions, an exact match of the Host Monitoring Modes will be performed. |
| Host Monitoring Mode filter Denylist (; separated) | Semicolon separated list of Host Monitoring Modes to not be imported. This property does not accept regular expressions, an exact match of the Host Monitoring Modes will be performed. |
| Host Network Zone filter Allowlist (; separated) | Semicolon separated list of Host Network Zones to be imported. This property does not accept regular expressions, an exact match of the Host Network Zones will be performed. |
| Host Network Zone filter Allowlist (; separated) | Semicolon separated list of Host Network Zones to not be imported. This property does not accept regular expressions, an exact match of the Host Network Zones will be performed. |
| Host Operating System Type filter Allowlist (; separated) | Semicolon separated list of Host Operating System Types to be imported. This property does not accept regular expressions, an exact match of the Host Operating System Type will be performed. |
| Host Operating System Type filter Denylist (; separated) | Semicolon separated list of Host Operating System Types to not be imported. This property does not accept regular expressions, an exact match of the Host Operating System Type will be performed. |
| Host State filter Allowlist (; separated) | Semicolon separated list of Host States to be imported. This property does not accept regular expressions, an exact match of the Host States will be performed. |
| Host State filter Denylist (; separated) | Semicolon separated list of Host States to not be imported. This property does not accept regular expressions, an exact match of the Host States will be performed. |
| Host Hypervisor Type filter Allowlist (; separated) | Semicolon separated list of Host Hypervisor Types to be imported. This property does not accept regular expressions, an exact match of the Host Hypervisor Types will be performed. |
| Host Hypervisor Type filter Denylist (; separated) | Semicolon separated list of Host Hypervisor Types to not be imported. This property does not accept regular expressions, an exact match of the Host Hypervisor Types will be performed. |
| Service Allowlist (; separated) | Semicolon separated list of Java Regular Expression that will be used to identify the services to be imported (multiple Regular Expressions will be considered in "OR" clause). |
| Service Denylist (; separated) | Semicolon separated list of Java Regular Expression that will be used to identify the services not to be imported (multiple Regular Expressions will be considered in "OR" clause). |
| Service Allowlist (; separated), support Service ID | Semicolon separated list of Service ID that will be used to identify the applications to be imported (the Regular Expressions will be considered in "OR" statements). This property does not accept Regular Expression, an exact match of the Service ID will be performed. |
| Service Denylist (; separated), support Service ID | Semicolon separated list of Service ID that will be used to identify the applications not to be imported (the Regular Expressions will be considered in "OR" statements). This property does not accept Regular Expression, an exact match of the Service ID will be performed. |
| Service Software Technology Allowlist (; separated) | Semicolon separated list of Software Technologies to be imported. This property does not accept regular expression, an exact match of the Software Technologies will be performed. |
| Service Software Technology Denylist (; separated) | Semicolon separated list of Software Technologies to not be imported. This property does not accept regular expression, an exact match of the Software Technologies will be performed. |
| Disk allowlist (; separated) | Semicolon separated list of Disk names to be imported. This property does not accept regular expression, an exact match of the Disk Name will be performed. |
| Disk denylist (; separated) | Semicolon separated list of Disk names not to be imported. This property does not accept regular expression, an exact match of the Disk Name will be performed. |
| Disk allowlist (; separated), support Disk ID | Semicolon separated list of Disk IDs to be imported. This property does not accept regular expression, an exact match of the Disk ID will be performed. |
| Disk denylist (; separated), support Disk ID | Semicolon separated list of Disk IDs not to be imported. This property does not accept regular expression, an exact match of the Disk ID will be performed. |
| Disk Filesystem Type allowlist (; separated) | Semicolon separated list of Disk Filesystem Types to be imported. This property does not accept regular expression, an exact match of the Disk Filesystem Type will be performed. Common Filesystem Types to include could be, xfs;ext4. |
| Disk Filesystem Type denylist (; separated) | Semicolon separated list of Disk Filesystem Types not to be imported. This property does not accept regular expression, an exact match of the Disk Filesystem Type will be performed. Common Filesystem Types to exclude could be, overlay;tmpfs;ramfs. |
| Tags for filtering Apps (; separated) | Semicolon separated list of tags to filter out the applications. Format can be [Context]tag:value or tag:value or tag. All the tags must apply to the in-scope Applications (multiple tags will be considered in "AND" clause) |
| Tags for filtering Services (; separated) | Semicolon separated list of tags to filter out the services. Format can be [Context]tag:value or tag:value or tag. All the tags must apply to the in-scope Service (multiple tags will be considered in "AND" clause) |
| Tags for filtering Hosts(; separated) | Semicolon separated list of tags to filter out the hosts. Format can be [Context]tag:value or tag:value or tag. All the tags must apply to the in-scope Applications (multiple tags will be considered in "AND" clause) |
File Filter option available.
An option to add Domain name to lookup value to the infrastructure folder, only there when using business services, is available.
The following image shows sample configuration values for the basic properties.
- (Optional) Override the default values of properties in the following tabs:
Run configuration
Module selection
|
|---|
Select one of the following options:
- Based on datasource: This is the default selection.
- Based on Open ETL template: Select only if you want to collect data that is not supported by BMC Helix Continuous Optimization.
| Module description | A short description of the ETL module. |
|---|---|
| Execute in simulation mode | By default, the ETL execution in simulation mode is selected to validate connectivity with the data source, and to ensure that the ETL does not have any configuration issues. In the simulation mode, the ETL does not load data into the database. This option is useful when you want to test a new ETL task. To run the ETL in the production mode, select No. BMC recommends that you run the ETL in the simulation mode after ETL configuration and then run it in the production mode. |
Object relationships
| Associate new entities to | Specify the domain to which you want to add the entities created by the ETL. Select one of the following options:
By default, a new domain with the same ETL name is created for each ETL. When the ETL is created, a new hierarchy rule with the same name of the ETL task is automatically created in the active state. If you specify a different domain for the ETL, the hierarchy rule is updated automatically. |
|---|
ETL task properties
| Task group | Select a task group to classify the ETL. |
| Running on scheduler | Select one of the following schedulers for running the ETL:
|
| Maximum execution time before warning | Indicates the number of hours, minutes, or days for which the ETL must run before generating warnings or alerts, if any. |
| Frequency | Select one of the following frequencies to run the ETL:
|
Object relationships
| Associate new entities to | Specify the domain to which you want to add the entities created by the ETL. Select one of the following options:
By default, a new domain with the same ETL name is created for each ETL. When the ETL is created, a new hierarchy rule with the same name of the ETL task is automatically created in the active state. If you specify a different domain for the ETL, the hierarchy rule is updated automatically. |
ETL task properties
Property | Description |
|---|
| Task group | Select a task group to classify the ETL. |
| Running on scheduler | Select one of the following schedulers for running the ETL:
|
| Maximum execution time before warning | Indicates the number of hours, minutes, or days for which the ETL must run before generating warnings or alerts, if any. |
| Frequency | Select one of the following frequencies to run the ETL:
|
Click Save.The ETL tasks page shows the details of the newly configured Dynatrace 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:
Run configuration
Property | Description |
|---|
| Run configuration name | Specify the name that you want to assign to this ETL task configuration. The default configuration name is displayed. You can use this name to differentiate between the run configuration settings of ETL tasks. |
| Deploy status | Select the deploy status for the ETL task. For example, you can initially select Test and change it to Production after verifying that the ETL run results are as expected. |
| Log level | Specify the level of details that you want to include in the ETL log file. Select one of the following options:
Use log level 5 as a general practice. You can select log level 10 for debugging and troubleshooting purposes. |
| Dataset | Specify the datasets that you want to add to the ETL run configuration. The ETL collects data of metrics that are associated with these datasets.
The ETL collects data of metrics associated with the datasets that are available in the Selected datasets list. |
Collection level
Property | Description |
|---|
| Metric profile selection | Select the metric profile that the ETL must use. The ETL collects data for the group of metrics that is defined by the selected metric profile.
Unknown macro: variant. Click on this message for details. Unknown macro: variant. Click on this message for details. |
| Levels up to | Specify the metric level that defines the number of metrics that can be imported into the database. The load on the database increases or decreases depending on the selected metric level. Unknown macro: variant. Click on this message for details. Unknown macro: variant. Click on this message for details. |
Loader configuration
Property | Description |
|---|
| Empty dataset behavior | Specify the action for the loader if it encounters an empty dataset:
|
| ETL log file name | The name of the file that contains the ETL run log. The default value is: %BASE/log/%AYEAR%AMONTH%ADAY%AHOUR%MINUTE%TASKID |
| Maximum number of rows for CSV output | A numeric value to limit the size of the output files. |
| CSV loader output file name | The name of the file that is generated by the CSV loader. The default value is: %BASE/output/%DSNAME%AYEAR%AMONTH%ADAY%AHOUR%ZPROG%DSID%TASKID |
| Capacity Optimization loader output file name | The name of the file that is generated by the BMC Helix Continuous Optimization Capacity Optimization loader. The default value is: %BASE/output/%DSNAME%AYEAR%AMONTH%ADAY%AHOUR%ZPROG%DSID%TASKID |
| Detail mode | Specify whether you want to collect raw data in addition to the standard data. Select one of the following options:
Unknown macro: variant. Click on this message for details. Unknown macro: variant. Click on this message for details. |
| Remove domain suffix from datasource name (Only for systems) | Select True to remove the domain from the data source name. For example, server.domain.com will be saved as server. The default selection is False. |
| Leave domain suffix to system name (Only for systems) | Select True to keep the domain in the system name. For example: server.domain.com will be saved as is. The default selection is False. |
| Update grouping object definition (Only for systems) | Select True if you want the ETL to update the grouping object definition for a metric that is loaded by the ETL. The default selection is False. |
| Skip entity creation (Only for ETL tasks sharing lookup with other tasks) | Select True if you do not want this ETL to create an entity and discard data from its data source for entities not found in Capacity Optimization. It uses one of the other ETLs that share a lookup to create a new entity. The default selection is False. |
Scheduling options
Property | Description |
|---|
| Hour mask | Specify a value to run the task only during particular hours within a day. For example, 0 – 23 or 1, 3, 5 – 12. |
| Day of week mask | Select the days so that the task can be run only on the selected days of the week. To avoid setting this filter, do not select any option for this field. |
| Day of month mask | Specify a value to run the task only on the selected days of a month. For example, 5, 9, 18, 27 – 31. |
| Apply mask validation | Select False to temporarily turn off the mask validation without removing any values. The default selection is True. |
| Execute after time | Specify a value in the hours:minutes format (for example, 05:00 or 16:00) to wait before the task is run. The task run begins only after the specified time is elapsed. |
| Enqueueable | Specify whether you want to ignore the next run command or run it after the current task. Select one of the following options:
|
There is an addition property, extract.dynatrace.virtualNode, which enables virtual machines to be identified and labeled as such. They will be using the virtual node namespace as well.
There is an addition property, extract.dynatrace.virtualNode, which enables virtual machines to be identified and labeled as such. They will be using the virtual node namespace as well.
- Click Save.
The ETL tasks page shows the details of the newly configured Dynatrace ETL.
Step III. Run the 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.
- 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.
7. 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.
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.
Step IV. Verify data collection
Verify that the ETL ran successfully and check whether the Dynatrace 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.
To verify that the Dynatrace data is refreshed:
- In the console, click Workspace.
- Expand (Domain name) > Systems > Dynatrace > Instances.
- In the left pane, verify that the hierarchy displays the new and updated Dynatrace instances.
- Click a Dynatrace 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.
|
|---|
| Entities | Shows Entities |
| Hierarchy | Shows Hierarchy Verify that the ETL ran successfully and check whether the Dynatrace data is refreshed in the Workspace. To verify that the Dynatrace data is refreshed: The detailed hierarchy presented as: Application will have direct children of Hosts(only the hosts that direct services are running on), Services (parent of all the direct services running on this applications), and this application's business driver. Under services, there are the services running directly under the application, as well as the business drivers of these services. The Service domain (same hierarchical level as the applications ) contains all the services that are not in any applications. Each service has its hosts attached. The Infrastructure domains contains all the hosts collected by the ETL that is not under any applications or any services. The priority of the populated hierarchy is: Application Domain: (Applications → Services and Indirect Services underneath the application → the hosts that the services are runs on) → Service Domain: (Other services that are not belong to any applications → Hosts that the services are runs on) → Infrastructure Domain: (Other hosts that are not belong to any applications or services). |
If the Business Service view is used, there's another layer of hierarchy will be created, as the Business service view domain name defined in the ETL run configuration. Meanwhile, the tags presenting the service name will also be imported on each hosts.
| Tag Mapping (Optional) | Tags are totally optional. If use Business Service View, machine will have a tag using tag type configured in the ETL. Tag value will be the direct parent tier name. |
Configuration and Performance metrics mapping
Metric Mapping
| Metric | sys or wlkd | aggregate | ||||
| builtin:host.disk.used | TOTAL_FS_USED | HOST | SYS | avg | HOST | Perf |
| builtin:host.disk.avail | TOTAL_FS_FREE | HOST | SYS | avg | HOST | Perf |
| builtin:host.disk.queueLength | BYDISK_QUEUE_SIZE | HOST | SYS | avg | HOST | Perf |
| builtin:host.disk.avail | BYFS_FREE | HOST | SYS | avg | HOST | Perf |
| builtin:host.disk.bytesRead | BYFS_READ_BYTE_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:host.disk.readOps | BYFS_READ_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:host.disk.inodesTotal | BYFS_TOTAL_INODES | HOST | SYS | avg | HOST | Perf |
| builtin:host.disk.used | BYFS_USED | HOST | SYS | avg | HOST | Perf |
| builtin:host.disk.usedPct | BYFS_USED_SPACE_PCT | HOST | SYS | avg | HOST | Perf |
| builtin:host.disk.bytesWritten | BYFS_WRITE_BYTE_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:host.disk.writeOps | BYFS_WRITE_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:host.net.nic.trafficIn | BYIF_IN_BIT_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:host.net.nic.bytesRx | BYIF_IN_BYTE_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:host.net.nic.packets.rx | BYIF_IN_PKT_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:host.net.nic.trafficOut | BYIF_OUT_BIT_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:host.net.nic.bytesTx | BYIF_OUT_BYTE_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:host.net.nic.packets.tx | BYIF_OUT_PKT_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:service.keyRequest.count.total | BYSET_EVENTS | SERVICE_METHOD | WKLD | value | SERVICE | Perf |
| builtin:service.keyRequest.response.time | BYSET_RESPONSE_TIME | SERVICE_METHOD | WKLD | avg | SERVICE | Perf |
| builtin:tech.webserver.threads.active | BYWS_BUSY_WORKERS | PROCESS_GROUP_INSTANCE | SYS | min | GENERICWEBSERVER | Perf |
| builtin:tech.webserver.threads.idle | BYWS_IDLE_WORKERS | PROCESS_GROUP_INSTANCE | SYS | min | GENERICWEBSERVER | Perf |
| builtin:tech.webserver.threads.max | BYWS_MAX_WORKERS | PROCESS_GROUP_INSTANCE | SYS | min | GENERICWEBSERVER | Perf |
| builtin:tech.websphere.connectionPool.connectionPoolModule.FreePoolSize | CONNECTION_POOL_FREE | PROCESS_GROUP_INSTANCE | SYS | max | WEBSPHERE | Perf |
| builtin:tech.websphere.connectionPool.connectionPoolModule.PoolSize | CONNECTION_POOL_TOTAL | PROCESS_GROUP_INSTANCE | SYS | max | WEBSPHERE | Conf |
| builtin:host.cpu.entc | CPU_ENT_UTIL | HOST | SYS | avg | HOST | Perf |
| builtin:host.cpu.usage | CPU_UTIL | HOST | SYS | avg | HOST | Perf |
| builtin:tech.generic.cpu.usage | CPU_UTIL | PROCESS_GROUP_INSTANCE | SYS | min | Generic | Perf |
| builtin:host.cpu.idle | CPU_UTIL_IDLE | HOST | SYS | avg | HOST | Perf |
| builtin:host.cpu.steal | CPU_UTIL_OVERHEAD | HOST | SYS | avg | HOST | Perf |
| builtin:host.cpu.system | CPU_UTIL_SYSTEM | HOST | SYS | avg | HOST | Perf |
| builtin:host.cpu.user | CPU_UTIL_USER | HOST | SYS | avg | HOST | Perf |
| builtin:host.cpu.iowait | CPU_UTIL_WAIO | HOST | SYS | avg | HOST | Perf |
| builtin:tech.mssql.buffer_cache_hit_ratio | DB_BUFFER_CACHE_HIT_RATIO | PROCESS_GROUP_INSTANCE | SYS | max | MSSQL | Perf |
| builtin:tech.mysql.qcache_hits | DB_BUFFER_CACHE_HIT_RATIO | PROCESS_GROUP_INSTANCE | SYS | max | MYSQL | Perf |
| builtin:tech.mysql.innodb_buffer_pool_size | DB_BUFFER_POOL_SIZE | PROCESS_GROUP_INSTANCE | SYS | max | MYSQL | Perf |
| builtin:tech.postgresql.xact_commit | DB_COMMIT_RATE | PROCESS_GROUP_INSTANCE | SYS | max | POSTGRESQL | Perf |
| builtin:tech.mssql.lock_waits_sec | DB_LOCK_WAIT_RATE | PROCESS_GROUP_INSTANCE | SYS | max | MSSQL | Perf |
| builtin:tech.mssql.connection_memory | DB_MEM_CONNECTION | PROCESS_GROUP_INSTANCE | SYS | max | MSSQL | Perf |
| builtin:tech.mssql.page_splits_sec | DB_PAGE_SPLITS | PROCESS_GROUP_INSTANCE | SYS | max | MSSQL | Perf |
| builtin:tech.mysql.innodb_data_reads | DB_PHYSICAL_READS | PROCESS_GROUP_INSTANCE | SYS | max | MYSQL | Perf |
| builtin:tech.mysql.innodb_data_writes | DB_PHYSICAL_WRITES | PROCESS_GROUP_INSTANCE | SYS | max | MYSQL | Perf |
| builtin:tech.mysql.queries | DB_QUERY_RATE | PROCESS_GROUP_INSTANCE | SYS | max | MYSQL | Perf |
| builtin:tech.mysql.com_delete | DB_ROWS_DELETED_RATE | PROCESS_GROUP_INSTANCE | SYS | max | MYSQL | Perf |
| builtin:tech.postgresql.tup_deleted | DB_ROWS_DELETED_RATE | PROCESS_GROUP_INSTANCE | SYS | max | POSTGRESQL | Perf |
| builtin:tech.mysql.com_insert | DB_ROWS_INSERTED_RATE | PROCESS_GROUP_INSTANCE | SYS | max | MYSQL | Perf |
| builtin:tech.postgresql.tup_inserted | DB_ROWS_INSERTED_RATE | PROCESS_GROUP_INSTANCE | SYS | max | POSTGRESQL | Perf |
| builtin:tech.mysql.com_update | DB_ROWS_UPDATED_RATE | PROCESS_GROUP_INSTANCE | SYS | max | MYSQL | Perf |
| builtin:tech.postgresql.tup_updated | DB_ROWS_UPDATED_RATE | PROCESS_GROUP_INSTANCE | SYS | max | POSTGRESQL | Perf |
| builtin:tech.mysql.com_select | DB_SELECT_RATE | PROCESS_GROUP_INSTANCE | SYS | max | MYSQL | Perf |
| builtin:tech.mysql.threads_connected | DB_SESSIONS | PROCESS_GROUP_INSTANCE | SYS | max | MYSQL | Perf |
| builtin:tech.mysql.slow_queries_rate | DB_SLOW_QUERY_PCT | PROCESS_GROUP_INSTANCE | SYS | max | MYSQL | Perf |
| builtin:tech.mssql.transactions | DB_TRANSACTIONS | PROCESS_GROUP_INSTANCE | SYS | max | MSSQL | Perf |
| builtin:service.response.time | EVENT_RESPONSE_TIME | SERVICE | WKLD | avg | SERVICE | Perf |
| builtin:tech.jvm.memory.gc.activationCount | GC_EVENTS | PROCESS_GROUP_INSTANCE | SYS | value | JAVA | Perf |
| builtin:tech.jvm.memory.gc.suspensionTime | GC_SUSPENSION_TIME | PROCESS_GROUP_INSTANCE | SYS | min | JAVA | Perf |
| builtin:tech.go.memory.gcCount | GC_TIME | PROCESS_GROUP_INSTANCE | SYS | value | GO | Perf |
| builtin:tech.jvm.memory.gc.collectionTime | GC_TIME | PROCESS_GROUP_INSTANCE | SYS | value | JAVA | Perf |
| builtin:tech.go.memory.heap.idle | HEAPMEM_FREE | PROCESS_GROUP_INSTANCE | SYS | min | GO | Perf |
| builtin:tech.jvm.memory.runtime.free | HEAPMEM_FREE | PROCESS_GROUP_INSTANCE | SYS | min | JAVA | Perf |
| builtin:tech.jvm.memory.runtime.max | HEAPMEM_MAX | PROCESS_GROUP_INSTANCE | SYS | min | JAVA | Perf |
| builtin:tech.go.memory.heap.live | HEAPMEM_USED | PROCESS_GROUP_INSTANCE | SYS | min | GO | Perf |
| builtin:host.mem.avail.bytes | MEM_FREE | HOST | SYS | avg | HOST | Perf |
| builtin:tech.generic.mem.pageFaults | MEM_PAGE_FAULT_RATE | PROCESS_GROUP_INSTANCE | SYS | min | Generic | Perf |
| builtin:host.mem.used | MEM_USED | HOST | SYS | avg | HOST | Perf |
| builtin:tech.generic.mem.workingSetSize | MEM_USED | PROCESS_GROUP_INSTANCE | SYS | min | Generic | Perf |
| builtin:host.mem.usage | MEM_UTIL | HOST | SYS | avg | HOST | Perf |
| builtin:tech.generic.network.throughput | NET_BYTE_RATE | PROCESS_GROUP_INSTANCE | SYS | min | Generic | Perf |
| builtin:host.net.bytesRx | NET_IN_BYTE_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:tech.generic.network.bytesRx | NET_IN_BYTE_RATE | PROCESS_GROUP_INSTANCE | SYS | min | Generic | Perf |
| builtin:host.net.packets.rxReceived | NET_IN_PKT_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:host.net.bytesTx | NET_OUT_BYTE_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:tech.generic.network.bytesTx | NET_OUT_BYTE_RATE | PROCESS_GROUP_INSTANCE | SYS | min | Generic | Perf |
| builtin:host.net.packets.rxSent | NET_OUT_PKT_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:tech.generic.processCount | PROCESS_NUM | PROCESS_GROUP_INSTANCE | SYS | min | Generic | Perf |
| builtin:host.mem.swap.avail | SWAP_SPACE_FREE | HOST | SYS | avg | HOST | Perf |
| builtin:host.mem.swap.used | SWAP_SPACE_USED | HOST | SYS | avg | HOST | Perf |
| builtin:tech.dotnet.threadpool.workerThreads | THREAD_COUNT | PROCESS_GROUP_INSTANCE | WKLD | avg | DOTNET | Perf |
| builtin:tech.jvm.threads.count | THREAD_COUNT | PROCESS_GROUP_INSTANCE | WKLD | min | JAVA | Perf |
| builtin:tech.websphere.threadPoolModule.ActiveCount | THREAD_COUNT | PROCESS_GROUP_INSTANCE | WKLD | max | WEBSPHERE | Perf |
| builtin:apps.web.countOfErrors | TOTAL_ERRORS | APPLICATION | WKLD | value | WEBAPPLICATION | Perf |
| builtin:service.requestCount.total | TOTAL_EVENTS | SERVICE | WKLD | value | SERVICE | Perf |
| builtin:apps.web.activeUsersEst | USERS_CURRENT | APPLICATION | WKLD | value | WEBAPPLICATION | Perf |
| builtin:apps.web.activeSessions | WEB_ACTIVE_SESSIONS | APPLICATION | WKLD | value | WEBAPPLICATION | Perf |
| builtin:apps.web.converted | WEB_CONVERSIONS | APPLICATION | WKLD | value | WEBAPPLICATION | Perf |
| builtin:apps.web.visuallyComplete.load.browser | EVENT_RESPONSE_TIME | APPLICATION | WKLD | value | WEBAPPLICATION | Perf |
| builtin:host.net.nic.packets.errorsRx | NET_IN_PKT_ERROR_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:host.net.nic.packets.errorsTx | NET_OUT_PKT_ERROR_RATE | HOST | SYS | avg | HOST | Perf |
| builtin:tech.jvm.memory.pool.committed | NONHEAPMEM_COMMITTED | PROCESS_GROUP_INSTANCE | SYS | value | JAVA | Perf |
| builtin:tech.jvm.memory.pool.used | NONHEAPMEM_USED | PROCESS_GROUP_INSTANCE | SYS | value | JAVA | Perf |
| builtin:tech.go.memory.pool.used | NONHEAPMEM_USED | PROCESS_GROUP_INSTANCE | SYS | min | GO | Perf |
| builtin:tech.go.memory.pool.committed | NONHEAPMEM_COMMITTED | PROCESS_GROUP_INSTANCE | SYS | min | GO | Perf |
| builtin:tech.mongodb.active_clients | CLIENT_CONN_CURRENT | PROCESS_GROUP_INSTANCE | WKLD | min | MONGODB | Perf |
| builtin:tech.mongodb.available_connections | CONNECTION_POOL_FREE | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Perf |
| builtin:tech.mongodb.command_operations2 | DB_TRAN_RATE | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Perf |
| builtin:tech.mongodb.current_connections | CONNECTION_POOL_USED | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Perf |
| builtin:tech.mongodb.current_queue | REQ_QUEUED | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Perf |
| builtin:tech.mongodb.db_data_size | DB_DATA_USED_SIZE | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Perf |
| builtin:tech.mongodb.db_storage_size | DB_DATA_ALLOCATED_SIZE | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Perf |
| builtin:tech.mongodb.delete_operations2 | DB_ROWS_DELETED_RATE | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Perf |
| builtin:tech.mongodb.indexes | DB_INDEX_SEARCHES | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Perf |
| builtin:tech.mongodb.insert_operations2 | DB_ROWS_INSERTED_RATE | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Perf |
| builtin:tech.mongodb.virtual_memory | DB_MEM_VIRTUAL | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Conf |
| builtin:tech.mongodb.update_operations2 | DB_ROWS_UPDATED_RATE | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Perf |
| builtin:tech.mongodb.query_operations2 | DB_QUERY_RATE | PROCESS_GROUP_INSTANCE | SYS | min | MONGODB | Perf |
| builtin:host.disk.used | TOTAL_FS_USED | HOST | SYS | avg | HOST | Perf |
| builtin:host.disk.avail | TOTAL_FS_FREE | HOST | SYS | avg | HOST | Perf |
| builtin:tech.jvm.memory.pool.committed | NONHEAPMEM_COMMITTED | PROCESS_GROUP_INSTANCE | SYS | value | JAVA | Perf |
| builtin:tech.jvm.memory.pool.used | NONHEAPMEM_USED | PROCESS_GROUP_INSTANCE | SYS | value | JAVA | Perf |
| builtin:tech.go.memory.pool.used | NONHEAPMEM_USED | PROCESS_GROUP_INSTANCE | SYS | min | GO | Perf |
| builtin:tech.go.memory.pool.committed | NONHEAPMEM_COMMITTED | PROCESS_GROUP_INSTANCE | SYS | min | GO | Perf |
| builtin:tech.websphere.connectionPool.connectionPoolModule.FreePoolSize | CONNECTION_POOL_FREE | PROCESS_GROUP_INSTANCE | SYS | max | WEBSPHERE | Perf |
| builtin:tech.websphere.connectionPool.connectionPoolModule.PoolSize | CONNECTION_POOL_TOTAL | PROCESS_GROUP_INSTANCE | SYS | max | WEBSPHERE | Conf |
| builtin:tech.websphere.threadPoolModule.ActiveCount | THREAD_COUNT | PROCESS_GROUP_INSTANCE | WKLD | max | WEBSPHERE | Perf |
Untitled chart
Column 2
EntitiesHierarchyConfiguration and Performance metrics mappingTag Mapping (Optional)Untitled axis
Custom Metrics
The Dynatrace extractor now is supporting custom metrics on Applications, Services, Hosts and Processes. By configuring the JSON file
Custom Metrics
The following table shows the JSON object and the property mapping. One JSON Object is configured for one metrics for one type of entity. The JSON configuration file contains a list of JSON objects. covering multiple metrics.
JSON Entity
|
|---|
Required
Description
| tscoEntityType | Yes | The BMC Helix Continuous Optimization entity type. Currently only applications, services and hosts are supported. Required values ["APPLICATION", "SERVICE", "HOST"]. You can find the entity type by checking out the hierarchy and entity types above. |
| dynatraceEntityType | Yes | The dynatrace entities. Currently only applications (including applications, custom applications and mobile applications), services and hosts. Required values ["APPLICATION", "SERVICE", "HOST", “PROCESS_INSTANCE_GROUP“]. You can find the Dynatrace entity type by looking at the UUID of the targeted entity. For example, if an entity has id APPLICATION-588BA26653BA3FA8, use "Application" as the value of this field. If it's CUSTOM_APPLICATION-299F4619269E4F32 or MOBILE_APPLICATION-752C288D59734C79, you can put in "Application" in this field as well. Make sure this field matches the "tscoEntityType". If not, the entity type in "tscoEntityType" will be used for this field. |
| dynatraceMetric | Yes | The custom Dyantrace metric. This must not be a metric already imported by the ETL, which are listed in the Metrics Mapping section. |
| dynatraceAggregation | No | The Dynatrace aggregation types for the metrics. Currently the extractor will only process auto, min, max, average and count as multiple statistics. Make sure to separate each of them with comma ",". If no value is imported, auto will be used. |
| tscoMetric | Yes | The BMC Helix Continuous Optimization metric that the custom Dynatrace metric is mapping to. You can find the list of all available metrics at Administration → Data Warehouse → Datasets & metrics |
| dataset | Yes | The dataset of the BMC Helix Continuous Optimization metric. Currently supports "SYS" for sysdat (system metrics), WKLD for wkldat (workload metrics). |
| metricType | Yes | The type of the BMC Helix Continuous Optimization metric, either "Perf" for performance metris, or "Conf" for configuration metrics |
| entityIndex | No | The index of the entity dimension maps from Dynatrace API. If this metrics only have 1 dimension (in other word, this metric will be a global metric, rather than a submetric, the index is always should be 0). If leave empty, 0 will be used. For example, a service has a metric, and the service will be imported as entity. Now looking at the metric description from Dynatrace API, the dimension object looks like "dimensions":["SERVICE-299F4619269E4F32"], the we use 0 for entityIndex to import this service, |
| subMetricIndex | No | The field should be filled up if the values are for entities and its child entities and the submetrics is used. For example, a host's each CPU has its own temperature, and you want to import the temperature for each CPU on the host as BYCPU_TEMPERATURE. HOST will be the entity and CPU name is the sub entity. Now looking at the metric description from Dynatrace API, the dimensions object looks like this "dimensions":["HOST-299F4619269E4F32", "CPU-752C288D59734C79"] then we put entityIndex as 0 for host, and subMetricIndex for 1 for CPU. Then the host HOST-299F4619269E4F32 will be imported as entity, with subresource CPU-752C288D59734C79. Defualt is to leave this field empty if the metric is a global metric. |
| scaleFactor | No | The scale factor applied to the value as multiplication. If leave empty, there won't be changes for the value. For example, the value is 500, and the scaleFactor is 0.01, the value imported in BMC Helix Continuous Optimization will be 5 as 500*0.01=5. |
Here is an example:
Let's say there is a custom metric called web.total.user.exit and it's defined on some services, with the values in gauge format with the multiple statistic summaries (auto, avg, min, max and count).
And this metric web.total.user.exit will be mapped to BMC Helix Continuous Optimization global metric "WEB_TOTAL_USER_EXITS", which is a performance metric in workload dataset.
First, let's check if this custom metrics are created correctly by calling Dynatrace API, by using the following format:
https://<FQDN>/api/v2/metrics/query?metricSelector=<custom metric id>:(<aggregation types>)&entitySelector=type(<entity type>)&api-token=<token>&from=<starting timestamp>&to=<ending timestamp>&resolution=<resolution>
In this case, it will be: https://live.dynatrace.com/api/v2/metrics/query?metricSelector=web.total.user.exit:(auto,avg,min,max,count)&entitySelector=type(SERVICE)&api-token=token1234567&from=1620931200000&to=1620936300000&resolution=15m
Then I got a results like this:
By verifying the custom metrics from Dynatrace API, now it's time to create the JSON Object for this metric web.total.user.exit
example
|
|---|
explanation
{
| {
|
[
{
"tscoEntityType": "SERVICE",
"dynatraceMetric": "web.total.user.exit",
"dynatraceAggregation": "auto,min",
"submetricIndex": "",
"dataset": "WKLD",
"metricType": "Perf",
"tscoMetric": "WEB_TOTAL_USER_EXITS",
"dynatraceEntityType": "SERVICE",
"scaleFactor": "1",
"entityIndex": "0"
},
{
.................... other metrics
}
]
After the extraction, the metrics on service SERVICE-9C13B59F60731573 appears on workspace as
This is a link to the sample JSON file here.