cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
79 lines • 8.46 kB
JavaScript
;
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=