UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

311 lines (310 loc) 7.22 kB
import { Duration } from '../../core'; /** * Interface for metrics */ export interface IMetric { /** * Any warnings related to this metric * * Should be attached to the consuming construct. * * @default - None * @deprecated - use warningsV2 */ readonly warnings?: string[]; /** * Any warnings related to this metric * * Should be attached to the consuming construct. * * @default - None */ readonly warningsV2?: { [id: string]: string; }; /** * Inspect the details of the metric object */ toMetricConfig(): MetricConfig; } /** * Metric dimension * * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dimension.html */ export interface Dimension { /** * Name of the dimension */ readonly name: string; /** * Value of the dimension */ readonly value: any; } /** * Statistic to use over the aggregation period * * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Statistics-definitions.html * @deprecated Use one of the factory methods on `Stats` to produce statistics strings */ export declare enum Statistic { /** * The count (number) of data points used for the statistical calculation. */ SAMPLE_COUNT = "SampleCount", /** * The value of Sum / SampleCount during the specified period. */ AVERAGE = "Average", /** * All values submitted for the matching metric added together. * This statistic can be useful for determining the total volume of a metric. */ SUM = "Sum", /** * The lowest value observed during the specified period. * You can use this value to determine low volumes of activity for your application. */ MINIMUM = "Minimum", /** * The highest value observed during the specified period. * You can use this value to determine high volumes of activity for your application. */ MAXIMUM = "Maximum" } /** * Unit for metric */ export declare enum Unit { /** * Seconds */ SECONDS = "Seconds", /** * Microseconds */ MICROSECONDS = "Microseconds", /** * Milliseconds */ MILLISECONDS = "Milliseconds", /** * Bytes */ BYTES = "Bytes", /** * Kilobytes */ KILOBYTES = "Kilobytes", /** * Megabytes */ MEGABYTES = "Megabytes", /** * Gigabytes */ GIGABYTES = "Gigabytes", /** * Terabytes */ TERABYTES = "Terabytes", /** * Bits */ BITS = "Bits", /** * Kilobits */ KILOBITS = "Kilobits", /** * Megabits */ MEGABITS = "Megabits", /** * Gigabits */ GIGABITS = "Gigabits", /** * Terabits */ TERABITS = "Terabits", /** * Percent */ PERCENT = "Percent", /** * Count */ COUNT = "Count", /** * Bytes/second (B/s) */ BYTES_PER_SECOND = "Bytes/Second", /** * Kilobytes/second (kB/s) */ KILOBYTES_PER_SECOND = "Kilobytes/Second", /** * Megabytes/second (MB/s) */ MEGABYTES_PER_SECOND = "Megabytes/Second", /** * Gigabytes/second (GB/s) */ GIGABYTES_PER_SECOND = "Gigabytes/Second", /** * Terabytes/second (TB/s) */ TERABYTES_PER_SECOND = "Terabytes/Second", /** * Bits/second (b/s) */ BITS_PER_SECOND = "Bits/Second", /** * Kilobits/second (kb/s) */ KILOBITS_PER_SECOND = "Kilobits/Second", /** * Megabits/second (Mb/s) */ MEGABITS_PER_SECOND = "Megabits/Second", /** * Gigabits/second (Gb/s) */ GIGABITS_PER_SECOND = "Gigabits/Second", /** * Terabits/second (Tb/s) */ TERABITS_PER_SECOND = "Terabits/Second", /** * Count/second */ COUNT_PER_SECOND = "Count/Second", /** * None */ NONE = "None" } /** * Properties of a rendered metric */ export interface MetricConfig { /** * In case the metric represents a query, the details of the query * * @default - None */ readonly metricStat?: MetricStatConfig; /** * In case the metric is a math expression, the details of the math expression * * @default - None */ readonly mathExpression?: MetricExpressionConfig; /** * Additional properties which will be rendered if the metric is used in a dashboard * * Examples are 'label' and 'color', but any key in here will be * added to dashboard graphs. * * @default - None */ readonly renderingProperties?: Record<string, unknown>; } /** * Properties for a concrete metric * * NOTE: `unit` is no longer on this object since it is only used for `Alarms`, and doesn't mean what one * would expect it to mean there anyway. It is most likely to be misused. */ export interface MetricStatConfig { /** * The dimensions to apply to the alarm * * @default [] */ readonly dimensions?: Dimension[]; /** * Namespace of the metric */ readonly namespace: string; /** * Name of the metric */ readonly metricName: string; /** * How many seconds to aggregate over */ readonly period: Duration; /** * Aggregation function to use (can be either simple or a percentile) */ readonly statistic: string; /** * Unit used to filter the metric stream * * Only refer to datums emitted to the metric stream with the given unit and * ignore all others. Only useful when datums are being emitted to the same * metric stream under different units. * * This field has been renamed from plain `unit` to clearly communicate * its purpose. * * @default - Refer to all metric datums */ readonly unitFilter?: Unit; /** * Region which this metric comes from. * * @default Deployment region. */ readonly region?: string; /** * Account which this metric comes from. * * @default Deployment account. */ readonly account?: string; /** * Region set directly on the metric, not inherited from the attached stack. * * @default No override. */ readonly regionOverride?: string; /** * Account set directly on the metric, not inherited from the attached stack. * * @default No override. */ readonly accountOverride?: string; } /** * Properties for a concrete metric */ export interface MetricExpressionConfig { /** * Math expression for the metric. */ readonly expression: string; /** * Metrics used in the math expression */ readonly usingMetrics: Record<string, IMetric>; /** * How many seconds to aggregate over */ readonly period: number; /** * Account to evaluate search expressions within. * * @default - Deployment account. */ readonly searchAccount?: string; /** * Region to evaluate search expressions within. * * @default - Deployment region. */ readonly searchRegion?: string; }