VMware Data Services Manager uses database status as a criteria to reflect the availability of the database, to identify an in-progress operation or to notify a critical operation that failed. The status of a database is also affected by alerts that VMware Data Services Manager may trigger for the database.
These alerts can be sent as email notifications or as other notifications to any customised application, such as Slack channels or ServiceNow. VMware Data Services Manager uses Webhooks to connect to an external application and send alert notifications for databases provisioned in VMware Data Services Manager.
Only a Provider Administrator can configure and update Webhooks in VMware Data Services Manager. An Organization Administrator can associate or dissociate Webhooks for the databases that is part of that organization. An Organization User can associate or dissociate Webhooks for the databases that it has created.
As a Provider Administrator, you can create Webhooks that can be associated with the databases created in VMware Data Services Manager.
Before you try to configure a Webhook, if the endpoint of the Webhook is configured with a self-signed certificate, then please refer Managing Certificates on the Provider to add the trusted certificates.
Perform the following steps to create a Webhook:
Select Settings from the left navigation pane.
Information pane appears in the Settings view.
Click Webhook Settings tab.
The Webhook Setting List appears.
Click NEW WEBHOOK SETTINGS on the right side of Webhook Setting List.
The Create New Webhook form appears.
In the Name and Destination tab of the Create New Webhook form, set the following properties:
Property | Description |
---|---|
Endpoint Type | Select Slack, ServiceNow, or Custom as the endpoint application from the dropdown list. You can select Custom if you want to configure any other application as the endpoint type other than Slack or ServiceNow. |
Webhook Name | Enter a unique name of the Webhook. |
Destination URL | Enter the destination URL of the endpoint application. |
HTTP Request Method | Select POST or PUT from the dropdown list. |
Authorization User | Enter the authorization username for the Webhook. |
Authorization Password | Enter the authorization password for the Webhook. |
Custom Headers | Enter the Header Name and Header Value for the custom header of the Webhook. Click + to add more custom headers and - to remove custom headers. |
Click NEXT.
In the DB Status Change Payload tab of the Create New Webhook form, set the following properties:
Property | Description |
---|---|
Content Type | From the dropdown list, select JSON or XML as the content type of the Webhook for any change of database status. You can only choose JSON if you have selected Slack as the Endpoint Type in the Name and Destination tab because Slack doesn't support XML as an option for Content Type. |
Webhook Payload | Use the payload as-is or update the Webhook's payload, as required. VMware Data Services Manager supports only the parameters listed in the Parameters box to be included in the payload. For more information, see Webhook Payloads. |
Click NEXT.
In the DB Operation Failure Payload tab of the Create New Webhook form, set the following properties:
Property | Description |
---|---|
Content Type | From the dropdown list, select JSON or XML as the content type of the Webhook for any database operation failure. You can only choose JSON if you have selected Slack as the Endpoint Type in the Name and Destination tab because Slack doesn't support XML as an option for Content Type. |
Webhook Payload | Use the payload as-is or update the Webhook's payload, as required. VMware Data Services Manager supports only the parameters listed in the Parameters box to be included in the payload. |
Click CREATE.
VMware Data Services Manager supports JSON and XML payloads for Slack, ServiceNow, and Custom Webhooks. You can edit the payloads using the supported parameters, as required. When VMware Data Services Manager sends the database alerts, the string values of the parameters are automatically replaced by values of the Webhook that you configure. However, you need to enter the static values of the parameters when you configure a Webhook.
Example of a JSON Webhook's payload for Slack is as follows:
{
"attachments": [
{
"author_name": "VMware Data Services Manager",
"title": "Alert Triggered : Database Status Change",
"title_link": "${url}",
"fields": [
{
"title": "At Time",
"value": "${TriggeredAt}"
},
{
"title": "Instance Name",
"value": "${TargetName}"
},
{
"title": "Instance Owner Email",
"value": "${OwnerEmail}"
},
{
"title": "Previous Status",
"value": "${PreviousStatus}"
},
{
"title": "Current Status",
"value": "${CurrentStatus}"
},
{
"title": "Crtitical Alerts",
"value": "${CriticalAlerts}"
},
{
"title": "Warning Alerts",
"value": "${WarningAlerts}"
},
{
"title": "CreatedAt",
"value": "${CreatedTime}"
},
{
"title": "Description",
"value": "Static Content"
}
],
"color": "#008ab1"
}
]
}
Example of a JSON Webhook's payload for ServiceNow is as follows:
{
"description": "Alert: ${AlertName} with level: ${AlertLevel} triggered on instance: ${InstanceName} owned by ${OwnerEmail}. Status of instance changed from ${PreviousStatus} to ${CurrentStatus}",
"short_description": "DB Status Change",
"close_code": "NO_RESOLUTION_PROVIDED",
"close_notes": "STATIC CONTENT"
}
Slack does not support XML payloads to configure Webhooks. Example of an XML payload for ServiceNow is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<request>
<entry>
<close_notes>notes</close_notes>
<short_description>description</short_description>
<impact>1</impact>
<sys_updated_by>updated by name</sys_updated_by>
</entry>
</request>
The different parameters that you can configure in a payload of a Webhook for the change of status of a database are described in the following table:
Parameter | Description |
---|---|
TargetType | Target Database VM |
TargetId | UUID of the database |
TargetName | Name of the database |
OwnerEmail | Email ID of the owner of the database |
TriggerType | Change of status of database or failure of a database operation |
url | Production URL of the target database |
TriggeredAt | The date and time at which the alert is triggered in the yyyy-MM-dd-HH:mm format |
TriggeredDate | The time at which the alert is triggered in the yyyy-MM-dd format |
TriggeredTime | The time at which the alert is triggered in the HH:mm:ss format |
CreatedTime | The time at which the database is created |
VMName | Name of the database VM |
InstanceName | Name of the database instance |
DBName | Name of the database |
AlertName | Name of the alert for CPU Health, Data Disk Health, System Disk Health, and so on |
AlertLevel | Level of the alert, that is, CRITICAL or WARNING |
PreviousStatus | Previous status of the database |
CurrentStatus | Current status of the database |
CriticalAlerts | List of critical alerts for the database |
WarningAlerts | List of warning alerts for the database |
The different parameters that you can configure in a payload of a Webhook for the failure of a database operation are described in the following table:
Parameter | Description |
---|---|
TargetType | Target Database VM |
TargetId | UUID of the database |
TargetName | Name of the database |
OwnerEmail | Email ID of the owner of the database |
TriggerType | Change of status of database or failure of a database operation |
url | Product URL of the target database |
TriggeredAt | The date and time at which the alert is triggered in the yyyy-MM-dd-HH:mm format |
TriggeredDate | The time at which the alert is triggered in the yyyy-MM-dd format |
TriggeredTime | The time at which the alert is triggered in the HH:mm:ss format |
CreatedTime | The time at which the database is created |
VMName | Name of the database VM |
InstanceName | Name of the database instance |
DBName | Name of the database |
TriggeredUserEmail | Email ID of the user who triggers the database operation |
OperationType | Name of the operation that triggers the notification |
After creating a Webhook, you may need to update the payload to add, modify, or remove parameters of the payloads. Else, you may need to update a Webhook's name, authorization credentials, and so on. For all such purposes, as a Provider Administrator, you can edit Webhooks that you have created.
Perform the following steps to create a Webhook:
Select Settings from the left navigation pane.
Information pane appears in the Settings view.
Click Webhook Settings tab.
The Webhook Setting List appears.
From the table in the Webhook Setting List, identify the Webhook that you want to update click the three vertical dots in the Actions column of that Webhook, and then click Edit Webhook from the pop-up menu.
The Edit Webhook form appears.
In the Name and Destination tab of the Create New Webhook form, update the following properties, as required:
Property | Description |
---|---|
Endpoint Type | Select Slack, ServiceNow, or Custom as the endpoint application from the dropdown list. You can select Custom if you want to configure any other application as the endpoint type other than Slack or ServiceNow. |
Webhook Name | Update the name of the Webhook with a unique name. |
Destination URL | Update the destination URL of the endpoint application. |
HTTP Request Method | Select POST or PUT from the dropdown list. |
Authorization User | Update the authorization username for the Webhook. |
Authorization Password | Update the authorization password for the Webhook. |
Custom Headers | Update the Header Name and Header Value for the custom header of the Webhook. Click + to add more custom headers and - to remove custom headers. |
Click NEXT.
In the DB Status Change Payload tab of the Create New Webhook form, update the following properties:
Property | Description |
---|---|
Content Type | From the dropdown list, select JSON or XML as the content type of the Webhook for any change of database status. You can only choose JSON if you have selected Slack as the Endpoint Type in the Name and Destination tab because Slack doesn't support XML as an option for Content Type. |
Webhook Payload | Use the payload as-is or update the Webhook's payload, as required. VMware Data Services Manager supports only the parameters listed in the Parameters box to be included in the payload. |
Click NEXT.
In the DB Operation Failure Payload tab of the Create New Webhook form, set the following properties:
Property | Description |
---|---|
Content Type | From the dropdown list, select JSON or XML as the content type of the Webhook for any database operation failure. You can only choose JSON if you have selected Slack as the Endpoint Type in the Name and Destination tab because Slack doesn't support XML as an option for Content Type. |
Webhook Payload | Use the payload as-is or update the Webhook's payload, as required. VMware Data Services Manager supports only the parameters listed in the Parameters box to be included in the payload. |
Click UPDATE.
The status of a Webhook can either be Published or Unpublished. Notifications of database status change or operation failure are only sent to the published Webhooks. When you create a Webhook, the status of the Webhook is Published. However, you can change the status of a Webhook from Published to Unpublished and vice-versa, as required. If an unpublished Webhook is already associated with a database, that webhook is listed using red font in the Alert Settings tab of that database.
Perform the following steps to change the status of a Webhook:
Select Settings from the left navigation pane.
Information pane appears in the Settings view.
Click Webhook Settings tab.
The Webhook Setting List appears.
From the table in the Webhook Setting List, identify the Webhook whose status you want to change, click the three vertical dots in the Actions column of that Webhook, and then click Unpublish Webhook or Publish Webhook, as required, from the pop-up menu.
Either the Unpublish Webhook dialog box appears or the status of the Webhook changes to Published.
If the Unpublish Webhook dialog box appears, click CONFIRM.
The status of the Webhook changes to Unpublished.
Alerts for status change and operation failure of a database are sent to the published Webhooks associated with a database. You can activate or deactivate these alerts and you can associate or dissociate the Webhooks from a database during the creation of the database.
After you have created a database, you can still activate or deactivate database alerts and you can associate or dissociate the Webhooks from a database.
Perform the following steps to activate or deactivate database alerts and you can associate or dissociate the Webhooks from a database after you have created the database:
Select Databases from the left navigation pane.
The list of created databases appears in the Databases view.
From the list of created databases in the Database view, click the database for which you want to activate or deactivate database alerts and associate or dissociate Webhooks.
The Details tab of the database appears.
Click the Alerts Settings tab, and click EDIT in the Email/Webhook Configuration section.
The Edit Alerts Configuration dialog box appears.
In the Edit Alerts Configuration dialog box, select or deselect Enable Alerts for DB Status Change to activate or deactivate alerts for change in status of the database. If you activate this alert, you can scroll through the drop-down list of Enable Alerts for DB Status Change, and then select Webhooks to be associated with the database, as required. Else, you can cross out the selected Webhooks to dissociate them from the database.
In the Edit Alerts Configuration dialog box, select or deselect Enable Alerts for DB Operation Failure to activate or deactivate alerts for failure of database operations. If you activate this alert, you can scroll through the drop-down list of Enable Alerts for DB Operation Failure, and then select Webhooks to be associated with the database, as required. Else, you can cross out the selected Webhooks to dissociate them from the database.
Click CONFIRM.
You can also delete Webhooks that are no longer required.
Perform the following steps to delete a Webhook:
Select Settings from the left navigation pane.
Information pane appears in the Settings view.
Click Webhook Settings tab.
The Webhook Setting List appears.
From the table in the Webhook Setting List, identify the Webhook that you want to delete, click the three vertical dots in the Actions column of that Webhook, and then click Delete Webhook from the pop-up menu.