java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
All Implemented Interfaces:
IResource, IAlarm, IAlarmRule, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct, software.constructs.IDependable

@Generated(value="jsii-pacmak/1.103.1 (build bef2dea)", date="2024-10-11T15:55:54.723Z") @Stability(Stable) public class Alarm extends AlarmBase
An alarm on a CloudWatch metric.

Example:

 LogGroup logGroup;
 MetricFilter mf = MetricFilter.Builder.create(this, "MetricFilter")
         .logGroup(logGroup)
         .metricNamespace("MyApp")
         .metricName("Latency")
         .filterPattern(FilterPattern.exists("$.latency"))
         .metricValue("$.latency")
         .dimensions(Map.of(
                 "ErrorCode", "$.errorCode"))
         .unit(Unit.MILLISECONDS)
         .build();
 //expose a metric from the metric filter
 Metric metric = mf.metric();
 //you can use the metric to create a new alarm
 //you can use the metric to create a new alarm
 Alarm.Builder.create(this, "alarm from metric filter")
         .metric(metric)
         .threshold(100)
         .evaluationPeriods(2)
         .build();
 
  • Constructor Details

    • Alarm

      protected Alarm(software.amazon.jsii.JsiiObjectRef objRef)
    • Alarm

      protected Alarm(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • Alarm

      @Stability(Stable) public Alarm(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull AlarmProps props)
      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
      props - This parameter is required.
  • Method Details

    • fromAlarmArn

      @Stability(Stable) @NotNull public static IAlarm fromAlarmArn(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull String alarmArn)
      Import an existing CloudWatch alarm provided an ARN.

      Parameters:
      scope - The parent creating construct (usually this). This parameter is required.
      id - The construct's name. This parameter is required.
      alarmArn - Alarm ARN (i.e. arn:aws:cloudwatch::invalid input: '<'account-id>:alarm:Foo). This parameter is required.
    • fromAlarmName

      @Stability(Stable) @NotNull public static IAlarm fromAlarmName(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull String alarmName)
      Import an existing CloudWatch alarm provided an Name.

      Parameters:
      scope - The parent creating construct (usually this). This parameter is required.
      id - The construct's name. This parameter is required.
      alarmName - Alarm Name. This parameter is required.
    • addAlarmAction

      @Stability(Stable) public void addAlarmAction(@NotNull @NotNull IAlarmAction... actions)
      Trigger this action if the alarm fires.

      Typically SnsAction or AutoScalingAction.

      Overrides:
      addAlarmAction in class AlarmBase
      Parameters:
      actions - This parameter is required.
    • toAnnotation

      @Stability(Stable) @NotNull public HorizontalAnnotation toAnnotation()
      Turn this alarm into a horizontal annotation.

      This is useful if you want to represent an Alarm in a non-AlarmWidget. An AlarmWidget can directly show an alarm, but it can only show a single alarm and no other metrics. Instead, you can convert the alarm to a HorizontalAnnotation and add it as an annotation to another graph.

      This might be useful if:

      • You want to show multiple alarms inside a single graph, for example if you have both a "small margin/long period" alarm as well as a "large margin/short period" alarm.
      • You want to show an Alarm line in a graph with multiple metrics in it.
    • getAlarmArn

      @Stability(Stable) @NotNull public String getAlarmArn()
      ARN of this alarm.
      Specified by:
      getAlarmArn in interface IAlarm
      Specified by:
      getAlarmArn in class AlarmBase
    • getAlarmName

      @Stability(Stable) @NotNull public String getAlarmName()
      Name of this alarm.
      Specified by:
      getAlarmName in interface IAlarm
      Specified by:
      getAlarmName in class AlarmBase
    • getMetric

      @Stability(Stable) @NotNull public IMetric getMetric()
      The metric object this alarm was based on.