From cbee47f8da1165faae73d43323bbf0593ab2204c Mon Sep 17 00:00:00 2001 From: Pedro Ramos Date: Fri, 17 Nov 2023 14:04:17 +0100 Subject: [PATCH 1/4] Add method for new metric to be implemented --- src/recorder.ts | 4 ++++ test/recorder.spec.ts | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/recorder.ts b/src/recorder.ts index 07e8df1..4d7e0c8 100644 --- a/src/recorder.ts +++ b/src/recorder.ts @@ -20,6 +20,10 @@ export class Recorder { metadata['action'] = actionName; this.record(new Metric('action.executed', MetricType.Counter, 1, metadata)); } + async recordActionInvoke(actionName: string, metadata: MetricMetadata = {}) { + metadata['action'] = actionName; + this.record(new Metric('action.invoked', MetricType.Counter, 1, metadata)); + } async record(metric: Metric) { metric.name = this.prefix.endsWith('.') ? this.prefix + metric.name : `${ this.prefix }.${ metric.name }`; diff --git a/test/recorder.spec.ts b/test/recorder.spec.ts index 7db2cb3..a31a9e6 100644 --- a/test/recorder.spec.ts +++ b/test/recorder.spec.ts @@ -60,6 +60,16 @@ describe('Recorder', function() { expect(recorderMetricsSpy).toHaveLength(1); expect(recorderMetricsSpy[0]).toEqual(expectedMetric); }); + + it('recordActionInvoke()', async function() { + const recorderMetricsSpy = []; + const recorder = new Recorder('test', new testSink(), recorderMetricsSpy); + const expectedMetric = new Metric('test.action.invoked', MetricType.Counter, 1, { action: 'convert', success: true }); + + await recorder.recordActionInvoke('convert', { success: true }); + expect(recorderMetricsSpy).toHaveLength(1); + expect(recorderMetricsSpy[0]).toEqual(expectedMetric); + }); it('WithPeriodicFlushRecorder()', async function() { jest.useFakeTimers(); // this mocks setTimeout global function From b29205bc68822ff1512b18d8786acf4ad297df59 Mon Sep 17 00:00:00 2001 From: Pedro Ramos Date: Fri, 17 Nov 2023 16:58:20 +0100 Subject: [PATCH 2/4] Change naming for some methods and update some metadata sent --- src/recorder.ts | 4 ++-- test/recorder.spec.ts | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/recorder.ts b/src/recorder.ts index 4d7e0c8..0802500 100644 --- a/src/recorder.ts +++ b/src/recorder.ts @@ -16,11 +16,11 @@ export class Recorder { this.record(new Metric(name, MetricType.Gauge, value, metadata)); } - async recordActionExecution(actionName: string, metadata: MetricMetadata = {}) { + async recordActionExecuted(actionName: string, metadata: MetricMetadata = {}) { metadata['action'] = actionName; this.record(new Metric('action.executed', MetricType.Counter, 1, metadata)); } - async recordActionInvoke(actionName: string, metadata: MetricMetadata = {}) { + async recordActionInvoked(actionName: string, metadata: MetricMetadata = {}) { metadata['action'] = actionName; this.record(new Metric('action.invoked', MetricType.Counter, 1, metadata)); } diff --git a/test/recorder.spec.ts b/test/recorder.spec.ts index a31a9e6..8720900 100644 --- a/test/recorder.spec.ts +++ b/test/recorder.spec.ts @@ -51,22 +51,22 @@ describe('Recorder', function() { expect(recorderMetricsSpy[0]).toEqual(expectedMetric); }); - it('recordActionExecution()', async function() { + it('recordActionExecuted()', async function() { const recorderMetricsSpy = []; const recorder = new Recorder('test', new testSink(), recorderMetricsSpy); const expectedMetric = new Metric('test.action.executed', MetricType.Counter, 1, { action: 'validate', success: true }); - await recorder.recordActionExecution('validate', { success: true }); + await recorder.recordActionExecuted('validate', { success: true }); expect(recorderMetricsSpy).toHaveLength(1); expect(recorderMetricsSpy[0]).toEqual(expectedMetric); }); - it('recordActionInvoke()', async function() { + it('recordActionInvoked()', async function() { const recorderMetricsSpy = []; const recorder = new Recorder('test', new testSink(), recorderMetricsSpy); - const expectedMetric = new Metric('test.action.invoked', MetricType.Counter, 1, { action: 'convert', success: true }); + const expectedMetric = new Metric('test.action.invoked', MetricType.Counter, 1, { action: 'convert' }); - await recorder.recordActionInvoke('convert', { success: true }); + await recorder.recordActionInvoked('convert'); expect(recorderMetricsSpy).toHaveLength(1); expect(recorderMetricsSpy[0]).toEqual(expectedMetric); }); @@ -78,7 +78,7 @@ describe('Recorder', function() { const {recorder, stop} = WithPeriodicFlushRecorder(new Recorder('test', sink, recorderMetricsSpy), 100); const expectedMetric = new Metric('test.action.executed', MetricType.Counter, 1, { action: 'validate', success: true }); - await recorder.recordActionExecution('validate', { success: true }); + await recorder.recordActionExecuted('validate', { success: true }); expect(recorderMetricsSpy).toHaveLength(1); expect(recorderMetricsSpy[0]).toEqual(expectedMetric); From 8ddb29611115fecec35227ac9c3c73b2c91c0296 Mon Sep 17 00:00:00 2001 From: Pedro Ramos Date: Tue, 30 Jan 2024 19:24:17 +0100 Subject: [PATCH 3/4] Rename one of the metrics --- src/recorder.ts | 4 ++-- test/recorder.spec.ts | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/recorder.ts b/src/recorder.ts index 0802500..0954bc6 100644 --- a/src/recorder.ts +++ b/src/recorder.ts @@ -16,9 +16,9 @@ export class Recorder { this.record(new Metric(name, MetricType.Gauge, value, metadata)); } - async recordActionExecuted(actionName: string, metadata: MetricMetadata = {}) { + async recordActionFinished(actionName: string, metadata: MetricMetadata = {}) { metadata['action'] = actionName; - this.record(new Metric('action.executed', MetricType.Counter, 1, metadata)); + this.record(new Metric('action.finished', MetricType.Counter, 1, metadata)); } async recordActionInvoked(actionName: string, metadata: MetricMetadata = {}) { metadata['action'] = actionName; diff --git a/test/recorder.spec.ts b/test/recorder.spec.ts index 8720900..49ac4cd 100644 --- a/test/recorder.spec.ts +++ b/test/recorder.spec.ts @@ -51,12 +51,12 @@ describe('Recorder', function() { expect(recorderMetricsSpy[0]).toEqual(expectedMetric); }); - it('recordActionExecuted()', async function() { + it('recordActionFinished()', async function() { const recorderMetricsSpy = []; const recorder = new Recorder('test', new testSink(), recorderMetricsSpy); - const expectedMetric = new Metric('test.action.executed', MetricType.Counter, 1, { action: 'validate', success: true }); + const expectedMetric = new Metric('test.action.finished', MetricType.Counter, 1, { action: 'validate', success: true }); - await recorder.recordActionExecuted('validate', { success: true }); + await recorder.recordActionFinished('validate', { success: true }); expect(recorderMetricsSpy).toHaveLength(1); expect(recorderMetricsSpy[0]).toEqual(expectedMetric); }); @@ -76,9 +76,9 @@ describe('Recorder', function() { const sink = new testSink(); const recorderMetricsSpy = []; const {recorder, stop} = WithPeriodicFlushRecorder(new Recorder('test', sink, recorderMetricsSpy), 100); - const expectedMetric = new Metric('test.action.executed', MetricType.Counter, 1, { action: 'validate', success: true }); + const expectedMetric = new Metric('test.action.finished', MetricType.Counter, 1, { action: 'validate', success: true }); - await recorder.recordActionExecuted('validate', { success: true }); + await recorder.recordActionFinished('validate', { success: true }); expect(recorderMetricsSpy).toHaveLength(1); expect(recorderMetricsSpy[0]).toEqual(expectedMetric); From 4311889acec1730b7698d4bf98d4509f8079a2ce Mon Sep 17 00:00:00 2001 From: Pedro Ramos Date: Fri, 15 Mar 2024 10:49:08 +0100 Subject: [PATCH 4/4] Update multi-parser to 5.0.4 --- package-lock.json | 24 ++++++++++++------------ package.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2458071..6e63893 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "license": "Apache-2.0", "dependencies": { - "@smoya/multi-parser": "^5.0.3" + "@smoya/multi-parser": "^5.0.4" }, "devDependencies": { "@jest/types": "^29.0.2", @@ -1615,9 +1615,9 @@ } }, "node_modules/@smoya/multi-parser": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@smoya/multi-parser/-/multi-parser-5.0.3.tgz", - "integrity": "sha512-XrSIsLdBeWOo7f61qpaoSPFyE5ctuspSAJZ7pZ08OqY3M7zLiTQi8w37AV4rxOg35+2VRGorzYBycx2bvwe4uw==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@smoya/multi-parser/-/multi-parser-5.0.4.tgz", + "integrity": "sha512-qJKqAWWNg+PO4MphUpwnxPE4Y3ekBOtLvupH5M2YK5NJ00HVB7zClLL+02PXKDKOb7ogXyxG9b3lArvFDDOR2Q==", "dependencies": { "@asyncapi/avro-schema-parser": "^3.0.3", "@asyncapi/openapi-schema-parser": "^3.0.4", @@ -1625,7 +1625,7 @@ "@asyncapi/raml-dt-schema-parser": "^4.0.4", "parserapiv1": "npm:@asyncapi/parser@^2.1.0", "parserapiv2": "npm:@asyncapi/parser@3.0.0-next-major-spec.8", - "parserapiv3": "npm:@asyncapi/parser@^3.0.7" + "parserapiv3": "npm:@asyncapi/parser@^3.0.9" } }, "node_modules/@stoplight/json": { @@ -7329,11 +7329,11 @@ }, "node_modules/parserapiv3": { "name": "@asyncapi/parser", - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.7.tgz", - "integrity": "sha512-CKdkZbhs+2Mw7M2UZPypKEhKuaF+o5qZB2TQc0pDf+Wr09uEnm6WTdyqzmMGVb5fkQYApu8psQeDyVMbhfoWXQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@asyncapi/parser/-/parser-3.0.10.tgz", + "integrity": "sha512-x9qo7SHGzPWbC1XCRyilcI+Z6UZsWZ9uRl05h9j4G/v+3IjNG3krwngiAbt59nbLlYZD/nBS7Hc03GayoocnQw==", "dependencies": { - "@asyncapi/specs": "^6.5.0", + "@asyncapi/specs": "^6.5.3", "@openapi-contrib/openapi-schema-to-json-schema": "~3.2.0", "@stoplight/json": "^3.20.2", "@stoplight/json-ref-readers": "^1.2.2", @@ -7355,9 +7355,9 @@ } }, "node_modules/parserapiv3/node_modules/@asyncapi/specs": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.5.0.tgz", - "integrity": "sha512-84QUcfMT05+vvHO5EnSI0I5OZKzMgF/i3vgw92ghk1l52VM/lb3qNnuARzyo+uHJ9kmIb5+naK9wTuliVOdzmg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/@asyncapi/specs/-/specs-6.5.3.tgz", + "integrity": "sha512-mZROlCOLkZEWy5tN4pPop3JEJflSKmLLMGO1TebF5wjnroqZ3yp/GuGUxVIl3jVNxFk1i5nZ2AtWzAD/HaUj3Q==", "dependencies": { "@types/json-schema": "^7.0.11" } diff --git a/package.json b/package.json index 977ea46..110d7fe 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "prepublishOnly": "npm run generate:assets" }, "dependencies": { - "@smoya/multi-parser": "^5.0.3" + "@smoya/multi-parser": "^5.0.4" }, "devDependencies": { "@jest/types": "^29.0.2",