diff options
Diffstat (limited to 'node_modules/@jet/engine/lib/metrics/metrics-pipeline.js')
| -rw-r--r-- | node_modules/@jet/engine/lib/metrics/metrics-pipeline.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/node_modules/@jet/engine/lib/metrics/metrics-pipeline.js b/node_modules/@jet/engine/lib/metrics/metrics-pipeline.js new file mode 100644 index 0000000..07f6e6d --- /dev/null +++ b/node_modules/@jet/engine/lib/metrics/metrics-pipeline.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MetricsPipeline = exports.FlushBehavior = void 0; +const metrics_fields_builder_1 = require("./aggregating/metrics-fields-builder"); +var FlushBehavior; +(function (FlushBehavior) { + FlushBehavior[FlushBehavior["automatic"] = 0] = "automatic"; + FlushBehavior[FlushBehavior["never"] = 1] = "never"; +})(FlushBehavior = exports.FlushBehavior || (exports.FlushBehavior = {})); +class MetricsPipeline { + constructor(options) { + var _a; + this.aggregator = options.aggregator; + this.linter = options.linter; + this.recorder = options.recorder; + this.flushBehavior = (_a = options.flushBehavior) !== null && _a !== void 0 ? _a : FlushBehavior.automatic; + } + async process(data, context) { + const builder = new metrics_fields_builder_1.SimpleMetricsFieldsBuilder(data.fields); + this.aggregator.addMetricsFields({ + including: data.includingFields, + excluding: data.excludingFields, + builder: builder, + context: context, + }); + const lintedEvent = await this.linter.processEvent(builder.allMetricsFields); + this.recorder.record(lintedEvent, data.topic); + if (data.shouldFlush && this.flushBehavior === FlushBehavior.automatic) { + void this.recorder.flush(); + } + return lintedEvent; + } +} +exports.MetricsPipeline = MetricsPipeline; |
