summaryrefslogtreecommitdiff
path: root/node_modules/@jet/engine/lib/metrics/metrics-pipeline.js
diff options
context:
space:
mode:
authorrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
committerrxliuli <rxliuli@gmail.com>2025-11-04 05:03:50 +0800
commitbce557cc2dc767628bed6aac87301a1be7c5431b (patch)
treeb51a051228d01fe3306cd7626d4a96768aadb944 /node_modules/@jet/engine/lib/metrics/metrics-pipeline.js
init commit
Diffstat (limited to 'node_modules/@jet/engine/lib/metrics/metrics-pipeline.js')
-rw-r--r--node_modules/@jet/engine/lib/metrics/metrics-pipeline.js34
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;