UNPKG

cdk-monitoring-constructs

Version:

[![NPM version](https://badge.fury.io/js/cdk-monitoring-constructs.svg)](https://badge.fury.io/js/cdk-monitoring-constructs) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.cdklabs/cdkmonitoringconstructs/badge.svg)](https://m

120 lines (119 loc) 8.24 kB
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, 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<string, LatencyThreshold | LatencyTimeoutPercentageThreshold>; readonly addLatencyP90Alarm?: Record<string, LatencyThreshold | LatencyTimeoutPercentageThreshold>; readonly addLatencyP99Alarm?: Record<string, LatencyThreshold | LatencyTimeoutPercentageThreshold>; readonly addMaxLatencyAlarm?: Record<string, LatencyThreshold | LatencyTimeoutPercentageThreshold>; readonly addFaultCountAlarm?: Record<string, ErrorCountThreshold>; readonly addFaultRateAlarm?: Record<string, ErrorRateThreshold>; readonly addLowTpsAlarm?: Record<string, LowTpsThreshold>; readonly addHighTpsAlarm?: Record<string, HighTpsThreshold>; readonly addThrottlesCountAlarm?: Record<string, ErrorCountThreshold>; readonly addThrottlesRateAlarm?: Record<string, ErrorRateThreshold>; readonly addMinInvocationsCountAlarm?: Record<string, MinUsageCountThreshold>; readonly addConcurrentExecutionsCountAlarm?: Record<string, RunningTaskCountThreshold>; readonly addProvisionedConcurrencySpilloverInvocationsCountAlarm?: Record<string, RunningTaskCountThreshold>; readonly addProvisionedConcurrencySpilloverInvocationsRateAlarm?: Record<string, RunningTaskRateThreshold>; readonly addMaxIteratorAgeAlarm?: Record<string, MaxAgeThreshold>; readonly addMaxOffsetLagAlarm?: Record<string, MaxOffsetLagThreshold>; readonly addEnhancedMonitoringMaxCpuTotalTimeAlarm?: Record<string, DurationThreshold>; readonly addEnhancedMonitoringP90CpuTotalTimeAlarm?: Record<string, DurationThreshold>; readonly addEnhancedMonitoringAvgCpuTotalTimeAlarm?: Record<string, DurationThreshold>; readonly addEnhancedMonitoringMaxMemoryUtilizationAlarm?: Record<string, UsageThreshold>; readonly addEnhancedMonitoringP90MemoryUtilizationAlarm?: Record<string, UsageThreshold>; readonly addEnhancedMonitoringAvgMemoryUtilizationAlarm?: Record<string, UsageThreshold>; readonly addEnhancedMonitoringMaxInitDurationAlarm?: Record<string, DurationThreshold>; readonly addEnhancedMonitoringP90InitDurationAlarm?: Record<string, DurationThreshold>; readonly addEnhancedMonitoringAvgInitDurationAlarm?: Record<string, DurationThreshold>; } 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 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; }