Navigation

Create One Alert Configuration

Note

Groups and projects are synonymous terms. Your {GROUP-ID} is the same as your project ID. For existing groups, your group/project ID remains the same. The resource and corresponding endpoints use the term groups.

Resource

Base URL: https://cloud.mongodb.com/api/atlas/v1.0

POST /groups/{PROJECT-ID}/alertConfigs

Request Path Parameters

Parameter Type Necessity Description
PROJECT-ID string Required Unique identifier for the Project.

Request Query Parameters

This endpoint may use any of the HTTP request query parameters available to all Atlas API resources. These are all optional.

Name Type Necessity Description Default
pageNum integer Optional Page number (1-based). 1
itemsPerPage integer Optional Maximum number of items to return, up to a maximum of 100. 100
includeCount boolean Optional Specifies whether the response returns the totalCount field. true
pretty boolean Optional Indicates whether the response body should be in a prettyprint format. false
envelope boolean Optional

Flag indicating if Atlas should wrap the response in a JSON 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 a list of results, the results object is an envelope. Atlas adds the status field to the response body.

false

Request Body Parameters

Alert configurations depend why you want Atlas to raise an alert. Alerts can be triggered if either:

  • a particular condition is met or
  • a particular metric exceeded a particular value.

To simplify the differences between condition and metrics, click one of the following tabs:

Name Type Necessity Description
enabled boolean Optional Flag that indicates if this alert configuration is enabled or disabled.
eventTypeName string Required

Type of event that triggers an alert.

Alert Target Condition
Backup
CPS_SNAPSHOT_SUCCESSFUL
Snapshot taken successfully
CPS_SNAPSHOT_FALLBACK_SUCCESSFUL
Fallback snapshot taken
CPS_SNAPSHOT_FALLBACK_FAILED
Fallback snapshot failed
CPS_SNAPSHOT_BEHIND
Snapshot schedule fell behind
CPS_RESTORE_FAILED
Backup restore failed
CPS_RESTORE_SUCCESSFUL
Backup restore succeeded
CPS_SNAPSHOT_DOWNLOAD_REQUEST_FAILED
Snapshot download request failed
Billing
CREDIT_CARD_ABOUT_TO_EXPIRE
Credit card is about to expire
PENDING_INVOICE_OVER_THRESHOLD
Monthly pending invoice ($) total is…
DAILY_BILL_OVER_THRESHOLD
Daily amount billed ($) is…
Encryption Key
AWS_ENCRYPTION_KEY_NEEDS_ROTATION
AWS encryption key elapsed time since last rotation is…
AZURE_ENCRYPTION_KEY_NEEDS_ROTATION
Azure encryption key elapsed time since last rotation is…
GCP_ENCRYPTION_KEY_NEEDS_ROTATION
GCP encryption key elapsed time since last rotation is…
Host
HOST_DOWN
Host is down
OUTSIDE_METRIC_THRESHOLD
Click the Metrics tab beneath Request Body Parameters.
Project
USERS_WITHOUT_MULTIFACTOR_AUTH
Users do not have two-factor authentication enabled
Replica Set
PRIMARY_ELECTED
Replica set elected a new primary
NO_PRIMARY
Replica set has no primary
TOO_MANY_ELECTIONS
Number of election events is…
REPLICATION_OPLOG_WINDOW_RUNNING_OUT
Replication Oplog Window is…
Sharded Cluster
CLUSTER_MONGOS_IS_MISSING
Cluster is missing an active mongos
User
USER_ROLES_CHANGED_AUDIT
User had their role changed
JOINED_GROUP
User joined the project
REMOVED_FROM_GROUP
User left the project
USER_ROLES_CHANGED_AUDIT
User had their role changed
X.509
NDS_X509_USER_AUTHENTICATION_MANAGED_USER_CERTS_EXPIRATION_CHECK
X.509 User Authentication, Client Certificates Expiration Alert when days to expiration is…
NDS_X509_USER_AUTHENTICATION_CUSTOMER_CA_EXPIRATION_CHECK
X.509 User Authentication, Self-Managed CA Expiration Alert when days to expiration is…
Name Type Necessity Description
enabled boolean Optional Flag that indicates if this alert configuration is enabled or disabled.
eventTypeName string Required Type of event that triggers an alert. Set this value to OUTSIDE_METRIC_THRESHOLD. You must also set one or more host metrics in the metricThreshold array.
matchers array of objects Required

Rules to apply when matching an object against this alert configuration. Only entities that match all these rules are checked for an alert condition.

Atlas limits filtering alerts using matchers when the eventTypeName specifies an event for the following:

  • a host,
  • a replica set, or
  • a sharded cluster.

To add one or more matchers, see Filter Results.

notifications array of objects Required

One or more targets for Atlas to send notifications when an alert condition is detected. You can configure any number of notifications for each alert condition.

To add one or more notifications, see Set Notifications.

threshold object Conditional

Threshold that triggers an alert. Don’t include if “eventTypeName” : “OUTSIDE_METRIC_THRESHOLD”.

To add one threshold, see Trigger Alerts.

metricThreshold object Conditional

Threshold for the metric that, when exceeded, triggers an alert.

To add one metricThreshold, see Trigger Alerts.

Trigger Alerts

threshold
.operator
string Required

Comparison operator to apply when checking the current condition against the threshold.threshold value. Atlas accepts the following values:

  • GREATER_THAN
  • LESS_THAN
threshold
.threshold
integer Required Value that, when exceeded, Atlas triggers an alert.
threshold.units string Required Units of capacity or time that define the scope of the threshold.threshold.
metricThreshold
.metricName
string Required

Name of the metric to check.

To review available metrics, see Host Metrics.

metricThreshold
.operator
string Required

Comparison operator to apply when checking the current metric value against the threshold value. Atlas accepts the following values:

  • GREATER_THAN
  • LESS_THAN
metricThreshold
.threshold
integer Required Value of metricThreshold.metricName that, when exceeded, Atlas triggers an alert.
metricThreshold
.units
string Required

Units of capacity or time that define the scope of the metricThreshold.threshold. Depends on the type of metric.

Example

A metric that measures memory consumption would have a byte measurement, while a metric that measures time would have a time unit.

Atlas accepts the following values for durations:

  • MILLISECONDS
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS

Atlas accepts the following values for storage or memory:

  • BITS
  • KILOBITS
  • MEGABITS
  • GIGABITS
  • BYTES
  • KILOBYTES
  • MEGABYTES
  • GIGABYTES
  • TERABYTES
  • PETABYTES
metricThreshold
.mode
string Required This must be set to AVERAGE. Atlas computes the current metric value as an average.

Filter Results

matchers
.[n].fieldName
string Required

Name of the field in the target object that you wanted this configuration to match. Atlas accepts the following values:

Host Replica set Sharded cluster
TYPE_NAME
HOSTNAME
PORT
HOSTNAME_AND_PORT
REPLICA_SET_NAME
REPLICA_SET_NAME
SHARD_NAME
CLUSTER_NAME
CLUSTER_NAME
SHARD_NAME
matchers
.[n].operator
string Optional

Comparison operator to apply when checking the current metric value against matcher.[n].value. Atlas accepts the following values:

  • EQUALS
  • NOT_EQUALS
  • CONTAINS
  • NOT_CONTAINS
  • STARTS_WITH
  • ENDS_WITH
  • REGEX
matchers
.[n].value
string Optional

Value against which the specified operator compares.

If you set matchers.[n].fieldName to TYPE_NAME, you can match on the following values:

  • PRIMARY
  • SECONDARY
  • STANDALONE
  • CONFIG
  • MONGOS

Set Notifications

notifications.[n]
.apiToken
string Conditional

Slack API token.

If the token later becomes invalid, Atlas sends an email to the Project Owner and eventually removes the token.

Set this value if you set notifications.[n].typeName to SLACK.

notifications.[n]
.channelName
string Conditional

Slack channel name.

Set this value if you set notifications.[n].typeName to SLACK.

notifications.[n]
.datadogApiKey
string Conditional

Datadog API Key. Found in the Datadog dashboard.

Set this value if you set notifications.[n].typeName to DATADOG.

notifications.[n]
.datadogRegion
string Conditional

Region that indicates which API URL to use. Atlas accepts the following values:

  • US
  • EU

The default Datadog region is US.

Set this value if you set notifications.[n].typeName to DATADOG.

notifications.[n]
.delayMin
integer Conditional Number of minutes to wait after an alert condition is detected before sending out the first notification.
notifications.[n]
.emailAddress
string Conditional

Email address to which alert notifications are sent.

Set this value if you set notifications.[n].typeName to EMAIL.

You don’t need to set this value to send emails to specific users, users with specific project roles, users with specific organization roles, or teams. Use the notifications.[n].emailEnabled parameter for that purpose.

notifications.[n]
.emailEnabled
boolean Conditional

Flag indicating if email notifications should be sent to this user’s email address.

Set this value if you set notifications.[n].typeName to GROUP, ORG, or USER.

notifications.[n]
.flowdockApiToken
string Conditional

Flowdock personal API token.

If the token later becomes invalid, Atlas sends an email to the Project Owner and eventually removes the token.

Set this value if you set notifications.[n].typeName to FLOWDOCK.

notifications.[n]
.flowName
string Conditional

Flowdock flow name in lower-case letters. The flow name appears after the organization name in the URL string:

www.flowdock.com/app/<organization-name>/<flow-name>.

Set this value if you set notifications.[n].typeName to FLOWDOCK.

notifications.[n]
.intervalMin
integer Required Number of minutes to wait between successive notifications for unacknowledged alerts that are not resolved. The minimum value is 5.
notifications.[n]
.mobileNumber
string Conditional

Mobile number to which alert notifications are sent.

Set this value if you set notifications.[n].typeName to SMS.

You don’t need to set this value to send emails to specific users, users with specific project roles, users with specific organization roles, or teams. Use the notifications.[n].smsEnabled parameter for that purpose.

notifications.[n]
.notificationToken
string Conditional

HipChat API token.

Set this value if you set notifications.[n].typeName to HIP_CHAT.

If the token later becomes invalid, Atlas sends an email to the Project owner and eventually removes the token.

notifications.[n]
.opsGenieApiKey
string Conditional

Opsgenie API Key.

If the key later becomes invalid, Atlas sends an email to the Project Owner and eventually removes the key.

Set this value if you set notifications.[n].typeName to OPS_GENIE.

notifications.[n]
.opsGenieRegion
string Conditional

Region that indicates which API URL to use. Atlas accepts the following values:

  • US
  • EU

The default Opsgenie region is US.

Set this value if you set notifications.[n].typeName to OPS_GENIE.

notifications.[n]
.orgName
string Conditional

Flowdock organization name in lower-case letters. This is the name that appears after www.flowdock.com/app/ in the URL string.

Set this value if you set notifications.[n].typeName to FLOWDOCK.

notifications.[n]
.roles
array of strings Conditional

One or more roles that receive the configured alert. Atlas accepts the following values:

Project roles Organization roles
  • GROUP_CLUSTER_MANAGER
  • GROUP_DATA_ACCESS_ADMIN
  • GROUP_DATA_ACCESS_READ_ONLY
  • GROUP_DATA_ACCESS_READ_WRITE
  • GROUP_OWNER
  • GROUP_READ_ONLY
  • ORG_OWNER
  • ORG_MEMBER
  • ORG_GROUP_CREATOR
  • ORG_BILLING_ADMIN
  • ORG_READ_ONLY

If you include this field, Atlas sends alerts only to users assigned the roles you specify in the array. If you omit this field, Atlas sends alerts to users assigned any role.

Set this value if you set notifications.[n].typeName to GROUP or ORG.

notifications.[n]
.roomName
string Conditional

HipChat room name.

Set this value if you set notifications.[n].typeName to HIP_CHAT.

notifications.[n]
.serviceKey
string Conditional

PagerDuty service key.

If the key later becomes invalid, Atlas sends an email to the Project Owner and eventually removes the key.

Set this value if you set notifications.[n].typeName to PAGER_DUTY.

notifications.[n]
.severity
string Optional

Degree of seriousness of this notification.

Atlas accepts the following values:

  • CRITICAL
  • ERROR
  • WARNING
notifications.[n]
.smsEnabled
boolean Conditional

Flag indicating if text message notifications should be sent to this user’s mobile phone.

Set this value if you set notifications.[n].typeName to ORG, GROUP, or USER.

notifications.[n]
.teamId
string Conditional

Unique identifier of a team.

Set this value if you set notifications.[n].typeName to TEAM.

notifications.[n]
.typeName
string Required

Means by which you want Atlas to send you notification of an alert. Atlas accepts the following values:

  • EMAIL
  • SMS
  • PAGER_DUTY
  • SLACK
  • FLOWDOCK
  • DATADOG
  • OPS_GENIE
  • VICTOR_OPS
  • WEBHOOK
  • USER
  • TEAM
  • GROUP (Project)
  • ORG
notifications.[n]
.username
string Conditional

Name of the Atlas user to which to send notifications. This user must belong in the project that owns the alert configuration.

Set this value if you set notifications.[n].typeName to USER.

notifications.[n]
.victorOpsApiKey
string Conditional

VictorOps API key.

If the key later becomes invalid, Atlas sends an email to the Project Owner and eventually removes the key.

Set this value if you set notifications.[n].typeName to VICTOR_OPS.

notifications.[n]
.victorOpsRoutingKey
string Conditional

VictorOps routing key.

If the key later becomes invalid, Atlas sends an email to the Project Owner and eventually removes the key.

Set this value if you set notifications.[n].typeName to VICTOR_OPS.

Response Elements

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 matcher.[n].value.
matchers
.[n].value
string Value to match or exceed using matchers.[n].operator.
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 metricName field of the alerts resource.
metricThreshold
.mode
string Average value of this metric.
metricThreshold
.operator
string Comparison operator that Atlas applied when checking the current metric value against the threshold value.
metricThreshold
.threshold
number Value of metricThreshold.metricName that, when exceeded, triggers an alert.
metricThreshold
.units
string Units of capacity or time that define the scope of the metricThreshold.threshold.
notifications array of objects One or more targets for Atlas to send notifications when an alert condition is detected.
notifications.[n]
.apiToken
string Slack API token token. Atlas returns this value if you set notifications.[n].typeName to SLACK.
notifications.[n]
.channelName
string Slack channel name. Atlas returns this value if you set notifications.[n].typeName to SLACK.
notifications.[n]
.datadogApiKey
string DataDog API Key. Atlas returns this value if you set notifications.[n].typeName to DATADOG.
notifications.[n]
.datadogRegion
string Region that indicates which API URL to use.
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. Atlas returns this value if you set notifications.[n].typeName to EMAIL.
notifications.[n]
.emailEnabled
boolean Flag indicating email notifications must be sent. Atlas returns this value if you set notifications.[n].typeName to ORG, GROUP, or USER.
notifications.[n]
.flowdockApiToken
string Flowdock personal API token. Atlas returns this value if you set notifications.[n].typeName to FLOWDOCK.
notifications.[n]
.flowName
string Name of the Flowdock flow. Atlas returns this value if you set notifications.[n].typeName to FLOWDOCK.
notifications.[n]
.intervalMin
number Number of minutes to wait between successive notifications for unacknowledged alerts that are not resolved.
notifications.[n]
.mobileNumber
string Mobile number to which alert notifications are sent. Atlas returns this value if you set notifications.[n].typeName to SMS.
notifications.[n]
.notificationToken
string

HipChat API token. Atlas returns this value if you set notifications.[n].typeName to HIP_CHAT.

If the token later becomes invalid, Atlas sends an email to the Project Owner and eventually removes the token.

notifications.[n]
.opsGenieApiKey
string Opsgenie API Key. Atlas returns this value if you set notifications.[n].typeName to OPS_GENIE.
notifications.[n]
.opsGenieRegion
string Region that indicates which API URL to use. Atlas returns this value if you set notifications.[n].typeName to OPS_GENIE.
notifications.[n]
.orgName
string Name of the Flowdock organization. Atlas returns this value if you set notifications.[n].typeName to FLOWDOCK.
notifications.[n]
.roles
array of strings Atlas role in current Project or Organization. Atlas returns this value if you set notifications.[n].typeName to ORG or GROUP.
notifications.[n]
.roomName
string HipChat room name. Atlas returns this value if “notifications.typeName” : “HIP_CHAT.
notifications.[n]
.serviceKey
string PagerDuty service key. Atlas returns this value if you set notifications.[n].typeName to PAGER_DUTY.
notifications.[n]
.severity
string Degree of seriousness of this notification.
notifications.[n]
.smsEnabled
boolean Flag indicating text notifications must be sent. Atlas returns this value if you set notifications.[n].typeName to ORG, GROUP, or USER.
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 Atlas to send you notification of an alert.
notifications.[n]
.username
string Name of an Atlas user to which to send notifications. Atlas returns this value if you set notifications.[n].typeName to USER.
notifications.[n]
.victorOpsApiKey
string

VictorOps API key.

If the key later becomes invalid, Atlas sends an email to the Project Owner and eventually removes the key.

Atlas returns this value if you set notifications.[n].typeName to VICTOR_OPS.

notifications.[n]
.victorOpsRoutingKey
string

VictorOps routing key.

If the key later becomes invalid, Atlas sends an email to the Project Owner and eventually removes the key.

Atlas returns this value if you set notifications.[n].typeName to VICTOR_OPS.

threshold object Threshold that triggers an alert. Atlas returns this value if eventTypeName is any value other than OUTSIDE_METRIC_THRESHOLD.
threshold
.operator
string Comparison operator that Atlas applied when checking the current metric value against the threshold value.
threshold
.threshold
number Value that, when exceeded, Atlas triggers an alert.
threshold
.units
string Units of capacity or time that define the scope of the threshold.threshold.
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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
     --request POST "https://cloud.mongodb.com/api/atlas/v1.0/groups/{PROJECT-ID}/alertConfigs" \
     --header "Content-Type: application/json" \
     --data '
       {
         "eventTypeName" : "REPLICATION_OPLOG_WINDOW_RUNNING_OUT",
         "enabled" : true,
         "notifications" : [ {
           "delayMin" : 0,
           "emailEnabled" : true,
           "intervalMin" : 60,
           "roles" : [ "GROUP_OWNER" ],
           "smsEnabled" : false,
           "typeName" : "GROUP"
         } ],
         "threshold" : {
           "operator" : "LESS_THAN",
           "threshold" : 1,
           "units" : "HOURS"
         },
         "typeName" : "REPLICA_SET"
       }'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
     --request POST "https://cloud.mongodb.com/api/atlas/v1.0/groups/{PROJECT-ID}/alertConfigs" \
     --header "Content-Type: application/json" \
     --data '
       {
         "eventTypeName" : "OUTSIDE_METRIC_THRESHOLD",
         "enabled" : true,
         "metricThreshold" : {
           "metricName" : "DISK_PARTITION_SPACE_USED_DATA",
           "mode" : "AVERAGE",
           "operator" : "GREATER_THAN",
           "threshold" : 90.0,
           "units" : "RAW"
         },
         "notifications" : [ {
           "delayMin" : 0,
           "emailEnabled" : true,
           "intervalMin" : 60,
           "roles" : [ "GROUP_OWNER" ],
           "smsEnabled" : false,
           "typeName" : "GROUP"
         } ],
         "typeName" : "HOST_METRIC"
       }'

Example Response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
  "created":"2020-02-26T01:14:40Z",
  "enabled":true,
  "eventTypeName":"REPLICATION_OPLOG_WINDOW_RUNNING_OUT",
  "groupId":"{PROJECT-ID}",
  "id":"{ALERT-CONFIG-ID}",
  "links":[{
    "href":"https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/alertConfigs/{ALERT-CONFIG-ID}",
    "rel":"self"
  },
  {
    "href":"https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/alertConfigs/{ALERT-CONFIG-ID}/alerts",
    "rel":"http://mms.mongodb.com/alerts"
  }],
  "matchers":[],
  "notifications":[{
    "delayMin":0,
    "emailEnabled":true,
    "intervalMin":60,
    "roles":["GROUP_OWNER"],
    "smsEnabled":false,
    "typeName":"GROUP"
  }],
  "threshold":{
    "operator":"LESS_THAN",
    "threshold":1,
    "units":"HOURS"
  },
  "typeName":"REPLICA_SET",
  "updated":"2020-02-26T01:14:40Z"
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
  "created" : "2016-06-17T14:51:06Z",
  "enabled" : true,
  "eventTypeName" : "OUTSIDE_METRIC_THRESHOLD",
  "groupId" : "{PROJECT-ID}",
  "id" : "{ALERT-CONFIG-ID}",
  "links" : [ {
    "href" : "https://cloud.mongodb.com/api/public/v1.0/groups/{PROJECT-ID}/alertConfigs/{ALERT-CONFIG-ID}",
    "rel" : "self"
  } ],
  "matchers" : [ ],
  "metricThreshold" : {
    "metricName" : "DISK_PARTITION_SPACE_USED_DATA",
    "mode" : "AVERAGE",
    "operator" : "GREATER_THAN",
    "threshold" : 90.0,
    "units" : "RAW"
  },
  "notifications" : [ {
    "delayMin" : 0,
    "emailEnabled" : true,
    "intervalMin" : 60,
    "roles" : [ "GROUP_OWNER" ],
    "smsEnabled" : false,
    "typeName" : "GROUP"
  } ],
  "typeName" : "HOST_METRIC",
  "updated" : "2016-06-17T14:51:06Z"
}