Symptom field displays as "N/A" for webhook notifications on descendant objects in VCF Operations 9.0.2
search cancel

Symptom field displays as "N/A" for webhook notifications on descendant objects in VCF Operations 9.0.2

book

Article ID: 437925

calendar_today

Updated On:

Products

VCF Operations

Issue/Introduction

Following an upgrade to VCF Operations 9.0.2, outbound webhook notifications to ServiceNow utilizing the ${SYMPTOMS} variable in custom payload templates output as "N/A". This occurs specifically when an alert configured on a parent object triggers based on a raw condition of a descendant object.

When you review the triggered alerts in the VCF Operations UI under Infrastructure Operations > Alerts, the Symptoms tab does not show the Symptom details (for example, Service name and Virtual Machine fqdn). Furthermore, the corresponding ServiceNow notification shows the Symptom field as "N/A". In previous versions, such as 8.18.5, this field correctly populated with the specific descendant data, such as the stopped service name and the Virtual Machine FQDN.

 

Environment

VCF Operations 9.0.2
ServiceNow Workflow Studio

Cause

The core Analytics evaluation engine fails to map raw descendant conditions to parent symptoms. The analytics engine places "symptoms":"N/A" into the message queue before the webhook plugin processes the payload.

When DEBUG logging is enabled for the com.vmware.vcops.platform.notification.webhook.WebhookSender class, the /storage/log/vcops/log/analytics-*.log file shows the analytics engine passing the "N/A" value directly.

Resolution

To work around this issue, you must adjust your Alert Definitions to use a formally defined symptom instead of a raw condition.

  1. Edit the affected Alert Definition.

  2. Replace the raw Condition based on descendant configuration with the appropriate built-in symptom definition (e.g., Service is Unavailable).

  3. Save the Alert Definition.

Utilizing a formally defined symptom allows the VCF Operations analytics engine to correctly parse and map the descendant objects. The ${SYMPTOMS} variable then correctly populates with the specific impacted descendant service details in the UI and the outbound Webhook JSON payload.

Additional Information

Note: This is similar to KB 433099 "Payload Template Variable ${SYMPTOMS} is not working", but the difference in behavior is that the Symptom field should be populated with actual data and not the string "N/A".