cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
56 lines • 6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createGraphWidget = exports.GraphWidgetType = void 0;
const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch");
var GraphWidgetType;
(function (GraphWidgetType) {
GraphWidgetType["BAR"] = "Bar";
GraphWidgetType["LINE"] = "Line";
GraphWidgetType["PIE"] = "Pie";
GraphWidgetType["SINGLE_VALUE"] = "SingleValue";
GraphWidgetType["STACKED_AREA"] = "StackedArea";
GraphWidgetType["TABLE"] = "Table";
})(GraphWidgetType = exports.GraphWidgetType || (exports.GraphWidgetType = {}));
/**
* Creates a graph widget of the desired type.
*
* @param type graph type (e.g. Pie or Bar)
* @param props graph widget properties
*/
function createGraphWidget(type, props) {
switch (type) {
case GraphWidgetType.BAR:
return new aws_cloudwatch_1.GraphWidget({
...props,
view: aws_cloudwatch_1.GraphWidgetView.BAR,
setPeriodToTimeRange: true,
});
case GraphWidgetType.LINE:
return new aws_cloudwatch_1.GraphWidget(props);
case GraphWidgetType.PIE:
return new aws_cloudwatch_1.GraphWidget({
...props,
view: aws_cloudwatch_1.GraphWidgetView.PIE,
setPeriodToTimeRange: true,
});
case GraphWidgetType.SINGLE_VALUE:
return new aws_cloudwatch_1.SingleValueWidget({
...props,
metrics: [...(props.left ?? []), ...(props.right ?? [])],
});
case GraphWidgetType.STACKED_AREA:
return new aws_cloudwatch_1.GraphWidget({
...props,
stacked: true,
});
case GraphWidgetType.TABLE:
return new aws_cloudwatch_1.TableWidget({
...props,
metrics: [...(props.left ?? []), ...(props.right ?? [])],
});
default:
throw new Error(`Unsupported graph type: ${type}`);
}
}
exports.createGraphWidget = createGraphWidget;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFPb0M7QUFFcEMsSUFBWSxlQU9YO0FBUEQsV0FBWSxlQUFlO0lBQ3pCLDhCQUFXLENBQUE7SUFDWCxnQ0FBYSxDQUFBO0lBQ2IsOEJBQVcsQ0FBQTtJQUNYLCtDQUE0QixDQUFBO0lBQzVCLCtDQUE0QixDQUFBO0lBQzVCLGtDQUFlLENBQUE7QUFDakIsQ0FBQyxFQVBXLGVBQWUsR0FBZix1QkFBZSxLQUFmLHVCQUFlLFFBTzFCO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FDL0IsSUFBcUIsRUFDckIsS0FBdUI7SUFFdkIsUUFBUSxJQUFJLEVBQUU7UUFDWixLQUFLLGVBQWUsQ0FBQyxHQUFHO1lBQ3RCLE9BQU8sSUFBSSw0QkFBVyxDQUFDO2dCQUNyQixHQUFHLEtBQUs7Z0JBQ1IsSUFBSSxFQUFFLGdDQUFlLENBQUMsR0FBRztnQkFDekIsb0JBQW9CLEVBQUUsSUFBSTthQUMzQixDQUFDLENBQUM7UUFFTCxLQUFLLGVBQWUsQ0FBQyxJQUFJO1lBQ3ZCLE9BQU8sSUFBSSw0QkFBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWhDLEtBQUssZUFBZSxDQUFDLEdBQUc7WUFDdEIsT0FBTyxJQUFJLDRCQUFXLENBQUM7Z0JBQ3JCLEdBQUcsS0FBSztnQkFDUixJQUFJLEVBQUUsZ0NBQWUsQ0FBQyxHQUFHO2dCQUN6QixvQkFBb0IsRUFBRSxJQUFJO2FBQzNCLENBQUMsQ0FBQztRQUVMLEtBQUssZUFBZSxDQUFDLFlBQVk7WUFDL0IsT0FBTyxJQUFJLGtDQUFpQixDQUFDO2dCQUMzQixHQUFHLEtBQUs7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7YUFDekQsQ0FBQyxDQUFDO1FBRUwsS0FBSyxlQUFlLENBQUMsWUFBWTtZQUMvQixPQUFPLElBQUksNEJBQVcsQ0FBQztnQkFDckIsR0FBRyxLQUFLO2dCQUNSLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQyxDQUFDO1FBRUwsS0FBSyxlQUFlLENBQUMsS0FBSztZQUN4QixPQUFPLElBQUksNEJBQVcsQ0FBQztnQkFDckIsR0FBRyxLQUFLO2dCQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3pELENBQUMsQ0FBQztRQUVMO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUN0RDtBQUNILENBQUM7QUEzQ0QsOENBMkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgR3JhcGhXaWRnZXQsXG4gIEdyYXBoV2lkZ2V0UHJvcHMsXG4gIEdyYXBoV2lkZ2V0VmlldyxcbiAgSVdpZGdldCxcbiAgU2luZ2xlVmFsdWVXaWRnZXQsXG4gIFRhYmxlV2lkZ2V0LFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcblxuZXhwb3J0IGVudW0gR3JhcGhXaWRnZXRUeXBlIHtcbiAgQkFSID0gXCJCYXJcIixcbiAgTElORSA9IFwiTGluZVwiLFxuICBQSUUgPSBcIlBpZVwiLFxuICBTSU5HTEVfVkFMVUUgPSBcIlNpbmdsZVZhbHVlXCIsXG4gIFNUQUNLRURfQVJFQSA9IFwiU3RhY2tlZEFyZWFcIixcbiAgVEFCTEUgPSBcIlRhYmxlXCIsXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGdyYXBoIHdpZGdldCBvZiB0aGUgZGVzaXJlZCB0eXBlLlxuICpcbiAqIEBwYXJhbSB0eXBlIGdyYXBoIHR5cGUgKGUuZy4gUGllIG9yIEJhcilcbiAqIEBwYXJhbSBwcm9wcyBncmFwaCB3aWRnZXQgcHJvcGVydGllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlR3JhcGhXaWRnZXQoXG4gIHR5cGU6IEdyYXBoV2lkZ2V0VHlwZSxcbiAgcHJvcHM6IEdyYXBoV2lkZ2V0UHJvcHMsXG4pOiBJV2lkZ2V0IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBHcmFwaFdpZGdldFR5cGUuQkFSOlxuICAgICAgcmV0dXJuIG5ldyBHcmFwaFdpZGdldCh7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICB2aWV3OiBHcmFwaFdpZGdldFZpZXcuQkFSLFxuICAgICAgICBzZXRQZXJpb2RUb1RpbWVSYW5nZTogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgY2FzZSBHcmFwaFdpZGdldFR5cGUuTElORTpcbiAgICAgIHJldHVybiBuZXcgR3JhcGhXaWRnZXQocHJvcHMpO1xuXG4gICAgY2FzZSBHcmFwaFdpZGdldFR5cGUuUElFOlxuICAgICAgcmV0dXJuIG5ldyBHcmFwaFdpZGdldCh7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICB2aWV3OiBHcmFwaFdpZGdldFZpZXcuUElFLFxuICAgICAgICBzZXRQZXJpb2RUb1RpbWVSYW5nZTogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgY2FzZSBHcmFwaFdpZGdldFR5cGUuU0lOR0xFX1ZBTFVFOlxuICAgICAgcmV0dXJuIG5ldyBTaW5nbGVWYWx1ZVdpZGdldCh7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICBtZXRyaWNzOiBbLi4uKHByb3BzLmxlZnQgPz8gW10pLCAuLi4ocHJvcHMucmlnaHQgPz8gW10pXSxcbiAgICAgIH0pO1xuXG4gICAgY2FzZSBHcmFwaFdpZGdldFR5cGUuU1RBQ0tFRF9BUkVBOlxuICAgICAgcmV0dXJuIG5ldyBHcmFwaFdpZGdldCh7XG4gICAgICAgIC4uLnByb3BzLFxuICAgICAgICBzdGFja2VkOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICBjYXNlIEdyYXBoV2lkZ2V0VHlwZS5UQUJMRTpcbiAgICAgIHJldHVybiBuZXcgVGFibGVXaWRnZXQoe1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgbWV0cmljczogWy4uLihwcm9wcy5sZWZ0ID8/IFtdKSwgLi4uKHByb3BzLnJpZ2h0ID8/IFtdKV0sXG4gICAgICB9KTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGdyYXBoIHR5cGU6ICR7dHlwZX1gKTtcbiAgfVxufVxuIl19