import { GraphWidget, HorizontalAnnotation, IWidget } from "aws-cdk-lib/aws-cloudwatch"; import { LambdaFunctionEnhancedMetricFactory } from "./LambdaFunctionEnhancedMetricFactory"; import { LambdaFunctionMetricFactory, LambdaFunctionMetricFactoryProps } from "./LambdaFunctionMetricFactory"; import { AgeAlarmFactory, AlarmFactory, BaseMonitoringProps, DurationThreshold, ErrorAlarmFactory, ErrorCountThreshold, ErrorRateThreshold, HighTpsThreshold, LatencyAlarmFactory, LatencyThreshold, LatencyTimeoutPercentageThreshold, LatencyType, LowTpsThreshold, MaxAgeThreshold, MaxOffsetLagThreshold, MetricWithAlarmSupport, MinUsageCountThreshold, Monitoring, MonitoringScope, RunningTaskCountThreshold, RunningTaskRateThreshold, TaskHealthAlarmFactory, TpsAlarmFactory, UsageAlarmFactory, UsageThreshold } from "../../common"; import { MonitoringHeaderWidget, MonitoringNamingStrategy } from "../../dashboard"; export interface LambdaFunctionMonitoringOptions extends BaseMonitoringProps { /** * Indicates that the Lambda function handles an event source (e.g. DynamoDB event stream). * This impacts what widgets are shown, as well as validates the ability to use addMaxIteratorAgeAlarm. * * @default - true */ readonly isIterator?: boolean; /** * Indicates that the Lambda function handles an event source which uses offsets for records (e.g. Kafka streams). * This impacts what widgets are shown, as well as validates the ability to use addMaxOffsetLagAlarm. * * @default - false */ readonly isOffsetLag?: boolean; readonly addLatencyP50Alarm?: Record; readonly addLatencyP90Alarm?: Record; readonly addLatencyP99Alarm?: Record; readonly addMaxLatencyAlarm?: Record; readonly addLatencyTM50Alarm?: Record; readonly addLatencyTM70Alarm?: Record; readonly addLatencyTM90Alarm?: Record; readonly addLatencyTM95Alarm?: Record; readonly addLatencyTM99Alarm?: Record; readonly addLatencyTM999Alarm?: Record; readonly addLatencyTM9999Alarm?: Record; /** * You can specify what latency types you want to be rendered in the dashboards. * Note: any latency type with an alarm will be also added automatically. * If the list is undefined, default values will be shown. * If the list is empty, only the latency types with an alarm will be shown (if any). * @default - p50, p90, p99 (@see DefaultLatencyTypesToRender) */ readonly latencyTypesToRender?: LatencyType[]; readonly addFaultCountAlarm?: Record; readonly addFaultRateAlarm?: Record; readonly addLowTpsAlarm?: Record; readonly addHighTpsAlarm?: Record; readonly addThrottlesCountAlarm?: Record; readonly addThrottlesRateAlarm?: Record; readonly addMinInvocationsCountAlarm?: Record; readonly addConcurrentExecutionsCountAlarm?: Record; readonly addProvisionedConcurrencySpilloverInvocationsCountAlarm?: Record; readonly addProvisionedConcurrencySpilloverInvocationsRateAlarm?: Record; readonly addMaxIteratorAgeAlarm?: Record; readonly addMaxOffsetLagAlarm?: Record; readonly addEnhancedMonitoringMaxCpuTotalTimeAlarm?: Record; readonly addEnhancedMonitoringP90CpuTotalTimeAlarm?: Record; readonly addEnhancedMonitoringAvgCpuTotalTimeAlarm?: Record; readonly addEnhancedMonitoringMaxMemoryUtilizationAlarm?: Record; readonly addEnhancedMonitoringP90MemoryUtilizationAlarm?: Record; readonly addEnhancedMonitoringAvgMemoryUtilizationAlarm?: Record; readonly addEnhancedMonitoringMaxInitDurationAlarm?: Record; readonly addEnhancedMonitoringP90InitDurationAlarm?: Record; readonly addEnhancedMonitoringAvgInitDurationAlarm?: Record; } export interface LambdaFunctionMonitoringProps extends LambdaFunctionMetricFactoryProps, LambdaFunctionMonitoringOptions { } export declare class LambdaFunctionMonitoring extends Monitoring { readonly title: string; readonly functionUrl?: string; readonly namingStrategy: MonitoringNamingStrategy; readonly metricFactory: LambdaFunctionMetricFactory; readonly alarmFactory: AlarmFactory; readonly errorAlarmFactory: ErrorAlarmFactory; readonly latencyAlarmFactory: LatencyAlarmFactory; readonly tpsAlarmFactory: TpsAlarmFactory; readonly taskHealthAlarmFactory: TaskHealthAlarmFactory; readonly ageAlarmFactory: AgeAlarmFactory; readonly usageAlarmFactory: UsageAlarmFactory; readonly latencyAnnotations: HorizontalAnnotation[]; readonly errorCountAnnotations: HorizontalAnnotation[]; readonly errorRateAnnotations: HorizontalAnnotation[]; readonly invocationCountAnnotations: HorizontalAnnotation[]; readonly invocationRateAnnotations: HorizontalAnnotation[]; readonly tpsAnnotations: HorizontalAnnotation[]; readonly cpuTotalTimeAnnotations: HorizontalAnnotation[]; readonly memoryUsageAnnotations: HorizontalAnnotation[]; readonly maxIteratorAgeAnnotations: HorizontalAnnotation[]; readonly maxOffsetLagAnnotations: HorizontalAnnotation[]; readonly initDurationAnnotations: HorizontalAnnotation[]; readonly tpsMetric: MetricWithAlarmSupport; readonly p50LatencyMetric: MetricWithAlarmSupport; readonly p90LatencyMetric: MetricWithAlarmSupport; readonly p99LatencyMetric: MetricWithAlarmSupport; readonly maxLatencyMetric: MetricWithAlarmSupport; readonly latencyMetrics: Record; readonly latencyTypesToRender: string[]; readonly faultCountMetric: MetricWithAlarmSupport; readonly faultRateMetric: MetricWithAlarmSupport; readonly invocationCountMetric: MetricWithAlarmSupport; readonly throttlesCountMetric: MetricWithAlarmSupport; readonly throttlesRateMetric: MetricWithAlarmSupport; readonly concurrentExecutionsCountMetric: MetricWithAlarmSupport; readonly provisionedConcurrencySpilloverInvocationsCountMetric: MetricWithAlarmSupport; readonly provisionedConcurrencySpilloverInvocationsRateMetric: MetricWithAlarmSupport; readonly isIterator: boolean; readonly maxIteratorAgeMetric: MetricWithAlarmSupport; readonly isOffsetLag: boolean; readonly maxOffsetLagMetric: MetricWithAlarmSupport; readonly lambdaInsightsEnabled: boolean; readonly enhancedMetricFactory?: LambdaFunctionEnhancedMetricFactory; readonly enhancedMonitoringMaxCpuTotalTimeMetric?: MetricWithAlarmSupport; readonly enhancedMonitoringP90CpuTotalTimeMetric?: MetricWithAlarmSupport; readonly enhancedMonitoringAvgCpuTotalTimeMetric?: MetricWithAlarmSupport; readonly enhancedMonitoringMaxMemoryUtilizationMetric?: MetricWithAlarmSupport; readonly enhancedMonitoringP90MemoryUtilizationMetric?: MetricWithAlarmSupport; readonly enhancedMonitoringAvgMemoryUtilizationMetric?: MetricWithAlarmSupport; readonly enhancedMonitoringMaxInitDurationMetric?: MetricWithAlarmSupport; readonly enhancedMonitoringP90InitDurationMetric?: MetricWithAlarmSupport; readonly enhancedMonitoringAvgInitDurationMetric?: MetricWithAlarmSupport; readonly enhancedMetricFunctionCostMetric?: MetricWithAlarmSupport; constructor(scope: MonitoringScope, props: LambdaFunctionMonitoringProps); private convertToLatencyThreshold; summaryWidgets(): IWidget[]; widgets(): IWidget[]; createTitleWidget(): MonitoringHeaderWidget; createTpsWidget(width: number, height: number): GraphWidget; createLatencyWidget(width: number, height: number): GraphWidget; createErrorCountWidget(width: number, height: number): GraphWidget; createErrorRateWidget(width: number, height: number): GraphWidget; createRateWidget(width: number, height: number): GraphWidget; createInvocationWidget(width: number, height: number): GraphWidget; createIteratorAgeWidget(width: number, height: number): GraphWidget; createOffsetLagWidget(width: number, height: number): GraphWidget; createLambdaInsightsCpuWidget(width: number, height: number): GraphWidget; createLambdaInsightsMemoryWidget(width: number, height: number): GraphWidget; createLambdaInsightsInitDurationWidget(width: number, height: number): GraphWidget; createLambdaInsightsFunctionCostWidget(width: number, height: number): GraphWidget; private resolveFunctionName; }