import * as cloudwatch from "aws-cdk-lib/aws-cloudwatch"; import type * as lambda from "aws-cdk-lib/aws-lambda"; import * as logs from "aws-cdk-lib/aws-logs"; import * as constructs from "constructs"; export interface LambdaAlarmsProps { /** * The CloudWatch alarm action to use for high-severity alarms (ALARM channel). */ alarmAction: cloudwatch.IAlarmAction; /** * The CloudWatch alarm action to use for lower-severity warnings (WARNING channel). */ warningAction: cloudwatch.IAlarmAction; /** * The Lambda to add alarms to. */ lambdaFunction: lambda.IFunction; /** * Optional Lambda function that will receive forwarded log events. * If provided, subscription filters will be created to forward matching logs */ logHandler?: lambda.IFunction; } /** * Alarms for Lambda functions. * * Unlike RDS and ECS alarm constructs in this package, `LambdaAlarms` is * set up manually by consumers. * * Defaults: * - single invocation (singleError) -> sent to `warningAction` by default * - multiple invocation (multipleErrors) -> sent to `alarmAction` by default * - error log alarm (ERROR/FATAL JSON logs) -> sent to `warningAction` by default * - uncaught Java exception alarm -> sent to `warningAction` by default (disabled by default) */ export declare class LambdaAlarms extends constructs.Construct { private readonly alarmAction; private readonly warningAction; private readonly lambdaFunction; private readonly logHandler?; constructor(scope: constructs.Construct, id: string, props: LambdaAlarmsProps); /** * Creates both the single-invocation warning and the * multiple invocations alarm with reasonable defaults. * * Each created alarm can be overridden via the per-alarm props. */ addInvocationErrorAlarm(props?: { singleError?: { appendToAlarmDescription?: string; enabled?: boolean; action?: cloudwatch.IAlarmAction; /** * @default true */ enableOkAlarm?: boolean; }; multipleErrors?: { appendToAlarmDescription?: string; enabled?: boolean; action?: cloudwatch.IAlarmAction; /** * @default true */ enableOkAlarm?: boolean; /** * @default 3 */ evaluationPeriods?: number; /** * @default 1 */ threshold?: number; /** * @default 60 */ periodSeconds?: number; }; }): void; /** * Sets up a CloudWatch Alarm that triggers on a single invocation failure. */ addSingleInvocationAlarm(props?: { appendToAlarmDescription?: string; enabled?: boolean; action?: cloudwatch.IAlarmAction; enableOkAlarm?: boolean; }): void; /** * Sets up a CloudWatch Alarm that triggers when there is a short series of * invocation failures. */ addMultipleInvocationAlarms(props?: { appendToAlarmDescription?: string; enabled?: boolean; action?: cloudwatch.IAlarmAction; /** * @default true */ enableOkAlarm?: boolean; /** * @default 3 */ evaluationPeriods?: number; /** * @default 1 */ threshold?: number; /** * @default 60 */ periodSeconds?: number; }): void; /** * Alerts when ERROR is logged from lambda. */ addErrorAlarm(props: { logGroup: logs.ILogGroup; alarmDescription?: string; /** * @default true */ enableOkAlarm?: boolean; /** * An action to use for CloudWatch alarm state changes * instead of the default warning action */ action?: cloudwatch.IAlarmAction; }): void; /** * Adds an alarm for uncaught Java exceptions in the Lambda function's logs. */ addUncaughtJavaExceptionAlarm(props: { logGroup: logs.ILogGroup; alarmDescription?: string; /** * @default false */ enabled?: boolean; enableOkAlarm?: boolean; action?: cloudwatch.IAlarmAction; }): void; }