cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
55 lines (54 loc) • 2.22 kB
TypeScript
import { GraphWidget, HorizontalAnnotation, IWidget } from "aws-cdk-lib/aws-cloudwatch";
import { CloudWatchLogsMetricFactoryProps } from "./CloudWatchLogsMetricFactory";
import { AlarmFactory, BaseMonitoringProps, MaxUsageCountThreshold, MetricWithAlarmSupport, MinUsageCountThreshold, Monitoring, MonitoringScope, UsageAlarmFactory } from "../../common";
import { MonitoringHeaderWidget } from "../../dashboard";
export interface LogMonitoringProps extends BaseMonitoringProps, CloudWatchLogsMetricFactoryProps {
/**
* Widget title
*
* @default - auto-generated title based on the pattern and limit
*/
readonly title?: string;
/**
* Pattern to filter `@message` field, e.g. "ERROR"
*/
readonly pattern?: string;
/**
* Filter expressions to add.
* @example
* filterExpressions = [`level = "ERROR"`]
* // will be appended to the query as
* | filter level = "ERROR"
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax-Filter.html
*/
readonly filterExpressions?: string[];
/**
* Maximum number of log messages to search for.
*
* @default - 10
*/
readonly limit?: number;
readonly addMinIncomingLogsAlarm?: Record<string, MinUsageCountThreshold>;
readonly addMaxIncomingLogsAlarm?: Record<string, MaxUsageCountThreshold>;
}
/**
* Monitors a CloudWatch log group for various patterns.
*/
export declare class LogMonitoring extends Monitoring {
readonly logGroupName: string;
readonly logGroupUrl?: string;
readonly title?: string;
readonly pattern?: string;
readonly filterExpressions?: string[];
readonly limit: number;
readonly alarmFactory: AlarmFactory;
readonly usageAlarmFactory: UsageAlarmFactory;
readonly incomingLogEventsMetric: MetricWithAlarmSupport;
readonly usageAnnotations: HorizontalAnnotation[];
constructor(scope: MonitoringScope, props: LogMonitoringProps);
summaryWidgets(): IWidget[];
widgets(): IWidget[];
createTitleWidget(): MonitoringHeaderWidget;
createIncomingLogsWidget(width: number, height: number): GraphWidget;
protected resolveRecommendedHeight(numRows: number): number;
}