Managing Alarms

This topic describes how to create, update, suppress, and delete alarms , as well as how to retrieve alarm history. See also Best Practices for Your Alarms.

Prerequisites

  • IAM policies: Managing alarms is part of monitoring. To monitor resources, you must be given the required type of access in a policy  written by an administrator, whether you're using the Console or the REST API with an SDK, CLI, or other tool. The policy must give you access to the monitoring services as well as the resources being monitored. If you try to perform an action and get a message that you don’t have permission or are unauthorized, confirm with your administrator the type of access you've been granted and which compartment  you should work in. For more information about user authorizations for monitoring, see IAM Policies (Monitoring).For a common alarms policy, see Let users view alarms.
  • Metrics exist in Monitoring: The resources that you want to monitor must emit metrics to the Monitoring service.
  • Compute instances: To emit metrics, the Compute Instance Monitoring plugin must be enabled on the instance, and plugins must be running. The instance must also have either a service gateway or a public IP address to send metrics to the Monitoring service. For more information, see Enabling Monitoring for Compute Instances.

Tagging Resources

You can apply tags to your resources to help you organize them according to your business needs. You can apply tags at the time you create a resource, or you can update the resource later with the wanted tags. For general information about applying tags, see Resource Tags.

Using the Console

To see all firing alarms

Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Status.

You can suppress alarms during a given time range. You can also disable and delete alarms.

To view states of metric streams

Learn how to view the current state of metric streams in an alarm.

Note

Monitoring stops tracking metric streams associated with RESET messages. For more information about message types, see Message Types.
Ensure that the alarm is configured for split notifications ( Split messages per metric stream). Viewing states of metric streams is only available for alarms with this configuration.
  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. Click the alarm that you want.
  3. On the alarm detail page, to the right of Metric streams, click View status.

    The Metric streams status dialog box is displayed, listing the current state (Firing or OK) for each metric stream that transitioned to another alarm state. Each metric stream corresponds to a set of dimension key-value pairs.

    Messages are sent at the time the alarm transitions, either collectively for all metric streams or individually per metric stream. For more information about messages sent, see Message Types. For a scenario using individual messages per metric stream, see Scenario: Split Messages by Metric Stream.

To create an alarm

This section includes steps to create example alarms as well as any kind of alarm.

To create an example threshold alarm

This procedure walks through creation of an example threshold alarm to detect compute instances operating at non-optimal thresholds. A threshold alarm is an alarm that checks for metric values outside a given range or value. The procedure uses options as displayed in Basic Mode.

  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. Click Create Alarm.

  3. On the Create Alarm page, under Define alarm, fill in or update the alarm settings:

    • Alarm name: Non-Optimal Alarm
    • Alarm severity: Warning
    • Alarm body: Non-optimal utilization detected. An application or process may be consuming more CPU than usual.
    • Metric description
      • Compartment: (select your compartment  )
      • Metric namespaceoci_computeagent
      • Metric nameCpuUtilization
      • Interval1m

        Note

        Valid alarm intervals depend on the frequency at which the metric is emitted. For example, a metric emitted every five minutes requires a 5-minute alarm interval or higher. Most metrics are emitted every minute, which means most metrics support any alarm interval. To determine valid alarm intervals for a given metric, check the relevant service's metric reference.
      • StatisticCount
    • Trigger rule:

      • Operatorbetween
      • Value: 60
      • Value: 80
      • Trigger delay minutes: 10
  4. Set up an email notification under Set alarm notifications, Destination:
    • Destination serviceNotifications
    • Compartment: (select your compartment  )
    • Topic: Click Create new topic

      • Topic name: Operations Team
      • Topic description: Resource Monitoring Channel
      • Subscription protocol: Email
      • Subscription email: (type an email address for the operations team here)
      • Message format: Send formatted messages
  5. Repeat notifications every day: 

    • Repeat notification?: (select this option)
    • Notification frequency: 24 hours
  6. Click Save alarm.

To create an example absence alarm

This procedure walks through creation of an example absence alarm to detect resources that may be down or unreachable. An absence alarm is an alarm that checks for absent metrics (using the absent operator). The procedure uses options as displayed in Basic Mode.

  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. Click Create Alarm.

  3. On the Create Alarm page, under Define alarm, fill in or update the alarm settings:

    • Alarm name: Up/Down Resource Alarm
    • Alarm severity: Critical
    • Alarm body: Resource may be down. Please investigate. Move workloads to another available resource.
    • Metric description
      • Compartment: (select your compartment  )
      • Metric namespaceoci_computeagent
      • Metric nameCpuUtilization
      • Interval1m

        Note

        Valid alarm intervals depend on the frequency at which the metric is emitted. For example, a metric emitted every five minutes requires a 5-minute alarm interval or higher. Most metrics are emitted every minute, which means most metrics support any alarm interval. To determine valid alarm intervals for a given metric, check the relevant service's metric reference.
      • StatisticCount
    • Trigger rule:

      • Operatorabsent
      • Trigger delay minutes: 5
  4. Set up an email notification under Set alarm notifications, Destination:
    • Destination serviceNotifications
    • Compartment: (select your compartment  )
    • Topic: Click Create new topic

      • Topic name: Operations Team
      • Topic description: Resource Up/Down Channel
      • Subscription protocol: Email
      • Subscription email: (type an email address for the operations team here)
      • Message format: Send formatted messages
  5. Repeat notifications every minute: 

    • Repeat notification?: (select this option)
    • Notification frequency: 1 minute
  6. Click Save alarm.

To create an alarm (any kind)
  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. Click Create Alarm.

    Note

    You can also create an alarm from a predefined query on the Service Metrics page. Expand Options and click Create an Alarm on this Query. For more information about service metrics, see Viewing Default Metric Charts.
  3. On the Create Alarm page, under Define alarm, fill in or update the alarm settings:

    Note

    To toggle between Basic Mode and Advanced Mode, click Switch to Advanced Mode or Switch to Basic Mode (to the right of Define Alarm).

    Basic Mode (default)

    By default, this page uses Basic Mode, which separates the metric from its dimensions and its trigger rule.

    • Alarm name

      User-friendly name for the new alarm. This name is sent as the title for notifications related to this alarm. Avoid entering confidential information.

      Rendering of the title by protocol
      Protocol Rendering of the title
      Email Subject line of the email message.
      HTTPS (Custom URL) Not rendered.
      PagerDuty Title field of the published message.
      Slack Not rendered.
      SMS Not rendered.
    • Alarm severity: The perceived type of response required when the alarm is in the firing state.
    • Alarm body: The human-readable content of the notification delivered. Oracle recommends providing guidance to operators for resolving the alarm condition. Consider adding links to standard runbook practices. Example: "High CPU usage alert. Follow runbook instructions for resolution."
    • Tags (optional): If you have permissions to create a resource, then you also have permissions to apply free-form tags to that resource. To apply a defined tag, you must have permissions to use the tag namespace. For more information about tagging, see Resource Tags. If you are not sure whether to apply tags, skip this option (you can apply tags later) or ask your administrator.
    • Metric description: The metric to evaluate for the alarm condition.
      • Compartment: The compartment  containing the resources that emit the metrics evaluated by the alarm. The selected compartment is also the storage location of the alarm. By default, the first accessible compartment is selected.
      • Metric namespace: The service or application emitting metrics for the resources that you want to monitor.
      • Resource group (optional): The group that the metric belongs to. A resource group is a custom string provided with a custom metric. Not applicable to service metrics.
      • Metric name: The name of the metric. Only one metric can be specified. Example: CpuUtilization
      • Interval: The aggregation window, or the frequency at which data points are aggregated.

        Interval values
        Note

        Valid alarm intervals depend on the frequency at which the metric is emitted. For example, a metric emitted every five minutes requires a 5-minute alarm interval or higher. Most metrics are emitted every minute, which means most metrics support any alarm interval. To determine valid alarm intervals for a given metric, check the relevant service's metric reference.
        • 1m - 1 minute
        • 5m - 5 minutes
        • 1h - 1 hour
        • 1d - 1 day
        Note

        For alarm queries, the specified interval  has no effect on the resolution  of the request. The only valid value of the resolution for an alarm query request is 1m. For more information about the resolution parameter as used in alarm queries, see Alarm.

      • Statistic: The aggregation function.

        Statistic values
        • Count - The number of observations received in the specified time period.
        • Max - The highest value observed during the specified time period.
        • Mean - The value of Sum divided by Count during the specified time period.
        • Min - The lowest value observed during the specified time period.
        • P50 - The value of the 50th percentile.
        • P90 - The value of the 90th percentile.
        • P95 - The value of the 95th percentile.
        • P99 - The value of the 99th percentile.
        • Rate - The per-interval average rate of change.
        • Sum - All values added together.
    • Metric dimensions: Optional filters to narrow the metric data evaluated.

      Dimension fields
      Note

      Additional dimension fields appear for some metric namespaces. See the service-specific documentation for details. For example, a deployment type field appears for the metric namespace oci_autonomous_database; for more information about this field, see To view default metric charts for multiple Autonomous Databases.
      • Dimension name: A qualifier specified in the metric definition. For example, the dimension resourceId is specified in the metric definition for CpuUtilization.

        Note

        Long lists of dimensions are trimmed.

        • To view dimensions by name, type one or more characters in the box. A refreshed (trimmed) list shows matching dimension names.
        • To retrieve all dimensions for a given metric, use the following API operation: ListMetrics
      • Dimension value: The value you want to use for the specified dimension. For example, the resource identifier for your instance of interest.
      • Additional dimension: Adds another name-value pair for a dimension.
    • Aggregate metric streams: Returns the combined value of all metric streams for the selected statistic.

      The Aggregate metric streams option is equivalent to the grouping() query component.

    • Trigger rule: The condition that must be satisfied for the alarm to be in the firing state. The condition can specify a threshold, such as 90% for CPU Utilization, or an absence.

      • Operator: The operator used in the condition threshold.

        Operator values
        • greater than
        • greater than or equal to
        • equal to
        • less than
        • less than or equal to
        • between (inclusive of specified values)
        • outside (inclusive of specified values)
        • absent
      • Value: The value to use for the condition threshold.
      • Trigger delay minutes: The number of minutes that the condition must be maintained before the alarm is in firing state.
    Advanced Mode

    Click Switch to Advanced Mode to view the alarm query as a Monitoring Query Language (MQL) expression. Edit your query using MQL syntax to aggregate results by group or for additional parameter values. See Monitoring Query Language (MQL) Reference.

    • Alarm name

      User-friendly name for the new alarm. This name is sent as the title for notifications related to this alarm. Avoid entering confidential information.

      Rendering of the title by protocol
      Protocol Rendering of the title
      Email Subject line of the email message.
      HTTPS (Custom URL) Not rendered.
      PagerDuty Title field of the published message.
      Slack Not rendered.
      SMS Not rendered.
    • Alarm severity: The perceived type of response required when the alarm is in the firing state.
    • Alarm body: The human-readable content of the notification delivered. Oracle recommends providing guidance to operators for resolving the alarm condition. Consider adding links to standard runbook practices. Example: "High CPU usage alert. Follow runbook instructions for resolution."
    • Tags (optional): If you have permissions to create a resource, then you also have permissions to apply free-form tags to that resource. To apply a defined tag, you must have permissions to use the tag namespace. For more information about tagging, see Resource Tags. If you are not sure whether to apply tags, skip this option (you can apply tags later) or ask your administrator.
    • Metric description, dimensions, and trigger rule: The metric to evaluate for the alarm condition, including dimensions and the trigger rule.

      • Compartment: The compartment  containing the resources that emit the metrics evaluated by the alarm. The selected compartment is also the storage location of the alarm. By default, the first accessible compartment is selected.
      • Metric namespace: The service or application emitting metrics for the resources that you want to monitor.
      • Resource group (optional): The group that the metric belongs to. A resource group is a custom string provided with a custom metric. Not applicable to service metrics.
      • Query code editor box: The alarm query as a Monitoring Query Language (MQL) expression.

        Note

        Valid alarm intervals depend on the frequency at which the metric is emitted. For example, a metric emitted every five minutes requires a 5-minute alarm interval or higher. Most metrics are emitted every minute, which means most metrics support any alarm interval. To determine valid alarm intervals for a given metric, check the relevant service's metric reference.

        Example alarm query: 

        CpuUtilization[1m]{availabilityDomain=AD1}.groupBy(poolId).percentile(0.9) > 85

        For query syntax and examples, see Working with Metric Queries.

      • Trigger delay minutes: The number of minutes that the condition must be maintained before the alarm is in firing state.

    The chart below the Define alarm section dynamically displays the last six hours of emitted metrics according to currently selected fields for the query. Very small or large values are indicated by International System of Units (SI units), such as M for mega (10 to the sixth power).

  4. To change the view of the query results, click the appropriate option above the results, on the right:

    • Show Data Table: Lists data points, indicating time stamp and bytes for each.
    • Show Graph (default): Plots data points on a graph.
  5. Set up alarm notifications: Under Set alarm notifications, fill in the fields.

    • Destination
      • Destination service: The provider of the destination to use for alarm notifications.
        Note

        If you expect more than 60 messages per minute, specify Streaming as the alarm destination. For more information, see Alarm Message Limits.
      • Compartment: The compartment  storing the resource (such as a topic or stream) to be used for notifications. Can be a different compartment from the alarm and metric. By default, the first accessible compartment is selected.
      • Topic (Notifications destination): The topic to use for notifications. Each topic supports one or more subscription protocols, such as PagerDuty.
      • Stream (Streaming destination): The stream to use for alarm notifications.
      • Create new topic (Notifications destination): Sets up a topic and subscription protocol in the selected compartment, using the specified destination service.

        • Topic name: User-friendly name for the new topic. Example: "Operations Team" for a topic used to notify operations staff of firing alarms. Avoid entering confidential information.
        • Topic description: Description of the new topic.
        • Subscription protocol: Medium of communication to use for the new topic. Configure your subscription for the protocol you want: 

          Email subscription

          Sends an email message when you publish a message  to the subscription's parent topic .

          Note

          Follow best practices for integrating with Email Delivery. See Maintain a Positive Email Sender Reputation and Set Up Custom Domains for Email.
          Message contents and appearance vary by message type. See alarm messages, event messages, and service connector messages.

          Some message types allow friendly formatting.

          • Subscription protocol: Select Email.
          • Subscription email: Type an email address.
          Function subscription
          Runs the specified function when you publish a message  to the subscription's parent topic . For example, runs a function to resize VMs when an associated alarm is triggered.
          Note

          You must have FN_INVOCATION permission against the function to be able to add the function as a subscription to a topic.

          The Notifications service has no information about a function after it's invoked. For more details, see the troubleshooting information at Function Not Invoked or Run.

          Confirmation is not required for function subscriptions.

          • Subscription protocol: Select Function.
          • Function Compartment: Select the compartment containing your function.
          • Function Application: Select the application containing your function.
          • Function: Select your function.
          HTTPS (Custom URL) subscription
          Note

          The client service must be able to support the HTTP/1.1 401 Unauthorized header response. For more information, see HTTPS (Custom URL) Subscription.

          Sends specified information when you publish a message  to the subscription's parent topic .

          Endpoint format (URL using HTTPS protocol): 

          https://<anyvalidURL>

          Authentication: Only Basic Access Authentication is supported. For more information, see RFC-2617: HTTP Authentication: Basic and Digest Access Authentication. You can specify a username and password in the URL, as in https://user:password@domain.com or https://user@domain.com. In the URL, encode (escape) the characters noted at RFC-3986: Uniform Resource Identifier (URI): Generic Syntax.

          Certificates: Only valid certificate authority (CA) certificates are trusted. No self-signed certificates are allowed.

          Encryption: As with any subscription protocol, data in the endpoint (including username and password if supplied in the URL) is encrypted in transit over the SSL connection established when using HTTPS, and at rest in the service database.

          POST calls: The endpoint that you provide must accept POST calls. The Notifications service uses POST calls to send messages to HTTPS (custom URL) endpoints.

          Not supported: Query parameters are not allowed in URLs. Custom HTTP header parameters are not supported. When sending a message to the URL endpoint, the Notifications service adds standard metadata to the HTTP request in the header.

          • Subscription protocol: Select HTTPS (Custom URL).
          • Subscription URL: Type (or copy and paste) the URL you want to use as the endpoint.
          PagerDuty subscription
          Creates a PagerDuty incident by default when you publish a message  to the subscription's parent topic .

          Endpoint format (URL): 

          https://events.pagerduty.com/integration/<integrationkey>/enqueue
          Query parameters are not allowed in URLs.

          To create an endpoint for a PagerDuty subscription (set up and retrieve an integration key), see To create a PagerDuty endpoint

          • Subscription protocol: Select PagerDuty.
          • Subscription URL: Type (or copy and paste) the integration key portion of the URL for your PagerDuty subscription. (The other portions of the URL are hard-coded.)
          Slack subscription

          Sends a message to the specified Slack channel by default when you publish a message  to the subscription's parent topic .
          Message contents and appearance vary by message type. See alarm messages, event messages, and service connector messages.
          Sends a message to the specified Slack channel by default when you publish a message  to the subscription's parent topic .

          Endpoint format (URL): 

          https://hooks.slack.com/services/<webhook-token>

          The <webhook-token> portion of the URL contains two slashes (/).

          Query parameters are not allowed in URLs.

          To create an endpoint for a Slack subscription (using a webhook for your Slack channel), see the Slack documentation.

          • Subscription protocol: Select Slack.
          • Subscription URL: Type (or copy and paste) the Slack endpoint, including your webhook token.
          SMS subscription
          Sends a text message using Short Message Service (SMS) to the specified phone number when you publish a message  to the subscription's parent topic . Supported endpoint formats: E.164 format.
          Note

          International SMS capabilities are required if SMS messages come from a phone number in another country. We continuously add support for more countries so that more users can receive SMS messages from local phone numbers.

          SMS subscriptions are enabled only for messages sent by the following Oracle Cloud Infrastructure services: Monitoring, Service Connector Hub. SMS messages sent by unsupported services are dropped. Troubleshoot dropped messages.

          The Notifications service delivers SMS messages from a preconfigured pool of numbers. You might receive SMS messages from multiple numbers.

          Message contents and appearance vary by message type. See alarm messages, event messages, and service connector messages.
          Available Countries and Regions

          You can use Notifications to send SMS messages to the following countries and regions:

          Country or region ISO code
          Australia AU
          Brazil BR
          Canada CA
          Chile CL
          China CN
          Costa Rica CR
          Croatia HR
          Czechia CZ
          France FR
          Germany DE
          Hungary HU
          India IN
          Ireland IE
          Israel IL
          Japan JP
          Lithuania LT
          Mexico MX
          Netherlands NL
          New Zealand NZ
          Norway NO
          Philippines PH
          Poland PL
          Portugal PT
          Romania RO
          Saudi Arabia SA
          Singapore SG
          South Africa ZA
          South Korea KR
          Spain ES
          Sweden SE
          Switzerland CH
          Ukraine UA
          United Arab Emirates AE
          United Kingdom GB
          United States US
          • Subscription protocol: Select SMS.
          • Country: Select the country for the phone number.
          • Phone Number: Enter the phone number, using E.164 format. Example: +14255550100
    • Message grouping: Specify how to group alarm messages with regard to metric streams.
      • Group messages across metric streams: Collectively track metric status across all metric streams. Send a message when metric status across all metric streams changes.

      • Split messages per metric stream: Individually track metric status by metric stream. Send a message when metric status for each metric stream changes. For an example, see Scenario: Split Messages by Metric Stream.

    • Message format: Determines the appearance of the messages you receive from this alarm (Notifications destination):
      • Send formatted messages: Simplified, user-friendly layout.
        Note

        To view supported subscription protocols and message types for formatted messages (options other than Raw), see Friendly Formatting.
      • Send Pretty JSON messages (raw text with line breaks): JSON with new lines and indents.
      • Send raw messages: Raw JSON blob.
    • Repeat notification?: While the alarm is in the firing state, resends notifications at the specified interval.
      • Notification frequency: The period of time to wait before resending the notification.
    • Suppress notifications: Sets up a suppression time window during which to suspend evaluations and notifications. Useful for avoiding alarm notifications during system maintenance periods.

      • Suppression description
      • Start time
      • End time
  6. If you want to disable the new alarm, clear Enable this alarm?.
  7. Click Save alarm.

    The new alarm is listed on the Alarm Definitions page.

To edit an alarm query using MQL

You can view and update alarm queries using Monitoring Query Language (MQL). For instructions, click the page you want to start from.

From a query on the Metrics Explorer page
  1. Access the Metrics Explorer page: Open the navigation menu and click Observability & Management. Under Monitoring, click Metrics Explorer.

  2. Select a Metric namespace and Metric name.

    For example, select oci_service_connector_hub and ErrorsAtSource.

  3. Optionally change other settings used in the query: Interval, Statistic, Resource group, Metric dimensions, or Aggregate metric streams.

  4. Click Create Alarm.

  5. On the upper right of the Create Alarm page, click Switch to Advanced Mode.

    The query appears in MQL under Query code editor. You can update the query to see real-time updates in the graph (or data table).

    For example, add a groupBy() function to aggregate query results by group (dimension or resource group).

From the Create Alarm page (with no query)
  1. Access the Create Alarm page:

    1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.

    2. Click Create Alarm.
  2. Select a Metric namespace and Metric name.

    For example, select oci_service_connector_hub and ErrorsAtSource.

  3. Optionally change other settings used in the query: Interval, Statistic, Resource group, Metric dimensions, or Aggregate metric streams.

  4. Click Create Alarm.

  5. On the upper right of the Create Alarm page, click Switch to Advanced Mode.

    The query appears in MQL under Query code editor. You can update the query to see real-time updates in the graph (or data table).

    For example, add a groupBy() function to aggregate query results by group (dimension or resource group).

From the Edit alarm page
  1. Access the Edit alarm page:

    1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.

    2. Click the name of the alarm you want to edit.
    3. On the alarm detail page, click Actions and then select Edit alarm.
  2. Optionally change settings used in the query: Metric namespace, Metric name, Interval, Statistic, Resource group, Metric dimensions, or Aggregate metric streams.

  3. On the upper right of the Create Alarm page, click Switch to Advanced Mode.

    The query appears in MQL under Query code editor. You can update the query to see real-time updates in the graph (or data table).

    For example, add a groupBy() function to aggregate query results by group (dimension or resource group).

To disable or enable an alarm
  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. Click the alarm that you want to disable or enable.
  3. On the alarm detail page, select or clear Alarm is enabled.

    Note

    You can also disable and enable alarms when creating or editing an alarm.
To move an alarm to a different compartment

Associated metrics remain in their current compartments. For more information, see Moving Alarms to a Different Compartment.

Note

To move resources between compartments, resource users must have sufficient access permissions on the compartment that the resource is being moved to, as well as the current compartment. For more information about permissions for Monitoring resources, see Details for Monitoring.
  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. In the List Scope section, select a compartment.
  3. Click the alarm that you want to move.
  4. On the alarm detail page, click Move Resource.
  5. Choose the destination compartment from the list.
  6. Click Move Resource.
To update an alarm
  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. Click the alarm that you want to update.

  3. Go to Actions on the right, and then click Edit Alarm.

  4. On the Edit alarm page, under Define alarm, update alarm settings as needed:

    Basic Mode (default)

    By default, this page uses Basic Mode, which separates the metric from its dimensions and its trigger rule.

    • Alarm name

      User-friendly name for the new alarm. This name is sent as the title for notifications related to this alarm. Avoid entering confidential information.

      Rendering of the title by protocol
      Protocol Rendering of the title
      Email Subject line of the email message.
      HTTPS (Custom URL) Not rendered.
      PagerDuty Title field of the published message.
      Slack Not rendered.
      SMS Not rendered.
    • Alarm severity: The perceived type of response required when the alarm is in the firing state.
    • Alarm body: The human-readable content of the notification delivered. Oracle recommends providing guidance to operators for resolving the alarm condition. Consider adding links to standard runbook practices. Example: "High CPU usage alert. Follow runbook instructions for resolution."
    • Tags (optional): If you have permissions to create a resource, then you also have permissions to apply free-form tags to that resource. To apply a defined tag, you must have permissions to use the tag namespace. For more information about tagging, see Resource Tags. If you are not sure whether to apply tags, skip this option (you can apply tags later) or ask your administrator.
    • Metric description: The metric to evaluate for the alarm condition.
      • Compartment: The compartment  containing the resources that emit the metrics evaluated by the alarm. The selected compartment is also the storage location of the alarm. By default, the first accessible compartment is selected.
      • Metric namespace: The service or application emitting metrics for the resources that you want to monitor.
      • Resource group (optional): The group that the metric belongs to. A resource group is a custom string provided with a custom metric. Not applicable to service metrics.
      • Metric name: The name of the metric. Only one metric can be specified. Example: CpuUtilization
      • Interval: The aggregation window, or the frequency at which data points are aggregated.

        Interval values
        Note

        Valid alarm intervals depend on the frequency at which the metric is emitted. For example, a metric emitted every five minutes requires a 5-minute alarm interval or higher. Most metrics are emitted every minute, which means most metrics support any alarm interval. To determine valid alarm intervals for a given metric, check the relevant service's metric reference.
        • 1m - 1 minute
        • 5m - 5 minutes
        • 1h - 1 hour
        • 1d - 1 day
        Note

        For alarm queries, the specified interval  has no effect on the resolution  of the request. The only valid value of the resolution for an alarm query request is 1m. For more information about the resolution parameter as used in alarm queries, see Alarm.

      • Statistic: The aggregation function.

        Statistic values
        • Count - The number of observations received in the specified time period.
        • Max - The highest value observed during the specified time period.
        • Mean - The value of Sum divided by Count during the specified time period.
        • Min - The lowest value observed during the specified time period.
        • P50 - The value of the 50th percentile.
        • P90 - The value of the 90th percentile.
        • P95 - The value of the 95th percentile.
        • P99 - The value of the 99th percentile.
        • Rate - The per-interval average rate of change.
        • Sum - All values added together.
    • Metric dimensions: Optional filters to narrow the metric data evaluated.

      Dimension fields
      Note

      Additional dimension fields appear for some metric namespaces. See the service-specific documentation for details. For example, a deployment type field appears for the metric namespace oci_autonomous_database; for more information about this field, see To view default metric charts for multiple Autonomous Databases.
      • Dimension name: A qualifier specified in the metric definition. For example, the dimension resourceId is specified in the metric definition for CpuUtilization.

        Note

        Long lists of dimensions are trimmed.

        • To view dimensions by name, type one or more characters in the box. A refreshed (trimmed) list shows matching dimension names.
        • To retrieve all dimensions for a given metric, use the following API operation: ListMetrics
      • Dimension value: The value you want to use for the specified dimension. For example, the resource identifier for your instance of interest.
      • Additional dimension: Adds another name-value pair for a dimension.
    • Aggregate metric streams: Returns the combined value of all metric streams for the selected statistic.

      The Aggregate metric streams option is equivalent to the grouping() query component.

    • Trigger rule: The condition that must be satisfied for the alarm to be in the firing state. The condition can specify a threshold, such as 90% for CPU Utilization, or an absence.

      • Operator: The operator used in the condition threshold.

        Operator values
        • greater than
        • greater than or equal to
        • equal to
        • less than
        • less than or equal to
        • between (inclusive of specified values)
        • outside (inclusive of specified values)
        • absent
      • Value: The value to use for the condition threshold.
      • Trigger delay minutes: The number of minutes that the condition must be maintained before the alarm is in firing state.
    Advanced Mode

    Click Switch to Advanced Mode to view the alarm query as a Monitoring Query Language (MQL) expression. Edit your query using MQL syntax to aggregate results by group or for additional parameter values. See Monitoring Query Language (MQL) Reference.

    • Alarm name

      User-friendly name for the new alarm. This name is sent as the title for notifications related to this alarm. Avoid entering confidential information.

      Rendering of the title by protocol
      Protocol Rendering of the title
      Email Subject line of the email message.
      HTTPS (Custom URL) Not rendered.
      PagerDuty Title field of the published message.
      Slack Not rendered.
      SMS Not rendered.
    • Alarm severity: The perceived type of response required when the alarm is in the firing state.
    • Alarm body: The human-readable content of the notification delivered. Oracle recommends providing guidance to operators for resolving the alarm condition. Consider adding links to standard runbook practices. Example: "High CPU usage alert. Follow runbook instructions for resolution."
    • Tags (optional): If you have permissions to create a resource, then you also have permissions to apply free-form tags to that resource. To apply a defined tag, you must have permissions to use the tag namespace. For more information about tagging, see Resource Tags. If you are not sure whether to apply tags, skip this option (you can apply tags later) or ask your administrator.
    • Metric description, dimensions, and trigger rule: The metric to evaluate for the alarm condition, including dimensions and the trigger rule.

      • Compartment: The compartment  containing the resources that emit the metrics evaluated by the alarm. The selected compartment is also the storage location of the alarm. By default, the first accessible compartment is selected.
      • Metric namespace: The service or application emitting metrics for the resources that you want to monitor.
      • Resource group (optional): The group that the metric belongs to. A resource group is a custom string provided with a custom metric. Not applicable to service metrics.
      • Query code editor box: The alarm query as a Monitoring Query Language (MQL) expression.

        Note

        Valid alarm intervals depend on the frequency at which the metric is emitted. For example, a metric emitted every five minutes requires a 5-minute alarm interval or higher. Most metrics are emitted every minute, which means most metrics support any alarm interval. To determine valid alarm intervals for a given metric, check the relevant service's metric reference.

        Example alarm query: 

        CpuUtilization[1m]{availabilityDomain=AD1}.groupBy(poolId).percentile(0.9) > 85

        For query syntax and examples, see Working with Metric Queries.

      • Trigger delay minutes: The number of minutes that the condition must be maintained before the alarm is in firing state.

    The chart below the Define alarm section dynamically displays the last six hours of emitted metrics according to currently selected fields for the query. Very small or large values are indicated by International System of Units (SI units), such as M for mega (10 to the sixth power).

  5. Under Notifications, update settings as needed: 

    • Destination
      • Destination service: The provider of the destination to use for alarm notifications.
        Note

        If you expect more than 60 messages per minute, specify Streaming as the alarm destination. For more information, see Alarm Message Limits.
      • Compartment: The compartment  storing the resource (such as a topic or stream) to be used for notifications. Can be a different compartment from the alarm and metric. By default, the first accessible compartment is selected.
      • Topic (Notifications destination): The topic to use for notifications. Each topic supports one or more subscription protocols, such as PagerDuty.
      • Stream (Streaming destination): The stream to use for alarm notifications.
      • Create new topic (Notifications destination): Sets up a topic and subscription protocol in the selected compartment, using the specified destination service.

        • Topic name: User-friendly name for the new topic. Example: "Operations Team" for a topic used to notify operations staff of firing alarms. Avoid entering confidential information.
        • Topic description: Description of the new topic.
        • Subscription protocol: Medium of communication to use for the new topic. Configure your subscription for the protocol you want: 

          Email subscription

          Sends an email message when you publish a message  to the subscription's parent topic .

          Note

          Follow best practices for integrating with Email Delivery. See Maintain a Positive Email Sender Reputation and Set Up Custom Domains for Email.
          Message contents and appearance vary by message type. See alarm messages, event messages, and service connector messages.

          Some message types allow friendly formatting.

          • Subscription protocol: Select Email.
          • Subscription email: Type an email address.
          Function subscription
          Runs the specified function when you publish a message  to the subscription's parent topic . For example, runs a function to resize VMs when an associated alarm is triggered.
          Note

          You must have FN_INVOCATION permission against the function to be able to add the function as a subscription to a topic.

          The Notifications service has no information about a function after it's invoked. For more details, see the troubleshooting information at Function Not Invoked or Run.

          Confirmation is not required for function subscriptions.

          • Subscription protocol: Select Function.
          • Function Compartment: Select the compartment containing your function.
          • Function Application: Select the application containing your function.
          • Function: Select your function.
          HTTPS (Custom URL) subscription
          Note

          The client service must be able to support the HTTP/1.1 401 Unauthorized header response. For more information, see HTTPS (Custom URL) Subscription.

          Sends specified information when you publish a message  to the subscription's parent topic .

          Endpoint format (URL using HTTPS protocol): 

          https://<anyvalidURL>

          Authentication: Only Basic Access Authentication is supported. For more information, see RFC-2617: HTTP Authentication: Basic and Digest Access Authentication. You can specify a username and password in the URL, as in https://user:password@domain.com or https://user@domain.com. In the URL, encode (escape) the characters noted at RFC-3986: Uniform Resource Identifier (URI): Generic Syntax.

          Certificates: Only valid certificate authority (CA) certificates are trusted. No self-signed certificates are allowed.

          Encryption: As with any subscription protocol, data in the endpoint (including username and password if supplied in the URL) is encrypted in transit over the SSL connection established when using HTTPS, and at rest in the service database.

          POST calls: The endpoint that you provide must accept POST calls. The Notifications service uses POST calls to send messages to HTTPS (custom URL) endpoints.

          Not supported: Query parameters are not allowed in URLs. Custom HTTP header parameters are not supported. When sending a message to the URL endpoint, the Notifications service adds standard metadata to the HTTP request in the header.

          • Subscription protocol: Select HTTPS (Custom URL).
          • Subscription URL: Type (or copy and paste) the URL you want to use as the endpoint.
          PagerDuty subscription
          Creates a PagerDuty incident by default when you publish a message  to the subscription's parent topic .

          Endpoint format (URL): 

          https://events.pagerduty.com/integration/<integrationkey>/enqueue
          Query parameters are not allowed in URLs.

          To create an endpoint for a PagerDuty subscription (set up and retrieve an integration key), see To create a PagerDuty endpoint

          • Subscription protocol: Select PagerDuty.
          • Subscription URL: Type (or copy and paste) the integration key portion of the URL for your PagerDuty subscription. (The other portions of the URL are hard-coded.)
          Slack subscription

          Sends a message to the specified Slack channel by default when you publish a message  to the subscription's parent topic .
          Message contents and appearance vary by message type. See alarm messages, event messages, and service connector messages.
          Sends a message to the specified Slack channel by default when you publish a message  to the subscription's parent topic .

          Endpoint format (URL): 

          https://hooks.slack.com/services/<webhook-token>

          The <webhook-token> portion of the URL contains two slashes (/).

          Query parameters are not allowed in URLs.

          To create an endpoint for a Slack subscription (using a webhook for your Slack channel), see the Slack documentation.

          • Subscription protocol: Select Slack.
          • Subscription URL: Type (or copy and paste) the Slack endpoint, including your webhook token.
          SMS subscription
          Sends a text message using Short Message Service (SMS) to the specified phone number when you publish a message  to the subscription's parent topic . Supported endpoint formats: E.164 format.
          Note

          International SMS capabilities are required if SMS messages come from a phone number in another country. We continuously add support for more countries so that more users can receive SMS messages from local phone numbers.

          SMS subscriptions are enabled only for messages sent by the following Oracle Cloud Infrastructure services: Monitoring, Service Connector Hub. SMS messages sent by unsupported services are dropped. Troubleshoot dropped messages.

          The Notifications service delivers SMS messages from a preconfigured pool of numbers. You might receive SMS messages from multiple numbers.

          Message contents and appearance vary by message type. See alarm messages, event messages, and service connector messages.
          Available Countries and Regions

          You can use Notifications to send SMS messages to the following countries and regions:

          Country or region ISO code
          Australia AU
          Brazil BR
          Canada CA
          Chile CL
          China CN
          Costa Rica CR
          Croatia HR
          Czechia CZ
          France FR
          Germany DE
          Hungary HU
          India IN
          Ireland IE
          Israel IL
          Japan JP
          Lithuania LT
          Mexico MX
          Netherlands NL
          New Zealand NZ
          Norway NO
          Philippines PH
          Poland PL
          Portugal PT
          Romania RO
          Saudi Arabia SA
          Singapore SG
          South Africa ZA
          South Korea KR
          Spain ES
          Sweden SE
          Switzerland CH
          Ukraine UA
          United Arab Emirates AE
          United Kingdom GB
          United States US
          • Subscription protocol: Select SMS.
          • Country: Select the country for the phone number.
          • Phone Number: Enter the phone number, using E.164 format. Example: +14255550100
    • Message grouping: Specify how to group alarm messages with regard to metric streams.
      • Group messages across metric streams: Collectively track metric status across all metric streams. Send a message when metric status across all metric streams changes.

      • Split messages per metric stream: Individually track metric status by metric stream. Send a message when metric status for each metric stream changes. For an example, see Scenario: Split Messages by Metric Stream.

    • Message format: Determines the appearance of the messages you receive from this alarm (Notifications destination):
      • Send formatted messages: Simplified, user-friendly layout.
        Note

        To view supported subscription protocols and message types for formatted messages (options other than Raw), see Friendly Formatting.
      • Send Pretty JSON messages (raw text with line breaks): JSON with new lines and indents.
      • Send raw messages: Raw JSON blob.
    • Repeat notification?: While the alarm is in the firing state, resends notifications at the specified interval.
      • Notification frequency: The period of time to wait before resending the notification.
    • Suppress notifications: Sets up a suppression time window during which to suspend evaluations and notifications. Useful for avoiding alarm notifications during system maintenance periods.

      • Suppression description
      • Start time
      • End time
  6. Select or clear Enable this alarm?.

  7. Click Save alarm.

    The updated alarm settings are listed on the alarm detail page.

To update your alarm to use friendly message formats
  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. Click the alarm that you want to update.
  3. Go to Actions on the right, and then click Edit Alarm.
  4. On the Edit alarm page, for each destination under Notifications, select the Message Format you want.

    • Send formatted messages: Simplified, user-friendly layout.
      Note

      To view supported subscription protocols and message types for formatted messages (options other than Raw), see Friendly Formatting.
    • Send Pretty JSON messages (raw text with line breaks): JSON with new lines and indents.
    • Send raw messages: Raw JSON blob.
  5. Click Save alarm.

    The updated alarm settings are listed on the alarm detail page.

To update an alarm after moving a resource

This section shows how to update the metric compartment of an alarm after you move a resource that is emitting metrics monitored by the alarm. For example, if you move a block volume to another compartment, then the alarm must be updated if you want to continue monitoring metrics from the moved block volume.

  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. Click the alarm that you want to update.
  3. Go to Actions on the right, and then click Edit alarm.
  4. Update the metric compartment: On the Edit alarm page, under Metric description (or Metric description, dimensions, and trigger rule for Advanced Mode), change the Compartment to the compartment where the resource has been moved.

    The chart below the Define alarm section dynamically updates according to the selected compartment, displaying the last six hours of emitted metrics. Very small or large values are indicated by International System of Units (SI units), such as M for mega (10 to the sixth power).

    If the chart is not showing the expected data, then the old compartment might be specified in the query (MQL), as in the following example: 

    IopsRead[1m]{compartmentId="ocid1.compartment.oc1.phx..oldcompartmentexampleuniqueID"}.grouping().max()
  5. If the old compartment is specified in the query, then update the query to reference the new compartment: 
    1. Click Advanced Mode or Switch to Advanced Mode to view the alarm query as a Monitoring Query Language (MQL) expression.
    2. In Query code editor, update the query to reference the new compartment.

      View example

      Original query:

      IopsRead[1m]{compartmentId="ocid1.compartment.oc1.phx..oldcompartmentexampleuniqueID"}.grouping().max()

      Updated query:

      Read[1m]{compartmentId="ocid1.compartment.oc1.phx..newcompartmentexampleuniqueID"}.grouping().max()

      For more information about query syntax and more examples, see Working with Metric Queries.

      The chart below the Define alarm section dynamically updates according to the updated query, displaying the last six hours of emitted metrics. Very small or large values are indicated by International System of Units (SI units), such as M for mega (10 to the sixth power).

      If the chart is not showing the expected data, then confirm that every compartment reference (Compartment, Query code editor) points to the new compartment.

  6. Click Save alarm.

    The alarm now monitors metrics from the new compartment.

To suppress alarms
Important

Only one suppression  can be configured per alarm. Any existing suppression for the alarm is overwritten when you apply a new suppression.
  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. On the Alarm Definitions page, select the check boxes for the alarms you want to suppress.

    Note

    You can also suppress alarms from the Alarm Status page or when creating or editing an alarm.
  3. Go to Actions and select Add suppressions.
  4. In the Suppress Alarms dialog box, select a Start time and End time and then optionally fill in a Suppression description.
  5. Click Apply suppressions.

    A suppression is created for each selected alarm. The updated alarm settings are listed on the Alarm Definitions page and on the detail page for each alarm.

    Note

    Expired suppressions continue to be listed on pages in the Console. A suppression expires when the end time passes. To remove suppressions, go to Actions and select Remove suppressions.
To delete alarms
  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. On the Alarm Definitions page, select the check boxes for the alarms you want to delete.

    Note

    You can also delete an alarm from its detail page.
  3. Go to Actions and select Delete alarms.

    The deleted alarms are removed from the compartment and are no longer displayed on the Alarm definitions page.

To view alarm history
  1. Open the navigation menu and click Observability & Management. Under Monitoring, click Alarm Definitions.
  2. On the Alarm Definitions page, click the alarm that you want to view history for.

    The alarm detail page displays a chart showing data for the indicated time range and a list of timestamped transitions, such as Firing to OK.

    Alarm history is retained for 90 days.