package.dist.src.config.middleware.experimental-active-request-count-middleware.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sdk Show documentation
Show all versions of sdk Show documentation
Client SDK for Momento services
The newest version!
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExperimentalActiveRequestCountLoggingMiddleware = void 0;
const experimental_metrics_middleware_1 = require("./impl/experimental-metrics-middleware");
class ExperimentalActiveRequestCountLoggingMiddlewareRequestHandler extends experimental_metrics_middleware_1.ExperimentalMetricsMiddlewareRequestHandler {
constructor(parent, logger, context) {
super(parent, logger, context);
}
recordMetrics() {
this.parent.decrementActiveRequestCount();
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
emitMetrics(metrics) {
return Promise.resolve();
}
}
/**
* This middleware enables a periodic task to emit the active request count every second as a JSON
*
* See `advanced.ts` in the examples directory for an example of how to set up
* your {Configuration} to enable this middleware.
*/
class ExperimentalActiveRequestCountLoggingMiddleware extends experimental_metrics_middleware_1.ExperimentalMetricsMiddleware {
constructor(loggerFactory) {
super(loggerFactory, (p, l, c) => new ExperimentalActiveRequestCountLoggingMiddlewareRequestHandler(p, l, c));
this.isLoggingStarted = false;
this.metricsLogInterval = 1000;
// this is typed as any because JS returns a number for intervalId but
// TS returns a NodeJS.Timeout.
// eslint-disable-next-line @typescript-eslint/no-explicit-any
this.intervalId = null; // Store the interval ID
}
init() {
if (!this.isLoggingStarted) {
this.isLoggingStarted = true;
this.startLogging();
}
}
startLogging() {
this.intervalId = setInterval(() => {
const metrics = {
activeRequestCount: this.activeRequestCount(),
timestamp: Date.now(),
};
this.logger.info(JSON.stringify(metrics));
}, this.metricsLogInterval);
}
close() {
if (this.intervalId !== null) {
this.logger.debug('Stopping active request count metrics logging.');
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
clearInterval(this.intervalId);
this.intervalId = null;
this.isLoggingStarted = false;
this.logger.debug('Active request count metrics logging stopped.');
}
}
}
exports.ExperimentalActiveRequestCountLoggingMiddleware = ExperimentalActiveRequestCountLoggingMiddleware;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwZXJpbWVudGFsLWFjdGl2ZS1yZXF1ZXN0LWNvdW50LW1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29uZmlnL21pZGRsZXdhcmUvZXhwZXJpbWVudGFsLWFjdGl2ZS1yZXF1ZXN0LWNvdW50LW1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsNEZBSWdEO0FBRWhELE1BQU0sNkRBQThELFNBQVEsNkVBQTJDO0lBQ3JILFlBQ0UsTUFBcUMsRUFDckMsTUFBcUIsRUFDckIsT0FBd0M7UUFFeEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVrQixhQUFhO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELFdBQVcsQ0FBQyxPQUFtQztRQUM3QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFFRDs7Ozs7R0FLRztBQUNILE1BQWEsK0NBQWdELFNBQVEsK0RBQTZCO0lBUWhHLFlBQVksYUFBbUM7UUFDN0MsS0FBSyxDQUNILGFBQWEsRUFDYixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDVixJQUFJLDZEQUE2RCxDQUMvRCxDQUFDLEVBQ0QsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUNKLENBQUM7UUFoQkkscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUMzQyxzRUFBc0U7UUFDdEUsK0JBQStCO1FBQy9CLDhEQUE4RDtRQUN0RCxlQUFVLEdBQWUsSUFBSSxDQUFDLENBQUMsd0JBQXdCO0lBWS9ELENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBQzdCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNqQyxNQUFNLE9BQU8sR0FBRztnQkFDZCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQzdDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQ3RCLENBQUM7WUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksRUFBRTtZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1lBQ3BFLGlFQUFpRTtZQUNqRSxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztTQUNwRTtJQUNILENBQUM7Q0FDRjtBQS9DRCwwR0ErQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vbWVudG9Mb2dnZXIsIE1vbWVudG9Mb2dnZXJGYWN0b3J5fSBmcm9tICcuLi8uLi8nO1xuaW1wb3J0IHtNaWRkbGV3YXJlUmVxdWVzdEhhbmRsZXJDb250ZXh0fSBmcm9tICcuL21pZGRsZXdhcmUnO1xuaW1wb3J0IHtcbiAgRXhwZXJpbWVudGFsTWV0cmljc01pZGRsZXdhcmUsXG4gIEV4cGVyaW1lbnRhbE1ldHJpY3NNaWRkbGV3YXJlUmVxdWVzdEhhbmRsZXIsXG4gIEV4cGVyaW1lbnRhbFJlcXVlc3RNZXRyaWNzLFxufSBmcm9tICcuL2ltcGwvZXhwZXJpbWVudGFsLW1ldHJpY3MtbWlkZGxld2FyZSc7XG5cbmNsYXNzIEV4cGVyaW1lbnRhbEFjdGl2ZVJlcXVlc3RDb3VudExvZ2dpbmdNaWRkbGV3YXJlUmVxdWVzdEhhbmRsZXIgZXh0ZW5kcyBFeHBlcmltZW50YWxNZXRyaWNzTWlkZGxld2FyZVJlcXVlc3RIYW5kbGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcGFyZW50OiBFeHBlcmltZW50YWxNZXRyaWNzTWlkZGxld2FyZSxcbiAgICBsb2dnZXI6IE1vbWVudG9Mb2dnZXIsXG4gICAgY29udGV4dDogTWlkZGxld2FyZVJlcXVlc3RIYW5kbGVyQ29udGV4dFxuICApIHtcbiAgICBzdXBlcihwYXJlbnQsIGxvZ2dlciwgY29udGV4dCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVjb3JkTWV0cmljcygpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudC5kZWNyZW1lbnRBY3RpdmVSZXF1ZXN0Q291bnQoKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgZW1pdE1ldHJpY3MobWV0cmljczogRXhwZXJpbWVudGFsUmVxdWVzdE1ldHJpY3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIG1pZGRsZXdhcmUgZW5hYmxlcyBhIHBlcmlvZGljIHRhc2sgdG8gZW1pdCB0aGUgYWN0aXZlIHJlcXVlc3QgY291bnQgZXZlcnkgc2Vjb25kIGFzIGEgSlNPTlxuICpcbiAqIFNlZSBgYWR2YW5jZWQudHNgIGluIHRoZSBleGFtcGxlcyBkaXJlY3RvcnkgZm9yIGFuIGV4YW1wbGUgb2YgaG93IHRvIHNldCB1cFxuICogeW91ciB7Q29uZmlndXJhdGlvbn0gdG8gZW5hYmxlIHRoaXMgbWlkZGxld2FyZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEV4cGVyaW1lbnRhbEFjdGl2ZVJlcXVlc3RDb3VudExvZ2dpbmdNaWRkbGV3YXJlIGV4dGVuZHMgRXhwZXJpbWVudGFsTWV0cmljc01pZGRsZXdhcmUge1xuICBwcml2YXRlIGlzTG9nZ2luZ1N0YXJ0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBtZXRyaWNzTG9nSW50ZXJ2YWwgPSAxMDAwO1xuICAvLyB0aGlzIGlzIHR5cGVkIGFzIGFueSBiZWNhdXNlIEpTIHJldHVybnMgYSBudW1iZXIgZm9yIGludGVydmFsSWQgYnV0XG4gIC8vIFRTIHJldHVybnMgYSBOb2RlSlMuVGltZW91dC5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcHJpdmF0ZSBpbnRlcnZhbElkOiBhbnkgfCBudWxsID0gbnVsbDsgLy8gU3RvcmUgdGhlIGludGVydmFsIElEXG5cbiAgY29uc3RydWN0b3IobG9nZ2VyRmFjdG9yeTogTW9tZW50b0xvZ2dlckZhY3RvcnkpIHtcbiAgICBzdXBlcihcbiAgICAgIGxvZ2dlckZhY3RvcnksXG4gICAgICAocCwgbCwgYykgPT5cbiAgICAgICAgbmV3IEV4cGVyaW1lbnRhbEFjdGl2ZVJlcXVlc3RDb3VudExvZ2dpbmdNaWRkbGV3YXJlUmVxdWVzdEhhbmRsZXIoXG4gICAgICAgICAgcCxcbiAgICAgICAgICBsLFxuICAgICAgICAgIGNcbiAgICAgICAgKVxuICAgICk7XG4gIH1cblxuICBpbml0KCkge1xuICAgIGlmICghdGhpcy5pc0xvZ2dpbmdTdGFydGVkKSB7XG4gICAgICB0aGlzLmlzTG9nZ2luZ1N0YXJ0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdGFydExvZ2dpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0TG9nZ2luZygpOiB2b2lkIHtcbiAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBjb25zdCBtZXRyaWNzID0ge1xuICAgICAgICBhY3RpdmVSZXF1ZXN0Q291bnQ6IHRoaXMuYWN0aXZlUmVxdWVzdENvdW50KCksXG4gICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgIH07XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKEpTT04uc3RyaW5naWZ5KG1ldHJpY3MpKTtcbiAgICB9LCB0aGlzLm1ldHJpY3NMb2dJbnRlcnZhbCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICBpZiAodGhpcy5pbnRlcnZhbElkICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU3RvcHBpbmcgYWN0aXZlIHJlcXVlc3QgY291bnQgbWV0cmljcyBsb2dnaW5nLicpO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXJndW1lbnRcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IG51bGw7XG4gICAgICB0aGlzLmlzTG9nZ2luZ1N0YXJ0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBY3RpdmUgcmVxdWVzdCBjb3VudCBtZXRyaWNzIGxvZ2dpbmcgc3RvcHBlZC4nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==