cdk-monitoring-constructs
Version:
[](https://gitpod.io/#https://github.com/cdklabs/cdk-monitoring-constructs) [](https://badge
61 lines (60 loc) • 4.43 kB
TypeScript
import { GraphWidget, HorizontalAnnotation, IMetric, IWidget } from "aws-cdk-lib/aws-cloudwatch";
import { BillingMode, Operation } from "aws-cdk-lib/aws-dynamodb";
import { AlarmFactory, BaseMonitoringProps, ConsumedCapacityThreshold, DynamoAlarmFactory, ErrorAlarmFactory, ErrorCountThreshold, LatencyAlarmFactory, LatencyThreshold, MetricWithAlarmSupport, Monitoring, MonitoringScope, ThrottledEventsThreshold } from "../../common";
import { MonitoringHeaderWidget } from "../../dashboard";
import { DynamoTableMetricFactoryProps } from "./DynamoTableMetricFactory";
export interface DynamoTableMonitoringOptions extends BaseMonitoringProps {
readonly addConsumedReadCapacityAlarm?: Record<string, ConsumedCapacityThreshold>;
readonly addConsumedWriteCapacityAlarm?: Record<string, ConsumedCapacityThreshold>;
readonly addReadThrottledEventsCountAlarm?: Record<string, ThrottledEventsThreshold>;
readonly addWriteThrottledEventsCountAlarm?: Record<string, ThrottledEventsThreshold>;
readonly addSystemErrorCountAlarm?: Record<string, ErrorCountThreshold>;
readonly addAverageSuccessfulGetRecordsLatencyAlarm?: Record<string, LatencyThreshold>;
readonly addAverageSuccessfulQueryLatencyAlarm?: Record<string, LatencyThreshold>;
readonly addAverageSuccessfulScanLatencyAlarm?: Record<string, LatencyThreshold>;
readonly addAverageSuccessfulPutItemLatencyAlarm?: Record<string, LatencyThreshold>;
readonly addAverageSuccessfulGetItemLatencyAlarm?: Record<string, LatencyThreshold>;
readonly addAverageSuccessfulUpdateItemLatencyAlarm?: Record<string, LatencyThreshold>;
readonly addAverageSuccessfulDeleteItemLatencyAlarm?: Record<string, LatencyThreshold>;
readonly addAverageSuccessfulBatchGetItemLatencyAlarm?: Record<string, LatencyThreshold>;
readonly addAverageSuccessfulBatchWriteItemLatencyAlarm?: Record<string, LatencyThreshold>;
}
export interface DynamoTableMonitoringProps extends DynamoTableMetricFactoryProps, DynamoTableMonitoringOptions {
}
export declare class DynamoTableMonitoring extends Monitoring {
protected readonly title: string;
protected readonly tableUrl?: string;
protected readonly tableBillingMode: BillingMode;
protected readonly alarmFactory: AlarmFactory;
protected readonly errorAlarmFactory: ErrorAlarmFactory;
protected readonly latencyAlarmFactory: LatencyAlarmFactory;
protected readonly dynamoCapacityAlarmFactory: DynamoAlarmFactory;
protected readonly latencyAnnotations: HorizontalAnnotation[];
protected readonly errorCountAnnotations: HorizontalAnnotation[];
protected readonly dynamoReadCapacityAnnotations: HorizontalAnnotation[];
protected readonly dynamoWriteCapacityAnnotations: HorizontalAnnotation[];
protected readonly throttledEventsAnnotations: HorizontalAnnotation[];
protected readonly provisionedReadUnitsMetric: MetricWithAlarmSupport;
protected readonly provisionedWriteUnitsMetric: MetricWithAlarmSupport;
protected readonly consumedReadUnitsMetric: MetricWithAlarmSupport;
protected readonly consumedWriteUnitsMetric: MetricWithAlarmSupport;
protected readonly readThrottleCountMetric: MetricWithAlarmSupport;
protected readonly writeThrottleCountMetric: MetricWithAlarmSupport;
protected readonly systemErrorMetric: MetricWithAlarmSupport;
protected readonly latencyAverageSearchMetrics: IMetric;
protected readonly averagePerOperationLatencyMetrics: Record<string, MetricWithAlarmSupport>;
protected readonly readCapacityUsageMetric: MetricWithAlarmSupport;
protected readonly writeCapacityUsageMetric: MetricWithAlarmSupport;
constructor(scope: MonitoringScope, props: DynamoTableMonitoringProps);
protected forEachOperationLatencyAlarmDefinition(operation: Operation, alarm?: Record<string, LatencyThreshold>): void;
summaryWidgets(): IWidget[];
widgets(): IWidget[];
protected createLatencyWidget(width: number, height: number): GraphWidget;
protected createThrottlesWidget(width: number, height: number): GraphWidget;
protected createErrorsWidget(width: number, height: number): GraphWidget;
protected createReadCapacityWidget(width: number, height: number): GraphWidget;
protected createWriteCapacityWidget(width: number, height: number): GraphWidget;
protected createTitleWidget(): MonitoringHeaderWidget;
private resolveTableName;
private resolveTableBillingMode;
}