ODC Integration: Alarms Not Appearing Despite HTTP 200 Success Response
search cancel

ODC Integration: Alarms Not Appearing Despite HTTP 200 Success Response

book

Article ID: 444689

calendar_today

Updated On:

Products

DX SaaS

Issue/Introduction

When setting up or testing a push-based Open Data Connector (ODC) integration, the following behavior occurs:

  • A POST request to the ingestion endpoint (e.g., apmgw.dxi-na1.saas.broadcom.com) returns an HTTP 200 OK response.
  • The response contains a success timestamp (e.g., {"timestamp":"1780064174275"}).
  • However, no alarms appear in the DX O2 SaaS all alarm UI.

Cause

An HTTP 200 OK response from the ODC gateway only indicates that the authentication was successful and the payload was successfully received by the endpoint. It does not guarantee that the data was successfully parsed or ingested into the backend.

This issue typically occurs when the mapping definition or the payload is missing mandatory fields required for metric ingestion. Specifically, when using the metric_name field, ODC has a dependency on three additional fields that must be present in the schema to properly process the record.

Resolution

To resolve this, ensure that your ODC Mapping Definition includes the following three mandatory fields whenever metric_name is used:

  1. metricType: The type of metric (e.g., "CPU", "HOST", "String").
  2. metricUnit: The unit of measurement (e.g., "%", "ms", "Bytes").
  3. metricDataType: The data format (e.g., "LONG", "DOUBLE", "INTEGER", "STRING").

Corrected Mapping Definition Example

Update your integration schema (JSONata) to include these fields within the alarm:

{
    "alarms": [result.
        {
            "severity": severity,
            "status": severity = "information" ? "Closed" : "New",
            "alarmType": "Script",
            "product": "MyProduct",
            "summary": message,
            "host": host,
            "ip": ip,
            "alarm_name": alertcode,
            "message": message,
            "alarm_description": "<website>/" & alertcode,
            "monitoringType": "HOSTS",
            "ci_unique_id": "Alarms|Project|" ,
            "metric_name": "<name of the metric>",
            "metricType": "CPU",
            "metricUnit": "%",
            "metricDataType": "LONG",
            "alarmId": alertid,
            "entityId": alertid,
            "monitoringType": "HOST",
            "created": timestamp
        }
    ]
}

Troubleshooting Notes

  • Payload Validation: If you continue to receive 200 OK but see no data, verify that the metricDataType matches the actual data type of the value being sent.
  • Async Processing: Since ODC mapping is often processed asynchronously, errors in the mapping logic will not be reflected in the initial HTTP response code. Engineering is currently evaluating enhancements to provide better visibility into these async mapping failures.