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

79 lines 8.46 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.Monitoring = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const dashboard_1 = require("../../dashboard"); /** * An independent unit of monitoring. This is the base for all monitoring classes with alarm support. */ class Monitoring { constructor(scope, props) { this.scope = scope; this.alarms = []; this.localAlarmNamePrefixOverride = props?.localAlarmNamePrefixOverride; } /** * Creates a new widget factory. */ createWidgetFactory() { return this.scope.createWidgetFactory(); } /** * Creates a new metric factory. */ createMetricFactory() { return this.scope.createMetricFactory(); } /** * Creates a new alarm factory. * Alarms created will be named with the given prefix, unless a local name override is present. * @param alarmNamePrefix alarm name prefix */ createAlarmFactory(alarmNamePrefix) { return this.scope.createAlarmFactory(this.localAlarmNamePrefixOverride ?? alarmNamePrefix); } /** * Adds an alarm. * @param alarm alarm to add */ addAlarm(alarm) { this.alarms.push(alarm); } /** * Returns all the alarms created. */ createdAlarms() { return this.alarms; } /** * Returns widgets for all alarms. These can go to runbook or to service dashboard. */ alarmWidgets() { return this.createdAlarms().map((alarm) => this.createWidgetFactory().createAlarmDetailWidget(alarm)); } /** * Returns widgets to be placed on the summary dashboard. * * @default - no widgets. */ summaryWidgets() { return []; } widgetsForDashboard(name) { switch (name) { case dashboard_1.DefaultDashboards.SUMMARY: return this.summaryWidgets(); case dashboard_1.DefaultDashboards.DETAIL: return this.widgets(); case dashboard_1.DefaultDashboards.ALARMS: return this.alarmWidgets(); default: return []; } } } exports.Monitoring = Monitoring; _a = JSII_RTTI_SYMBOL_1; Monitoring[_a] = { fqn: "cdk-monitoring-constructs.Monitoring", version: "10.0.0" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uaXRvcmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk1vbml0b3JpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFHQSwrQ0FNeUI7QUFzQnpCOztHQUVHO0FBQ0gsTUFBc0IsVUFBVTtJQU85QixZQUFzQixLQUFzQixFQUFFLEtBQTJCO1FBQ3ZFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLEVBQUUsNEJBQTRCLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLGVBQXVCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FDbEMsSUFBSSxDQUFDLDRCQUE0QixJQUFJLGVBQWUsQ0FDckQsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsS0FBMEI7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDeEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQzFELENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGNBQWM7UUFDWixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFPRCxtQkFBbUIsQ0FBQyxJQUFZO1FBQzlCLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLDZCQUFpQixDQUFDLE9BQU87Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQy9CLEtBQUssNkJBQWlCLENBQUMsTUFBTTtnQkFDM0IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsS0FBSyw2QkFBaUIsQ0FBQyxNQUFNO2dCQUMzQixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM3QjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDOztBQXZGSCxnQ0F3RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJV2lkZ2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCI7XG5cbmltcG9ydCB7IE1vbml0b3JpbmdTY29wZSB9IGZyb20gXCIuL01vbml0b3JpbmdTY29wZVwiO1xuaW1wb3J0IHtcbiAgRGVmYXVsdERhc2hib2FyZHMsXG4gIElEYXNoYm9hcmRTZWdtZW50LFxuICBJRHluYW1pY0Rhc2hib2FyZFNlZ21lbnQsXG4gIE1vbml0b3JpbmdEYXNoYm9hcmRzT3ZlcnJpZGVQcm9wcyxcbiAgVXNlclByb3ZpZGVkTmFtZXMsXG59IGZyb20gXCIuLi8uLi9kYXNoYm9hcmRcIjtcbmltcG9ydCB7IEFsYXJtV2l0aEFubm90YXRpb24gfSBmcm9tIFwiLi4vYWxhcm1cIjtcbmltcG9ydCB7IEJhc2VNZXRyaWNGYWN0b3J5UHJvcHMgfSBmcm9tIFwiLi4vbWV0cmljXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFsYXJtQ29uc3VtZXIge1xuICBjb25zdW1lKGFsYXJtczogQWxhcm1XaXRoQW5ub3RhdGlvbltdKTogdm9pZDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBwcm9wZXJ0aWVzIHBhc3NlZCB0byBlYWNoIG1vbml0b3JpbmcgY29uc3RydWN0LlxuICogSXQgY29udGFpbnMgKG1vc3RseSBvcHRpb25hbCkgcHJvcGVydGllcyB0byBzcGVjaWZ5IG5hbWluZywgcGxhY2VtZW50LCBhbmQgc28gb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZU1vbml0b3JpbmdQcm9wc1xuICBleHRlbmRzIEJhc2VNZXRyaWNGYWN0b3J5UHJvcHMsXG4gICAgVXNlclByb3ZpZGVkTmFtZXMsXG4gICAgTW9uaXRvcmluZ0Rhc2hib2FyZHNPdmVycmlkZVByb3BzIHtcbiAgLyoqXG4gICAqIENhbGxzIHByb3ZpZGVkIGZ1bmN0aW9uIHRvIHByb2Nlc3MgYWxsIGFsYXJtcyBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlQ3JlYXRlZEFsYXJtcz86IElBbGFybUNvbnN1bWVyO1xufVxuXG4vKipcbiAqIEFuIGluZGVwZW5kZW50IHVuaXQgb2YgbW9uaXRvcmluZy4gVGhpcyBpcyB0aGUgYmFzZSBmb3IgYWxsIG1vbml0b3JpbmcgY2xhc3NlcyB3aXRoIGFsYXJtIHN1cHBvcnQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNb25pdG9yaW5nXG4gIGltcGxlbWVudHMgSURhc2hib2FyZFNlZ21lbnQsIElEeW5hbWljRGFzaGJvYXJkU2VnbWVudFxue1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2NvcGU6IE1vbml0b3JpbmdTY29wZTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFsYXJtczogQWxhcm1XaXRoQW5ub3RhdGlvbltdO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxBbGFybU5hbWVQcmVmaXhPdmVycmlkZT86IHN0cmluZztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Ioc2NvcGU6IE1vbml0b3JpbmdTY29wZSwgcHJvcHM/OiBCYXNlTW9uaXRvcmluZ1Byb3BzKSB7XG4gICAgdGhpcy5zY29wZSA9IHNjb3BlO1xuICAgIHRoaXMuYWxhcm1zID0gW107XG4gICAgdGhpcy5sb2NhbEFsYXJtTmFtZVByZWZpeE92ZXJyaWRlID0gcHJvcHM/LmxvY2FsQWxhcm1OYW1lUHJlZml4T3ZlcnJpZGU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyB3aWRnZXQgZmFjdG9yeS5cbiAgICovXG4gIGNyZWF0ZVdpZGdldEZhY3RvcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NvcGUuY3JlYXRlV2lkZ2V0RmFjdG9yeSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgbWV0cmljIGZhY3RvcnkuXG4gICAqL1xuICBjcmVhdGVNZXRyaWNGYWN0b3J5KCkge1xuICAgIHJldHVybiB0aGlzLnNjb3BlLmNyZWF0ZU1ldHJpY0ZhY3RvcnkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGFsYXJtIGZhY3RvcnkuXG4gICAqIEFsYXJtcyBjcmVhdGVkIHdpbGwgYmUgbmFtZWQgd2l0aCB0aGUgZ2l2ZW4gcHJlZml4LCB1bmxlc3MgYSBsb2NhbCBuYW1lIG92ZXJyaWRlIGlzIHByZXNlbnQuXG4gICAqIEBwYXJhbSBhbGFybU5hbWVQcmVmaXggYWxhcm0gbmFtZSBwcmVmaXhcbiAgICovXG4gIGNyZWF0ZUFsYXJtRmFjdG9yeShhbGFybU5hbWVQcmVmaXg6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnNjb3BlLmNyZWF0ZUFsYXJtRmFjdG9yeShcbiAgICAgIHRoaXMubG9jYWxBbGFybU5hbWVQcmVmaXhPdmVycmlkZSA/PyBhbGFybU5hbWVQcmVmaXgsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGFsYXJtLlxuICAgKiBAcGFyYW0gYWxhcm0gYWxhcm0gdG8gYWRkXG4gICAqL1xuICBhZGRBbGFybShhbGFybTogQWxhcm1XaXRoQW5ub3RhdGlvbikge1xuICAgIHRoaXMuYWxhcm1zLnB1c2goYWxhcm0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHRoZSBhbGFybXMgY3JlYXRlZC5cbiAgICovXG4gIGNyZWF0ZWRBbGFybXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxhcm1zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2lkZ2V0cyBmb3IgYWxsIGFsYXJtcy4gVGhlc2UgY2FuIGdvIHRvIHJ1bmJvb2sgb3IgdG8gc2VydmljZSBkYXNoYm9hcmQuXG4gICAqL1xuICBhbGFybVdpZGdldHMoKTogSVdpZGdldFtdIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVkQWxhcm1zKCkubWFwKChhbGFybSkgPT5cbiAgICAgIHRoaXMuY3JlYXRlV2lkZ2V0RmFjdG9yeSgpLmNyZWF0ZUFsYXJtRGV0YWlsV2lkZ2V0KGFsYXJtKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgd2lkZ2V0cyB0byBiZSBwbGFjZWQgb24gdGhlIHN1bW1hcnkgZGFzaGJvYXJkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHdpZGdldHMuXG4gICAqL1xuICBzdW1tYXJ5V2lkZ2V0cygpOiBJV2lkZ2V0W10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdpZGdldHMgdG8gYmUgcGxhY2VkIG9uIHRoZSBtYWluIGRhc2hib2FyZC5cbiAgICovXG4gIGFic3RyYWN0IHdpZGdldHMoKTogSVdpZGdldFtdO1xuXG4gIHdpZGdldHNGb3JEYXNoYm9hcmQobmFtZTogc3RyaW5nKTogSVdpZGdldFtdIHtcbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgRGVmYXVsdERhc2hib2FyZHMuU1VNTUFSWTpcbiAgICAgICAgcmV0dXJuIHRoaXMuc3VtbWFyeVdpZGdldHMoKTtcbiAgICAgIGNhc2UgRGVmYXVsdERhc2hib2FyZHMuREVUQUlMOlxuICAgICAgICByZXR1cm4gdGhpcy53aWRnZXRzKCk7XG4gICAgICBjYXNlIERlZmF1bHREYXNoYm9hcmRzLkFMQVJNUzpcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxhcm1XaWRnZXRzKCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG59XG4iXX0=