Navigation

Create an 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.

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

Syntax

POST /groups/{GROUP-ID}/alertConfigs

Request Path Parameters

Parameter Necessity Description
GROUP-ID Required Project identifier.

Request Query Parameters

The following query parameters are optional:

Name Type Description Default
pageNum integer Page number (1-based). 1
itemsPerPage integer Number of items to return per page, up to a maximum of 500. 100
pretty boolean Displays response in a prettyprint format. false
envelope boolean Specifies whether or not to wrap the response in an envelope. false

Request Body Parameters

Note

Alert configurations vary. An alert configuration may only include a subset of these elements.

Name Type Necessity Description
eventTypeName string Required

Type of event that triggers an alert.

Alert type Possible values
Host
OUTSIDE_METRIC_THRESHOLD
HOST_RESTARTED
HOST_UPGRADED
HOST_NOW_SECONDARY
HOST_NOW_PRIMARY
Replica set
NO_PRIMARY
TOO_MANY_ELECTIONS
Sharded cluster CLUSTER_MONGOS_IS_MISSING
User
JOINED_GROUP
REMOVED_FROM_GROUP
USER_ROLES_CHANGED_AUDIT
Project
USERS_AWAITING_APPROVAL
USERS_WITHOUT_MULTI_FACTOR_AUTH
GROUP_CREATED
Team
JOINED_TEAM
REMOVED_FROM_TEAM
Organization
INVITED_TO_ORG
JOINED_ORG
Data Explorer
DATA_EXPLORER
DATA_EXPLORER_CRUD
Billing
CREDIT_CARD_ABOUT_TO_EXPIRE
CHARGE_SUCCEEDED
INVOICE_CLOSED

If this is set to OUTSIDE_METRIC_THRESHOLD, the metricThreshold field must also be set.

enabled boolean Optional If omitted, the configuration is disabled.
matchers object array 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.

You can filter using the matchers array only when the eventTypeName specifies an event for a host, replica set, or sharded cluster.

matchers
.fieldName
string Required

Name of the field in the target object to match on.

  • Host alerts support these fields:
    • TYPE_NAME
    • HOSTNAME
    • PORT
    • HOSTNAME_AND_PORT
    • REPLICA_SET_NAME
  • Replica set alerts support these fields:
    • REPLICA_SET_NAME
    • SHARD_NAME
    • CLUSTER_NAME
  • Sharded cluster alerts support these fields:
    • CLUSTER_NAME
    • SHARD_NAME

All other types of alerts do not support matchers.

matchers
.operator
string Optional

Operator to test the field’s value. Accepted values are:

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

Value to test with the specified operator.

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

  • PRIMARY
  • SECONDARY
  • STANDALONE
  • CONFIG
  • MONGOS
metricThreshold object Conditional Threshold that causes an alert to be triggered. Required if "eventTypeName" : "OUTSIDE_METRIC_THRESHOLD".
metricThreshold
.metricName
string Conditional

Name of the metric to check.

See Measurement Values for the available metrics.

metricThreshold
.operator
string Conditional

Operator to apply when checking the current metric value against the threshold value. Accepted values are:

  • GREATER_THAN
  • LESS_THAN
metricThreshold
.threshold
integer Conditional Threshold value outside of which an alert will be triggered.
metricThreshold
.units
string Conditional

Units for the threshold value. 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.

Accepted values are:

  • RAW
  • BITS
  • BYTES
  • KILOBITS
  • KILOBYTES
  • MEGABITS
  • MEGABYTES
  • GIGABITS
  • GIGABYTES
  • TERABYTES
  • PETABYTES
  • MILLISECONDS
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS
metricThreshold
.mode
string Conditional This must be set to AVERAGE. Atlas computes the current metric value as an average.
notifications object array Required Notifications to send when an alert condition is detected.
notifications
.apiToken
string Conditional Slack API token. Required for the SLACK notifications type. If the token later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.
notifications
.channelName
string Conditional Slack channel name. Required for the SLACK notifications type.
notifications
.datadogApiKey
string Conditional Datadog API Key. Found in the Datadog dashboard. Required for the DATADOG notifications type.
notifications
.datadogRegion
string Conditional

Region that indicates which API URL to use. Accepted regions are:

  • US
  • EU

The default Datadog region is US.

notifications
.delayMin
integer Conditional Number of minutes to wait after an alert condition is detected before sending out the first notification.
notifications
.emailAddress
string Conditional Email address to which alert notifications are sent. Required for the EMAIL notifications type.
notifications
.emailEnabled
boolean Conditional Flag indicating if email notifications should be sent. Configurable for ORG, GROUP, and USER notifications types.
notifications
.flowdockApiToken
string Conditional Flowdock personal API token. Required for the FLOWDOCK notifications type. If the token later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.
notifications
.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>.

Required for the FLOWDOCK notifications type.

notifications
.intervalMin
integer Required Number of minutes to wait between successive notifications for unacknowledged alerts that are not resolved. The minimum value is 5.
notifications
.mobileNumber
string Conditional Mobile number to which alert notifications are sent. Required for the SMS notifications type.
notifications
.opsGenieApiKey
string Conditional Opsgenie API Key. Required for the OPS_GENIE notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.
notifications
.opsGenieRegion
string Conditional

Region that indicates which API URL to use. Accepted regions are:

  • US
  • EU

The default Opsgenie region is US.

notifications
.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. Required for the FLOWDOCK notifications type.
notifications
.roles
array of strings Required

One or more project roles that receive the configured alert. Accepted values include:

  • GROUP_CHARTS_ADMIN
  • GROUP_CLUSTER_MANAGER
  • GROUP_DATA_ACCESS_ADMIN
  • GROUP_DATA_ACCESS_READ_ONLY
  • GROUP_DATA_ACCESS_READ_WRITE
  • GROUP_OWNER
  • GROUP_READ_ONLY
notifications
.serviceKey
string Conditional PagerDuty service key. Required for the PAGER_DUTY notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.
notifications
.smsEnabled
boolean Conditional Flag indicating if text message notifications should be sent. Configurable for ORG, GROUP, and USER notifications types.
notifications
.teamId
string Conditional Unique identifier of a team.
notifications
.typeName
string Required

Type of alert notification. Accepted values are:

  • DATADOG
  • EMAIL
  • FLOWDOCK
  • GROUP (Project)
  • OPS_GENIE
  • ORG
  • PAGER_DUTY
  • SLACK
  • SMS
  • TEAM
  • USER
  • VICTOR_OPS
  • WEBHOOK
notifications
.username
string Conditional Name of the Atlas user to which to send notifications. Only a user in the project that owns the alert configuration is allowed here. Required for the USER notifications type.
notifications
.victorOpsApiKey
string Conditional VictorOps API key. Required for the VICTOR_OPS notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.
notifications
.victorOpsRoutingKey
string Conditional VictorOps routing key. Optional for the VICTOR_OPS notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.

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
id string Unique identifier of the alert configuration.
groupId string Unique identifier of the project that owns this alert configuration.
eventTypeName string

Type of event that triggers an alert.

Accepted values are:

Alert type Possible values
Host
OUTSIDE_METRIC_THRESHOLD
HOST_RESTARTED
HOST_UPGRADED
HOST_NOW_SECONDARY
HOST_NOW_PRIMARY
Replica set
NO_PRIMARY
TOO_MANY_ELECTIONS
Sharded cluster CLUSTER_MONGOS_IS_MISSING
User
JOINED_GROUP
REMOVED_FROM_GROUP
USER_ROLES_CHANGED_AUDIT
Project
USERS_AWAITING_APPROVAL
USERS_WITHOUT_MULTI_FACTOR_AUTH
GROUP_CREATED
Team
JOINED_TEAM
REMOVED_FROM_TEAM
Organization
INVITED_TO_ORG
JOINED_ORG
Data Explorer
DATA_EXPLORER
DATA_EXPLORER_CRUD
Billing
CREDIT_CARD_ABOUT_TO_EXPIRE
CHARGE_SUCCEEDED
INVOICE_CLOSED
created string Timestamp in ISO 8601 date and time format in UTC when this alert configuration was created.
updated string Timestamp in ISO 8601 date and time format in UTC when this alert configuration was last updated.
enabled boolean

If set to true, the alert configuration is enabled.

If enabled is not specified in a POST command, it defaults to false.

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 matchers array only when the eventTypeName specifies an event for a host, replica set, or sharded cluster.

matchers
.fieldName
string

Name of the field in the target object to match on.

  • Host alerts support these fields:
    • TYPE_NAME
    • HOSTNAME
    • PORT
    • HOSTNAME_AND_PORT
    • REPLICA_SET_NAME
  • Replica set alerts support these fields:
    • REPLICA_SET_NAME
    • SHARD_NAME
    • CLUSTER_NAME
  • Sharded cluster alerts support these fields:
    • CLUSTER_NAME
    • SHARD_NAME

All other types of alerts do not support matchers.

matchers
.operator
string

Operator to test the field’s value. Accepted values are:

  • EQUALS
  • NOT_EQUALS
  • CONTAINS
  • NOT_CONTAINS
  • STARTS_WITH
  • ENDS_WITH
  • REGEX
matchers
.value
string

Value to test with the specified operator.

If "matchers.fieldName" : "TYPE_NAME", you can match on the following values:

  • PRIMARY
  • SECONDARY
  • STANDALONE
  • CONFIG
  • MONGOS
metricThreshold object Threshold that causes an alert to be triggered. Populated if "eventTypeName" : "OUTSIDE_METRIC_THRESHOLD".
metricThreshold
.metricName
string

Name of the metric against which Atlas checks the configured metricThreshold.threshold.

See Measurement Values for the available metrics.

metricThreshold
.operator
string

Operator to apply when checking the current metric value against the threshold value. Accepted values are:

  • GREATER_THAN
  • LESS_THAN
metricThreshold
.threshold
integer Threshold value outside of which an alert will be triggered.
metricThreshold
.units
string

Units for the threshold value. 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.

Accepted values are:

  • RAW
  • BITS
  • BYTES
  • KILOBITS
  • KILOBYTES
  • MEGABITS
  • MEGABYTES
  • GIGABITS
  • GIGABYTES
  • TERABYTES
  • PETABYTES
  • MILLISECONDS
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS
metricThreshold
.mode
string AVERAGE. Atlas computes the current metric value as an average.
notifications object array Notifications to send when an alert condition is detected.
notifications
.typeName
string

Type of alert notification. Accepted values are:

  • DATADOG
  • EMAIL
  • FLOWDOCK
  • GROUP (Project)
  • OPS_GENIE
  • ORG
  • PAGER_DUTY
  • SLACK
  • SMS
  • TEAM
  • USER
  • VICTOR_OPS
  • WEBHOOK
notifications
.intervalMin
integer Number of minutes to wait between successive notifications for unacknowledged alerts that are not resolved.
notifications
.delayMin
integer Number of minutes to wait after an alert condition is detected before sending out the first notification.
notifications
.emailEnabled
boolean Flag indicating if email notifications should be sent. Returned with ORG, GROUP, and USER notifications types.
notifications
.smsEnabled
boolean Flag indicating if text message notifications should be sent. Returned with ORG, GROUP, and USER notifications types.
notifications
.username
string Name of the Atlas user to which to send notifications. Only a user in the project that owns the alert configuration is allowed here. Returned with the USER notifications type.
notifications
.roles
array of strings

One or more project roles that receive the configured alert. Accepted values include:

  • GROUP_CHARTS_ADMIN
  • GROUP_CLUSTER_MANAGER
  • GROUP_DATA_ACCESS_ADMIN
  • GROUP_DATA_ACCESS_READ_ONLY
  • GROUP_DATA_ACCESS_READ_WRITE
  • GROUP_OWNER
  • GROUP_READ_ONLY
notifications
.teamId
string Unique identifier of a team.
notifications
.emailAddress
string Email address to which alert notifications are sent. Returned with the EMAIL notifications type.
notifications
.mobileNumber
string Mobile number to which alert notifications are sent. Returned with the SMS notifications type.
notifications
.channelName
string Slack channel name. Returned with the SLACK notifications type.
notifications
.apiToken
string Slack API token or Bot token. Returned with the SLACK notifications type. If the token later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.
notifications
.orgName
string Flowdock organization name in lower-case letters. This is the name that appears after www.flowdock.com/app/ in the URL string. Returned with the FLOWDOCK notifications type.
notifications
.flowName
string

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>.

Returned with the FLOWDOCK notifications type.

notifications
.flowdockApiToken
string Flowdock personal API token. Returned with the FLOWDOCK notifications type. If the token later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.
notifications
.serviceKey
string PagerDuty service key. Returned with the PAGER_DUTY notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.
notifications
.victorOpsApiKey
string VictorOps API key. Returned with the VICTOR_OPS notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.
notifications
.victorOpsRoutingKey
string VictorOps routing key. Returned with the VICTOR_OPS notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.
notifications
.opsGenieApiKey
string Opsgenie API Key. Returned with the OPS_GENIE notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.
notifications
.opsGenieRegion
string

Region that indicates which API URL to use. Accepted regions are:

  • US
  • EU

The default Opsgenie region is US.

notifications
.datadogApiKey
string Datadog API Key. Found in the Datadog dashboard. Populated for the DATADOG notifications type.
notifications
.datadogRegion
string

Region that indicates which API URL to use. Accepted regions are:

  • US
  • EU

The default Datadog region is US.

Example Request

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
     --request POST "https://cloud.mongodb.com/api/atlas/v1.0/groups/5deffe1ff10fab613544e4b2/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
         },
         "typeName" : "REPLICA_SET"
       }'

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
{
  "created":"2020-02-26T01:14:40Z",
  "enabled":true,
  "eventTypeName":"REPLICATION_OPLOG_WINDOW_RUNNING_OUT",
  "groupId":"{GROUP-ID}",
  "id":"{ALERT-CONFIG-ID}",
  "links":[{
    "href":"https://cloud.mongodb.com/api/public/v1.0/groups/{GROUP-ID}/alertConfigs/{ALERT-CONFIG-ID}",
    "rel":"self"
  },
  {
    "href":"https://cloud.mongodb.com/api/public/v1.0/groups/{GROUP-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
  },
  "typeName":"REPLICA_SET",
  "updated":"2020-02-26T01:14:40Z"
}