package.dist.src.config.middleware.experimental-metrics-logging-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.ExperimentalMetricsLoggingMiddleware = void 0;
const experimental_metrics_middleware_1 = require("./impl/experimental-metrics-middleware");
class ExperimentalMetricsLoggingMiddlewareRequestHandler extends experimental_metrics_middleware_1.ExperimentalMetricsMiddlewareRequestHandler {
constructor(parent, logger, context) {
super(parent, logger, context);
}
emitMetrics(metrics) {
this.logger.info(JSON.stringify(metrics));
return Promise.resolve();
}
}
/**
* This middleware enables per-request client-side metrics. Metrics for each
* request will be written to logs; the log data can be analyzed or shared
* with Momento to diagnose performance issues.
*
* The metrics format is currently considered experimental; in a future release,
* once the format is considered stable, this class will be renamed to remove
* the Experimental prefix.
*
* It also enables regular logging of congestion in the node event loop. Once
* per second it will output the event loop utilization ratio, as well as stats
* about the event loop delay, measured in 20ms increments.
*
* WARNING: enabling this middleware may have minor performance implications,
* so enable with caution.
*
* WARNING: depending on your request volume, this middleware will produce a high
* volume of log output. If you are writing logs directly to local disk, be aware
* of disk usage and make sure you have log rotation / compression enabled via a
* tool such as `logrotate`.
*
* See `advanced.ts` in the examples directory for an example of how to set up
* your {Configuration} to enable this middleware.
*/
class ExperimentalMetricsLoggingMiddleware extends experimental_metrics_middleware_1.ExperimentalMetricsMiddleware {
constructor(loggerFactory) {
super(loggerFactory, (p, l, c) => new ExperimentalMetricsLoggingMiddlewareRequestHandler(p, l, c));
}
}
exports.ExperimentalMetricsLoggingMiddleware = ExperimentalMetricsLoggingMiddleware;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwZXJpbWVudGFsLW1ldHJpY3MtbG9nZ2luZy1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbmZpZy9taWRkbGV3YXJlL2V4cGVyaW1lbnRhbC1tZXRyaWNzLWxvZ2dpbmctbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw0RkFJZ0Q7QUFHaEQsTUFBTSxrREFBbUQsU0FBUSw2RUFBMkM7SUFDMUcsWUFDRSxNQUFxQyxFQUNyQyxNQUFxQixFQUNyQixPQUF3QztRQUV4QyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQW1DO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMxQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFhLG9DQUFxQyxTQUFRLCtEQUE2QjtJQUNyRixZQUFZLGFBQW1DO1FBQzdDLEtBQUssQ0FDSCxhQUFhLEVBQ2IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ1YsSUFBSSxrREFBa0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBUkQsb0ZBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vbWVudG9Mb2dnZXIsIE1vbWVudG9Mb2dnZXJGYWN0b3J5fSBmcm9tICcuLi8uLi8nO1xuaW1wb3J0IHtcbiAgRXhwZXJpbWVudGFsTWV0cmljc01pZGRsZXdhcmUsXG4gIEV4cGVyaW1lbnRhbE1ldHJpY3NNaWRkbGV3YXJlUmVxdWVzdEhhbmRsZXIsXG4gIEV4cGVyaW1lbnRhbFJlcXVlc3RNZXRyaWNzLFxufSBmcm9tICcuL2ltcGwvZXhwZXJpbWVudGFsLW1ldHJpY3MtbWlkZGxld2FyZSc7XG5pbXBvcnQge01pZGRsZXdhcmVSZXF1ZXN0SGFuZGxlckNvbnRleHR9IGZyb20gJy4vbWlkZGxld2FyZSc7XG5cbmNsYXNzIEV4cGVyaW1lbnRhbE1ldHJpY3NMb2dnaW5nTWlkZGxld2FyZVJlcXVlc3RIYW5kbGVyIGV4dGVuZHMgRXhwZXJpbWVudGFsTWV0cmljc01pZGRsZXdhcmVSZXF1ZXN0SGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHBhcmVudDogRXhwZXJpbWVudGFsTWV0cmljc01pZGRsZXdhcmUsXG4gICAgbG9nZ2VyOiBNb21lbnRvTG9nZ2VyLFxuICAgIGNvbnRleHQ6IE1pZGRsZXdhcmVSZXF1ZXN0SGFuZGxlckNvbnRleHRcbiAgKSB7XG4gICAgc3VwZXIocGFyZW50LCBsb2dnZXIsIGNvbnRleHQpO1xuICB9XG5cbiAgZW1pdE1ldHJpY3MobWV0cmljczogRXhwZXJpbWVudGFsUmVxdWVzdE1ldHJpY3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKEpTT04uc3RyaW5naWZ5KG1ldHJpY3MpKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIG1pZGRsZXdhcmUgZW5hYmxlcyBwZXItcmVxdWVzdCBjbGllbnQtc2lkZSBtZXRyaWNzLiAgTWV0cmljcyBmb3IgZWFjaFxuICogcmVxdWVzdCB3aWxsIGJlIHdyaXR0ZW4gdG8gbG9nczsgdGhlIGxvZyBkYXRhIGNhbiBiZSBhbmFseXplZCBvciBzaGFyZWRcbiAqIHdpdGggTW9tZW50byB0byBkaWFnbm9zZSBwZXJmb3JtYW5jZSBpc3N1ZXMuXG4gKlxuICogVGhlIG1ldHJpY3MgZm9ybWF0IGlzIGN1cnJlbnRseSBjb25zaWRlcmVkIGV4cGVyaW1lbnRhbDsgaW4gYSBmdXR1cmUgcmVsZWFzZSxcbiAqIG9uY2UgdGhlIGZvcm1hdCBpcyBjb25zaWRlcmVkIHN0YWJsZSwgdGhpcyBjbGFzcyB3aWxsIGJlIHJlbmFtZWQgdG8gcmVtb3ZlXG4gKiB0aGUgRXhwZXJpbWVudGFsIHByZWZpeC5cbiAqXG4gKiBJdCBhbHNvIGVuYWJsZXMgcmVndWxhciBsb2dnaW5nIG9mIGNvbmdlc3Rpb24gaW4gdGhlIG5vZGUgZXZlbnQgbG9vcC4gT25jZVxuICogcGVyIHNlY29uZCBpdCB3aWxsIG91dHB1dCB0aGUgZXZlbnQgbG9vcCB1dGlsaXphdGlvbiByYXRpbywgYXMgd2VsbCBhcyBzdGF0c1xuICogYWJvdXQgdGhlIGV2ZW50IGxvb3AgZGVsYXksIG1lYXN1cmVkIGluIDIwbXMgaW5jcmVtZW50cy5cbiAqXG4gKiBXQVJOSU5HOiBlbmFibGluZyB0aGlzIG1pZGRsZXdhcmUgbWF5IGhhdmUgbWlub3IgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25zLFxuICogc28gZW5hYmxlIHdpdGggY2F1dGlvbi5cbiAqXG4gKiBXQVJOSU5HOiBkZXBlbmRpbmcgb24geW91ciByZXF1ZXN0IHZvbHVtZSwgdGhpcyBtaWRkbGV3YXJlIHdpbGwgcHJvZHVjZSBhIGhpZ2hcbiAqIHZvbHVtZSBvZiBsb2cgb3V0cHV0LiBJZiB5b3UgYXJlIHdyaXRpbmcgbG9ncyBkaXJlY3RseSB0byBsb2NhbCBkaXNrLCBiZSBhd2FyZVxuICogb2YgZGlzayB1c2FnZSBhbmQgbWFrZSBzdXJlIHlvdSBoYXZlIGxvZyByb3RhdGlvbiAvIGNvbXByZXNzaW9uIGVuYWJsZWQgdmlhIGFcbiAqIHRvb2wgc3VjaCBhcyBgbG9ncm90YXRlYC5cbiAqXG4gKiBTZWUgYGFkdmFuY2VkLnRzYCBpbiB0aGUgZXhhbXBsZXMgZGlyZWN0b3J5IGZvciBhbiBleGFtcGxlIG9mIGhvdyB0byBzZXQgdXBcbiAqIHlvdXIge0NvbmZpZ3VyYXRpb259IHRvIGVuYWJsZSB0aGlzIG1pZGRsZXdhcmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHBlcmltZW50YWxNZXRyaWNzTG9nZ2luZ01pZGRsZXdhcmUgZXh0ZW5kcyBFeHBlcmltZW50YWxNZXRyaWNzTWlkZGxld2FyZSB7XG4gIGNvbnN0cnVjdG9yKGxvZ2dlckZhY3Rvcnk6IE1vbWVudG9Mb2dnZXJGYWN0b3J5KSB7XG4gICAgc3VwZXIoXG4gICAgICBsb2dnZXJGYWN0b3J5LFxuICAgICAgKHAsIGwsIGMpID0+XG4gICAgICAgIG5ldyBFeHBlcmltZW50YWxNZXRyaWNzTG9nZ2luZ01pZGRsZXdhcmVSZXF1ZXN0SGFuZGxlcihwLCBsLCBjKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==