Create an Alert Configuration
On this page
Note
Groups and projects are synonymous terms. Your {PROJECT-ID}
is the
same as your project id. For existing groups, your group/project id
remains the same. This page uses the more familiar term group when
referring to descriptions. The endpoint remains as stated in the
document.
Base URL: https://{OPSMANAGER-HOST}:{PORT}/api/public/v1.0
Resource
POST /groups/{PROJECT-ID}/alertConfigs
Request Path Parameters
All request path parameters are required.
Parameter | Type | Description |
---|---|---|
PROJECT-ID | string | Unique identifier for this Project. |
Request Query Parameters
The following query parameters are optional:
Name | Type | Necessity | Description | Default | ||||||
---|---|---|---|---|---|---|---|---|---|---|
pretty | boolean | Optional | Flag indicating whether the response body should be in a prettyprint format. |
| ||||||
envelope | boolean | Optional | Flag that indicates whether or not to wrap the response in an envelope. Some API clients cannot access the HTTP response headers or status code. To remediate this, set envelope=true in the query. For endpoints that return one result, the response body includes:
|
|
Request Body Parameters
Note
Alert configurations vary. An alert configuration may only include a subset of these elements.
Name | Type | Description |
---|---|---|
enabled | boolean | If omitted, the configuration is disabled. |
eventTypeName Required. | string | The type of event that triggers an alert. Values include: Agent Automation Configuration Backup BI Connector Cluster Data Explorer Accessed Host Organization Project Replica Set Team User To review the full list of events that generate alerts and their descriptions, see Alert Types. For a complete list of events included in the Ops Manager audit log, see Audit Events. |
matchers.fieldName | string | Name of the field in the target object to match on.
All other types of alerts do not support matchers. |
matchers.operator | string | Operator to test the field's value. Accepted values are:
|
matchers.value | string | Value to test with the specified operator. If
|
matchers | object array | Rules to apply when matching an object against this alert configuration. Only entities that match all these rules are checked for an alert condition. You can filter using the |
metricThreshold.metricName | string | Name of the metric to check. Supports the same values as
the |
metricThreshold.mode | string | Set to |
metricThreshold.operator | string | Operator to apply when checking the current metric value against the threshold value. Accepted values are:
|
metricThreshold.threshold | number | Threshold value outside of which an alert is triggered. |
metricThreshold.units | string | Units for the threshold value. Depends on the type of metric. ExampleA metric that measures memory consumption would have a byte measurement, while a metric that measures time would have a time unit. Accepted values are:
|
metricThreshold | object | Threshold that will cause an alert to be triggered.
Required if |
notifications.apiToken | string | Slack API token or Bot token.
Required if After you create a third-party integration that requires an API or integration key, the key appears partially redacted when you:
|
notifications.channelName | string | Slack channel name.
Required if |
notifications.datadogApiKey | string | DataDog API Key. Found in the DataDog dashboard.
Required if After you create a third-party integration that requires an API or integration key, the key appears partially redacted when you:
|
notifications.delayMin | number | Number of minutes to wait after an alert condition is detected before sending out the first notification. |
notifications.emailAddress | string | Email address to which to send notification.
Required if |
notifications.emailEnabled | boolean | Determines if email notifications should be sent. Required if:
|
notifications.intervalMin | number | Number of minutes to wait between successive notifications for unacknowledged alerts that are not resolved. |
notifications.webhookSecret | string | A value used to authenticate with the Webhook that accepts and forwards the notification. You can explicitly declare a secret only in a request that has both:
You can configure a To explicitly declare a After creating a webhook notification, the URL is partially redacted when you view or edit the alert, and the secret is completely redacted. |
notifications.webhookUrl | string | URL for the webhook that triggers this notification. If you do not
explicitly declare a After creating a webhook notification, the URL is partially redacted when you view or edit the alert, and the secret is completely redacted. |
notifications.microsoftTeamsWebhookUrl | string | Microsoft Teams channel incoming webhook URL.
Required if When you view or edit the alert for a webhook notification, the URL appears partially redacted, and the secret appears completely redacted. |
notifications.mobileNumber | string | Mobile number to send SMS messages to.
Required if |
notifications.notificationToken | string | A HipChat API token.
Required if After you create a third-party integration that requires an API or integration key, the key appears partially redacted when you:
|
notifications.role | string | Ops Manager role in current Project.
Required if |
notifications.roomName | string | HipChat room name.
Required if |
notifications.serviceKey | string | PagerDuty integration key.
Required if After you create a third-party integration that requires an API or integration key, the key appears partially redacted when you:
|
notifications.smsEnabled | boolean | Flag indicating SMS notifications must be sent. Required if:
|
notifications.teamId | string | Unique identifier of a team. |
notifications.typeName | string | Type of alert notification. Accepted values are:
|
notifications.username | string | Name of an Ops Manager user to which to send notifications.
Specify a user in the Project that owns the alert
configuration.
Required if |
notifications Required | object array | Notifications to send when an alert condition is detected. |
threshold.operator | string | Operator to apply when checking the current metric value against the threshold value.
|
threshold.threshold | number | Threshold value outside of which an alert is triggered. |
threshold | object | Threshold that will cause an alert to be triggered. Required if:
|
Response
The response includes the alert configuration details:
Note
Alert configurations vary. An alert configuration may only include a subset of these elements.
Name | Type | Description |
---|---|---|
created | string | Timestamp in ISO 8601 date and time format in UTC when this alert configuration was created. |
enabled | boolean | Flag indicating this alert configuration enabled. |
eventTypeName | string | Type of event that triggers an alert. |
groupId | string | Unique identifier of the Project that owns this alert configuration. |
id | string | Unique identifier of the alert configuration. |
links | array of objects | One or more links to sub-resources and/or related resources. The relation-types between URLs are explained in the Web Linking Specification. |
matchers | array of objects | Rules to apply when matching an object against this alert configuration. |
matchers .[n].fieldName | string | Name of the field in the target object that you wanted this configuration to match. |
matchers .[n].operator | string | Comparison operator to apply when checking the current metric
value against |
matchers .[n].value | string | Value to match or exceed using |
metricThreshold | object | Value and means of comparison that triggers an alert. |
metricThreshold .metricName | string | Name of the metric to check. Supports the same values as
the |
metricThreshold .mode | string | Average value of this metric. |
metricThreshold .operator | string | Comparison operator that Ops Manager applied when checking the current metric value against the threshold value. |
metricThreshold .threshold | number | Value of |
metricThreshold .units | string | Units of capacity or time that define the scope of the
|
notifications | array of objects | One or more targets for Ops Manager to send notifications when an alert condition is detected. |
notifications.[n] .apiToken | string | Slack API token token. Ops Manager returns this value if you
set After you create a third-party integration that requires an API or integration key, the key appears partially redacted when you:
|
notifications.[n] .channelName | string | Slack channel name. Ops Manager returns this value if you set
|
notifications.[n] .datadogApiKey | string | DataDog API Key. Ops Manager returns this value if you set
After you create a third-party integration that requires an API or integration key, the key appears partially redacted when you:
|
notifications.[n] .delayMin | number | Number of minutes to wait after an alert condition is detected before sending out the first notification. |
notifications.[n] .emailAddress | string | Email address to which to send notification. Ops Manager
returns this value if you set |
notifications.[n] .emailEnabled | boolean | Flag indicating email notifications must be sent. Ops Manager
returns this value if you set |
notifications.[n] .intervalMin | number | Number of minutes to wait between successive notifications for unacknowledged alerts that are not resolved. |
notifications.[n] .microsoftTeamsWebhookUrl | string | Microsoft Teams channel incoming webhook URL.
Ops Manager returns this value if
you set When you view or edit the alert for a webhook notification, the URL appears partially redacted, and the secret appears completely redacted. |
notifications.[n] .mobileNumber | string | Mobile number to which alert notifications are sent.
Ops Manager returns this value if you set
|
notifications.[n] .notificationToken | string | HipChat API token. Ops Manager returns this value if you set
If the token later becomes invalid, MongoDB Atlas sends an email to the
After you create a third-party integration that requires an API or integration key, the key appears partially redacted when you:
|
notifications.[n] .opsGenieApiKey | string | OpsGenie Alert API
key. Ops Manager returns this value if
you set After you create a third-party integration that requires an API or integration key, the key appears partially redacted when you:
|
notifications.[n] .opsGenieRegion | string | Region that indicates which API URL to use. Ops Manager
returns this value if you set |
notifications.[n] .roles | array of strings | Ops Manager role in current Project or Organization. Ops Manager
returns this value if you set |
notifications.[n] .roomName | string | HipChat room name. Ops Manager returns this value if
|
notifications.[n] .serviceKey | string | PagerDuty service key. Ops Manager returns this value if
you set After you create a third-party integration that requires an API or integration key, the key appears partially redacted when you:
|
notifications.[n] .smsEnabled | boolean | Flag indicating text notifications must be sent. Ops Manager
returns this value if you set |
notifications.[n] .snmpAddress | string | Hostname and port to send SNMP traps to. At this time,
Ops Manager is only able to send SNMP traps to the standard
SNMP port (162). Populated for ImportantOps Manager 6.0.0 deprecates SNMP alerts. Ops Manager 7.0.0 will not include SNMP alerts. To learn more about other alert options, see Third-Party Service Integrations. |
notifications.[n] .teamId | string | Unique identifier of the team that receives this notification. |
notifications.[n] .teamName | string | Label for the team that receives this notification. |
notifications.[n] .typeName | string | Means by which you want Ops Manager to send you notification of an alert. |
notifications.[n] .username | string | Name of an Ops Manager user to which to send notifications.
Ops Manager returns this value if you set
|
notifications.[n] .victorOpsApiKey | string | VictorOps API key. If the key later becomes invalid, MongoDB Atlas sends an email to the
Ops Manager returns this value if you set
After you create a third-party integration that requires an API or integration key, the key appears partially redacted when you:
|
notifications.[n] .victorOpsRoutingKey | string | VictorOps routing key. If the key later becomes invalid, MongoDB Atlas sends an email to the
Ops Manager returns this value if you set
|
notifications.[n] .webhookSecret | string | A value used to authenticate with the Webhook that accepts and forwards the notification. Ops Manager returns this value if you set
After creating a webhook notification, the URL is partially redacted when you view or edit the alert, and the secret is completely redacted. |
notifications.[n] .webhookUrl | string | URL for the webhook that triggers this notification. Ops Manager returns this value if you set
After creating a webhook notification, the URL is partially redacted when you view or edit the alert, and the secret is completely redacted. |
threshold | object | Threshold that triggers an alert. Ops Manager returns this
value if |
threshold .operator | string | Comparison operator that Ops Manager applied when checking the current metric value against the threshold value. |
threshold .threshold | number | Value that, when exceeded, Ops Manager triggers an alert. |
threshold .units | string | Units of capacity or time that define the scope of the
|
typeName | string | This field is deprecated and is ignored. |
updated | string | Timestamp in ISO 8601 date and time format in UTC when this alert configuration was last updated. |
Example Request
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request POST "https://<ops-manager-host>/api/public/v1.0/groups/{PROJECT-ID}/alertConfigs" \ --data ' { "eventTypeName" : "RESYNC_REQUIRED", "enabled" : true, "notifications" : [ { "typeName" : "GROUP", "intervalMin" : 5, "delayMin" : 0, "smsEnabled" : false, "emailEnabled" : true } ] }'
Example Response
Response Header
401 Unauthorized Content-Type: application/json;charset=ISO-8859-1 Date: {dateInUnixFormat} WWW-Authenticate: Digest realm="MMS Public API", domain="", nonce="{nonce}", algorithm=MD5, op="auth", stale=false Content-Length: {requestLengthInBytes} Connection: keep-alive
200 OK Vary: Accept-Encoding Content-Type: application/json Strict-Transport-Security: max-age=300 Date: {dateInUnixFormat} Connection: keep-alive Content-Length: {requestLengthInBytes} X-MongoDB-Service-Version: gitHash={gitHash}; versionString={ApplicationVersion}
Response Body
{ "created" : "2014-04-23T14:29:18Z", "enabled" : true, "groupId" : "{PROJECT-ID}", "id" : "{ALERT-CONFIG-ID}", "links" : [], "matchers" : [ ], "notifications" : [ { "delayMin" : 0, "emailEnabled" : true, "intervalMin" : 5, "smsEnabled" : false, "typeName" : "GROUP" } ], "updated" : "2014-04-23T14:29:18Z" }