private void createCommonWidgetsAndAlarms()

in DeliveryApi/cdk/src/main/java/com/ilmlf/delivery/api/FunctionDashboard.java [304:347]


  private void createCommonWidgetsAndAlarms(String functionName, String apiMethodName, Topic alarmTopic) {
    Metric invocationMetric = new Metric(MetricProps.builder()
        .metricName("Invocations")
        .namespace(LAMBDA_NAMESPACE)
        .dimensionsMap(Map.of("FunctionName", functionName))
        .period(Duration.minutes(1))
        .statistic("SUM")
        .label("Number of Invocations")
        .build());

    Metric errorsMetric = new Metric(MetricProps.builder()
        .metricName("Errors")
        .namespace(LAMBDA_NAMESPACE)
        .dimensionsMap(Map.of("FunctionName", functionName))
        .period(Duration.minutes(5))
        .statistic("SUM")
        .label("Number of Errors")
        .build());

    Alarm errorsAlarm = new Alarm(this, apiMethodName + "ErrorsAlarm", AlarmProps.builder()
        .alarmName(functionName + "-ErrorsAlarm")
        .metric(errorsMetric)
        .evaluationPeriods(1)
        .threshold(2)
        .build());

    errorsAlarm.addAlarmAction(new SnsAction(alarmTopic));

    GraphWidget invocationWidget = new GraphWidget(GraphWidgetProps.builder()
        .height(STANDARD_WIDGET_HEIGHT)
        .width(HALF_DASHBOARD_WIDTH)
        .left(List.of(invocationMetric))
        .title(apiMethodName + "-Invocations")
        .build());

    AlarmWidget errorsWidget = new AlarmWidget(AlarmWidgetProps.builder()
        .height(STANDARD_WIDGET_HEIGHT)
        .width(HALF_DASHBOARD_WIDTH)
        .alarm(errorsAlarm)
        .title(apiMethodName + "-Errors")
        .build());

    this.addWidgets(invocationWidget, errorsWidget);
  }