constructor()

in src/constructs/cloudwatch/lambda-alarms.ts [27:48]


  constructor(scope: GuStack, id: string, props: GuLambdaAlarmProps) {
    const mathExpression = new MathExpression({
      expression: "100*m1/m2",
      usingMetrics: { m1: props.lambda.metricErrors(), m2: props.lambda.metricInvocations() },
      label: `Error % of ${props.lambda.functionName}`,
      period: props.lengthOfEvaluationPeriod ?? Duration.minutes(1),
    });
    const defaultAlarmName = `High error percentage from ${props.lambda.functionName} lambda in ${scope.stage}`;
    const defaultDescription = `${props.lambda.functionName} exceeded ${props.toleratedErrorPercentage}% error rate`;
    const alarmProps: GuAlarmProps = {
      ...props,
      app: props.lambda.app,
      metric: mathExpression,
      treatMissingData: TreatMissingData.NOT_BREACHING,
      threshold: props.toleratedErrorPercentage,
      comparisonOperator: ComparisonOperator.GREATER_THAN_THRESHOLD,
      evaluationPeriods: props.numberOfEvaluationPeriodsAboveThresholdBeforeAlarm ?? 1,
      alarmName: props.alarmName ?? defaultAlarmName,
      alarmDescription: props.alarmDescription ?? defaultDescription,
    };
    super(scope, id, alarmProps);
  }