diffusion
Version:
Diffusion JavaScript client
68 lines (67 loc) • 2.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SessionMetricCollectorBuilderImpl = void 0;
var session_metric_collector_1 = require("./../../services/metric-collectors/session-metric-collector");
var math_1 = require("./../../util/math");
var require_non_null_1 = require("./../../util/require-non-null");
/**
* Implementations of {@link SessionMetricCollectorBuilder}
*/
var SessionMetricCollectorBuilderImpl = /** @class */ (function () {
function SessionMetricCollectorBuilderImpl() {
this.reset();
}
/**
* @inheritdoc
*/
SessionMetricCollectorBuilderImpl.prototype.reset = function () {
this.exportToPrometheusProp = false;
this.maximumGroupsProp = math_1.MAX_INT32;
this.groupByPropertiesProp = [];
this.removesMetricsWithNoMatchesProp = false;
return this;
};
/**
* @inheritdoc
*/
SessionMetricCollectorBuilderImpl.prototype.exportToPrometheus = function (exportMetrics) {
this.exportToPrometheusProp = exportMetrics;
return this;
};
/**
* @inheritdoc
*/
SessionMetricCollectorBuilderImpl.prototype.maximumGroups = function (limit) {
this.maximumGroupsProp = limit;
return this;
};
/**
* @inheritdoc
*/
SessionMetricCollectorBuilderImpl.prototype.groupByProperty = function (propertyName) {
this.groupByPropertiesProp.push(require_non_null_1.requireNonNull(propertyName, 'propertyName'));
return this;
};
/**
* @inheritdoc
*/
SessionMetricCollectorBuilderImpl.prototype.groupByProperties = function (propertyNames) {
this.groupByPropertiesProp = require_non_null_1.requireNonNull(propertyNames, 'propertyNames');
return this;
};
/**
* @inheritdoc
*/
SessionMetricCollectorBuilderImpl.prototype.removeMetricsWithNoMatches = function (remove) {
this.removesMetricsWithNoMatchesProp = remove;
return this;
};
/**
* @inheritdoc
*/
SessionMetricCollectorBuilderImpl.prototype.create = function (name, sessionFilter) {
return new session_metric_collector_1.SessionMetricCollectorImpl(require_non_null_1.requireNonNull(name, 'name'), this.exportToPrometheusProp, this.maximumGroupsProp, this.removesMetricsWithNoMatchesProp, require_non_null_1.requireNonNull(sessionFilter, 'sessionFilter'), this.groupByPropertiesProp);
};
return SessionMetricCollectorBuilderImpl;
}());
exports.SessionMetricCollectorBuilderImpl = SessionMetricCollectorBuilderImpl;