Integrating with Stackify Retrace


Stackify Retrace is an application performance monitoring tool that helps you retrace what your code is doing and to quickly find bugs and performance problems.

The BMC Helix Intelligent Integrations Stackify Retrace connector collects metrics data from Stackify Retrace.  ​​

Warning
Important

BMC Helix has announced the End of Life (EOL) of Stackify Retrace, effective March 2027. This change will impact the customers who use the Stackify connector. For more information, see Stackify Retrace End of Life Announcement in the Stackify documentation.

BMC Helix will continue to provide support for Stackify Retrace as defined in the Product End of Life section of BMC’s Product Support Policy until the date listed above. As per this policy, BMC Helix will continue to develop hotfixes for issues of high business impact.

Stackify connector deprecation

As a result of Stackify Retrace EOL, starting with version 26.2, the Stackify connector is deprecated. The connector is considered functionally stabilized and will not receive further enhancements during this period.

Recommended transition path

As part of BMC Helix’s long‑term observability and AIOps strategy, we are focusing our investments on modern, open standards–based telemetry collection. BMC Helix AIOps, powered by OpenTelemetry (OTel), provides a scalable, vendor‑neutral approach to observability that delivers deep operational insights.

BMC Helix recommends that customers consider transitioning from the Stackify connector to Helix AIOps with OTel as part of their future roadmap. For more information, see Ingesting data from OpenTelemetry in the BMC Helix AIOps documentation.

You can view the collected data in BMC Helix Operations Management and derive the following benefits:

BMC Helix application

Type of data collected or viewed

Benefits

BMC Helix Operations Management

Metrics

Use alarm and variate policies to detect anomalies and eliminate false positives for more accurate results while monitoring the health of your system.

For more information, see Detecting anomalies by using static and dynamic thresholds

Supported versions

BMC Helix Intelligent Integrationssupports the following versions of Stackify Retrace Agent for data collection:

  • Windows Agent 4.35.31
  • Linux Agent 2.33.9

Before you begin

Review the following prerequisites to help you plan and configure a connection with Stackify Retrace.

Stackify Retrace requirement

BMC Helix Intelligent Integrations receives metrics from BMC Stackify and applies the mapping defined in the following default JSLT to transform them into JSON format that can be understood by BMC Helix Operations Management. If required, prepare a custom JSLT by using the default JSLT as a sample.

Click here to see the default metrics JSLT. Update the mapping as per your requirements.

def getUnit(unit, metric_name)
 if($unit == "") (
  if($metric_name == "average_time") "ms"
  else if($metric_name == "Error %") "percent"
  else if($metric_name == "average_time_taken") "ms" 
  else if($metric_name == "Avg load time") "s"
  else if($metric_name == "Satisfaction score") "percent"
  else "Count"
 )
 else if($unit == "#") "Count"
 else
  $unit

let host = .extras.hostname

if (.extras.parentEntityName != null)(
  [
   {
    "labels" : {
                "metricName" : "Availability",
                "hostname" : $host,
                "entityId" : join(["Stackify", ":", $host, ":",.extras.parentEntityTypeId, ":", .extras.parentEntityName], ""),
                "entityTypeId" : .extras.parentEntityTypeId,
                "device_id" : $host,
                "entityName" : .extras.parentEntityName,
                "hostType" : .extras.hostType,
                "isKpi" : true,
                "unit" : "percent",  // Use function and change unit
                "source" : "Stackify",
                "external_id" : .extras.ciExternalId,
    "extras": {
     "instanceName" : .extras.parentEntityName
    }
    },
    "samples" : [
     {
      "value" : 100,
      "timestamp" : number(.originTimestamp)
     }
    ]
   },
   {
    "labels" : {
                "metricName" : .name,
                "hostname" : $host,
                "entityId" : join(["Stackify", ":", $host, ":",.extras.entityTypeId, ":", .extras.parentEntityName, "_", .extras.entityName], ""),
                "entityTypeId" : . extras.entityTypeId,
                "device_id" : $host,
                "entityName" : join([.extras.parentEntityName, "_", .extras.entityName], ""),
                "hostType" : .extras.hostType,
                "isKpi" : true,
                "unit" : getUnit(.extras.sourceMetricUnit, .name),  // Use function and change unit
                "source" : "Stackify",
                "external_id" : .extras.ciExternalId,
    "extras": {
     "instanceName" : .extras.entityName,
     "parentEntityTypeId" : . extras.parentEntityTypeId,
     "parentEntityName" : .extras.parentEntityName
    }
    },
    "samples" : [
     {
      "value" : .value,
      "timestamp" : number(.originTimestamp)
     }
    ]
   }
  ]
 )
else (
[
 {
        "labels" : {
                "metricName" : .name,
                "hostname" : $host,
                "entityId" : join(["Stackify", ":", $host, ":",.extras.entityTypeId, ":", .extras.entityName], ""),
                "entityTypeId" : . extras.entityTypeId,
                "device_id" : $host,
                "instanceName" : .extras.entityName,
                "entityName" : .extras.entityName,
                "hostType" : .extras.hostType,
                "isKpi" : true,
                "unit" : getUnit(.extras.sourceMetricUnit, .name),  // Use function and change unit
                "source" : "Stackify",
                "external_id" : .extras.ciExternalId
        },
        "samples" : [
            {
                "value" : .value,
                "timestamp" : number(.originTimestamp)
            }
        ]
    }

]
)

 

BMC Helix Intelligent Integrations prerequisites

  • Choose one or more BMC Helix Intelligent Integrations deployment modes and review the corresponding port requirements. For information about various deployment modes and port requirements, see Deployment scenarios.
  • Based on the deployment mode, use the BMC Helix Intelligent Integrations SaaS deployment or the BMC Helix Intelligent Integrations on-premises gateway or both. For more information about the gateway, see Deploying the BMC Helix Intelligent Integrations on-premises gateway.
  • Make sure that the on-premises gateway is able to reach BMC Stackify on the required port (default is 443).

Task 1: To configure the connection with Stackify Retrace

  1. Depending on the deployment mode, perform one of the following steps to access BMC Helix Intelligent
    Integrations:
    • BMC Helix Intelligent Integrations SaaS: Log on to BMC Helix Portal, and click the BMC Helix
      Intelligent Integrations
      tile.
    • BMC Helix Intelligent Integrations on-premises gateway: Depending on the platform, use one of the following URLs to access the on-premises gateway:
      • (Docker or Podman) https://<hostName>:<portNumber>/swpui
      • (Kubernetes or OpenShift) https://<swpuingress>/swpui
  2. On the CONNECTORS tab, click​​​​​​ AddIcon_Add.png in the SOURCES panel.
  3. Click the Stackify Metrics tile.
  4. Specify the following details for the source connection:
    1. Specify a unique instance name.

      Success

      Best practice
      We recommend that you specify the instance name in the following format: 

      <sourceType>_<sourceControllerServerName>_<InstanceQualifier>

      The instance qualifier helps distinguish between multiple instances configured from the same source server. For example, you can name your instance as Stackify_Host_PROD or Stackify_Host_TEST.

    2. Specify the Stackify Retrace metrics host (default value is api.stackify.com).
    3. Specify the port number (default value is 443). 
    4. Select the HTTPS option to use an https connection to the Stackify Retracehost.
    5. Specify the maximum number of concurrent REST API requests that should be executed during a collection schedule (default value is 20).
    6. Specify the X-Stackify-Key.
      X-Stackify-Key is the Activation Key which is automatically generated when you create a Stackify Retrace account. You can find your Activation Key from your Account Info page. For more information, see the Stackify Retrace Documentation.

    7. Click Proxy and specify whether you want to configure a proxy server.
      If yes, specify the host name and port number (default value is 8888).
  5. Click VALIDATE AND CREATE.
    The specified connection details are validated, and the corresponding source connection is created in the Source Connection list.
  6. Verify that the source connection you created is selected.

    Warning

    Important

    The destination host connection is created and configured automatically for each tenant when the source connection is created.

  7. Make sure that you select the options for the required data types to collect data.
  8. Configure the collectors for the selected data types by clicking the respective data type in the Collectors section.

    Click here to view the collection parameters for the selected data types

    Important: The ✅️  symbol indicates that this field is applicable to the data type.

    Parameter name

    Description

    Data Type

    Stackify Metrics

    Collection Schedule

    Select one of the following options to specify the data collection frequency:

    • Duration: When you select this option, data collection happens constantly. Specify the schedule in minutes, hours, or day. 
      Default: 5 minutes
      Example:
      Collection Schedule
      is set to 5 mins.
      Current time is 00:30.

      If you run the collector just after 00:30, data is collected every 5 mins, first at 00:30 and next at 00:35, and so on.  
    • Cron schedule: When you select this option, data collection happens periodically. Specify the schedule by using a cron expression.
      A cron expression is a string consisting of five subexpressions (fields) that describe individual details of the schedule.  
      These fields, separated by blank spaces, can contain any of the allowed values with various combinations of the allowed characters for that field.
      Default: */5 * * * * (evaluates to 5 minutes)

      Format:
      Minutes Hours (24-hour format) Day of Month Month Day of Week

      Example:
      If you specify 10 15 3 7 * , data is collected at 15:10 hours every third day in the month of July.

    For more information about how this parameter affects data collection, see Data collection schedule.

    ✅️

    Data Latency

    Specify the time (in minutes) by which the data time window should be shifted back on the timeline.

    This parameter is useful in delayed data availability situations.

    Default: 0 minutes

    We recommend that you set the value of this parameter to 5 minutes or more.

    Example:

    Collection Schedule is set to 5 mins.
    Data Collection Window is set to 10 mins.
    Data Latency is set to 2 mins.
     Current time is 00:30.

    If you run the collector just after 00:30, data is collected first at 00:30 for the interval 00:18 to 00:28 and next at 00:35 for the interval 0:23 to 00:33, and so on.

    For more information about how this parameter affects data collection, see Data latency.

    ✅️

    Select Environment

    Select one or more environments for which you want to collect the application or device metrics.

     
    Select Metric Type (Application/Device)

    Select one of the following metric types for which you want to collect metrics:

    • Applications
    • Devices
     

    Regex

    Specify the regular expression for the application or device name. Metrics are collected for the applications or devices whose names match the regular expression.

    Examples:

    • To collect metrics for the applications or devices whose names start with stackify, specify the regex as stackify-.* . 
    • To collect metrics for the applications or devices whose names have stackify in them, specify the regex as .*stackify.*. 
    • To collect metrics for the applications or devices whose names end with stackify, specify the regex as .*stackify$.
    • To collect metrics for all applications or devices, specify the regex as .* (default).

    ImportantYou can specify multiple regular expressions, separating them by using a pipe (|). If you are specifying multiple expressions, make sure that regular expressions do not conflict. For example, do not enter, stackify-.*|^stackify.*. The former expression collects metrics for devices whose names do not start with stackify, while the latter expression collects metrics for applications or devices whose names start with stackify.

    ✅️

    Select Application Metric Type

    Select the type of application metrics for which you want to collect data:

    • ApplicationMonitor: Collects metrics for the Key Transaction monitors and errors for the application. 
    • ApplicationPerformance: Collects the average page load time for each application component. 
    • ApplicationPerformanceResource: Collects user satisfaction metrics, such as the number of fast, sluggish, slow, and failed requests for each route in the application.
    ✅️
  9. To create the required collector streams for the selected data types, click CREATE COLLECTORS.
  10. Configure the distributors for the selected data types by clicking the respective data type in the Distributors section.

    Click here to view the distribution parameters for the selected data types

    Parameter name

    Description

    Max Batching Size

    Specify the maximum number of data items to send in a single POST request to the destination API.

    The batch size depends on the destination’s ability to buffer the incoming data.

    Default: 250

    Max Batching Delay

    Specify the maximum time (in seconds) to wait before building a batch and processing.

    Default: 3 seconds 

    Base Retry Delay

    Specify the initial time (in seconds) for which to wait before retrying to build a batch and processing.

    The waiting time increases in the following sequence: n1, n2, n3, and so on, where n indicates the number of seconds.

    Default: 2 seconds

    Example:

    Base Retry Delay is set to 2 seconds.

    Retry is performed after 2, 4, 8, 16, and so on seconds.

    Max Intra-Retry Delay

    Specify the maximum limit for the base retry delay. 

    Default: 60 seconds

    Example:

    Max Intra-Retry Delay is set to 60 seconds.
    Base Retry Delay is set to 2 seconds.

    Retries are performed 2, 4, 8, 16, 32, and so on seconds later.

    Max Retry Duration

    Specify the total time for retrying a delivery. For REST destinations, a delivery is a batch of data items in one POST request. 

    Default: 5 minutes

    Example:

    Max Retry Duration is set to 8 hours.
    Base Retry Delay is set to 2 seconds.

    Requests are sent for 2+4+8+16+32+64+132, and so on until 8 hours in total duration is reached. After that, no subsequent attempts are made to retry the delivery.

    The assumption here is that if there is an outage or other issue with the destination tool, the recovery time should be less than the value of the Max Retry Duration parameter.

     Device Filters and Metrics filtersDevice and Metrics filters help remove unwanted data and send only the required data to BMC Helix applications. The data is filtered by using the regular expression (regex) provided for device name, monitor name, monitor type, and metrics, and is sent to BMC Helix applications. 
    Device Name RegexSpecify the regex for the device name. Metrics for devices whose names match the regex are sent to BMC Helix applications.
    Examples:
    • To send data for the devices that contain the string Linux in their names, specify the regex as .*Linux.*.
    • To send data for the devices that contain the string Cisco and Linux, specify the regex as (?=.*Cisco)(?=.*Linux).*.
    • To send the data for the devices whose names start with the string Linux, specify the regex as ^Linux.*. 
    Important:
    If you are using multiple regex, make sure that the regex do not conflict.
    For example, do not enter .*Linux.* and ^(?!.*Linux).* together. The former regex sends metrics for the devices whose names contain the string Linux, while the latter regex sends metrics for the devices whose names do not contain the string Linux.
    Monitor Name RegexSpecify the regex for the monitor name. Metrics for the monitors whose names match the regex are sent to BMC Helix applications.
    Examples:
    • To send data for the monitors that contain the string system in their names, specify the regex as .*system.*.
    • To filter out the data for monitors that contain system in their name, specify the regex as ^(?!.*system).*.
    • To send the data for monitors whose names start with the string system, specify the regex as ^system.*.
    Important:
    If you are using multiple regex, make sure that the regex do not conflict.
    For example, do not enter .*system.* and ^(?!.*system).* together. The former regex sends metrics for the monitors whose names contain the string system, while the latter regex sends metrics for the monitors whose names do not contain the string system.
    Monitor Type RegexSpecify the regex for the monitor type. Metrics are sent to BMC Helix applications for the monitor type that matches the regex.
    Examples:
    • To send data for the monitor type that contains the string health, specify the regex as .*health.*.
    • To send data for the monitor type that starts with the string health, specify the regex as ^health.*.
    • To filter out the monitor type that contains the string health, specify the regex as ^(?!.*health).*.
    Important:
    If you are using multiple regex, make sure that the regex do not conflict.
    For example, do not enter, ^health.* and ^(?!.*health).* together. The former regex collects metrics for the monitor type whose names contain the string health, while the latter regex collects data for the monitor types whose names do not contain the string health.
    Metrics RegexSpecify the regex for the metrics. Metrics are sent to BMC Helix applications whose names match the regex.
    Examples:
    • To send metrics that contain the string avg in their names, specify the regex as .*avg.*.
    • To filter out the metrics that contain the string avg, specify the regex as ^(?!.*avg).*.
    • To send metrics whose names start with the string avg, specify the regex as ^avg.*.
    Important:
    If you are using multiple regex, make sure that the regex do not conflict.
    For example, do not enter, .*avg.* and ^(?!.*avg).* together. The former regex sends metrics whose name contains the string avg, while the latter regex sends metrics whose name does not contain the string avg.
    JSLT(Optional) Replace the default JSLT with the custom JSLT that you have prepared as described in the Stackify Retrace requirement section.
  11. To create the required distributor streams for the selected data type, click CREATE DISTRIBUTORS​​​​​.
  12. Perform one of the following actions:

    • Click SAVE STREAM if you want to edit the connector before data collection starts. After you save the stream, the connector that you just created is listed in the SOURCES panel. For information about editing, see Editing and deleting connectors. After editing the connector, start the data stream from the SOURCES panel. For more information, see Managing data streams.
    • Click SAVE AND START STREAM to start the data collection immediately. After you start the stream, the connector that you created is listed in the SOURCES panel.

    Important
    For a data stream, the Run Latency (max/avg), Items (Avg per Run), and Last Run Status columns on the Streams page might show the status as No Runs during the data collection process. After the process is complete, these columns are updated with an appropriate status.

Task 2: To verify the connection

In BMC Helix Intelligent Integrations, in the SOURCES panel, confirm that the metric data stream for the integration you created is running. Data streaming is indicated by the moving, colored arrow.

Stackify_connector_25_4.png

A moving red arrow (MetricsStream_Icon.png) indicates that the metric stream is running. Metric data is pushed according to the configured Collection Schedule interval.

To view metrics in BMC Helix Operations Management

  1. In BMC Helix Operations Management, select Monitoring > Devices.
  2. Click the links for the required device.
  3. On the Monitors tab, click the required monitor.
    The Performance Overview tab shows the metric graph, as shown in the following figure:
    Stackify_metrics_new.png
    For information about metrics, see Viewing collected data

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC Helix Intelligent Integrations 26.2