@theia/metrics 1.77.0-next.4 → 1.77.0-next.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,7 @@ export declare class MeasurementMetricsBackendContribution implements MetricsCon
8
8
  readonly interests: readonly string[];
9
9
  readonly scope: 'local' | 'remote';
10
10
  protected logLevelCli: LogLevelCliContribution;
11
+ /** The accumulated samples. The `HELP`/`TYPE` header is prepended by `getMetrics` if there are any. */
11
12
  protected metrics: string;
12
13
  protected frontendCounters: Map<string, string>;
13
14
  startCollecting(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"measurement-metrics-contribution.d.ts","sourceRoot":"","sources":["../../src/node/measurement-metrics-contribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAY,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAEvF,OAAO,EAA6B,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,qBACa,qCAAsC,YAAW,mBAAmB,EAAE,aAAa;IAC5F,QAAQ,CAAC,EAAE,wBAAwB;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAA2B;IAChE,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAW;IAG7C,SAAS,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAE/C,SAAS,CAAC,OAAO,SAAM;IACvB,SAAS,CAAC,gBAAgB,sBAA6B;IAEvD,eAAe,IAAI,IAAI;IAQvB,UAAU,IAAI,MAAM;IAIpB,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAenC,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAI/D,SAAS,CAAC,SAAS,IAAI,OAAO;IAI9B,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,iBAAiB,GAAG,SAAS;IAcnF,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAOzE,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAM7D,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIjD,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAG7E"}
1
+ {"version":3,"file":"measurement-metrics-contribution.d.ts","sourceRoot":"","sources":["../../src/node/measurement-metrics-contribution.ts"],"names":[],"mappings":"AAeA,OAAO,EAAY,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AAEvF,OAAO,EAA6B,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D,qBACa,qCAAsC,YAAW,mBAAmB,EAAE,aAAa;IAC5F,QAAQ,CAAC,EAAE,wBAAwB;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAA2B;IAChE,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAW;IAG7C,SAAS,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAE/C,uGAAuG;IACvG,SAAS,CAAC,OAAO,SAAM;IACvB,SAAS,CAAC,gBAAgB,sBAA6B;IAEvD,eAAe,IAAI,IAAI;IAMvB,UAAU,IAAI,MAAM;IAIpB,MAAM,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAenC,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAI/D,SAAS,CAAC,SAAS,IAAI,OAAO;IAI9B,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,iBAAiB,GAAG,SAAS;IAcnF,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAOzE,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAM7D,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIjD,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAG7E"}
@@ -22,23 +22,23 @@ const logger_cli_contribution_1 = require("@theia/core/lib/node/logger-cli-contr
22
22
  const inversify_1 = require("@theia/core/shared/inversify");
23
23
  const common_1 = require("@theia/telemetry/lib/common");
24
24
  const metricsName = 'theia_measurements';
25
+ const metricsHeader = `# HELP ${metricsName} Theia stopwatch measurement results.\n# TYPE ${metricsName} gauge\n`;
25
26
  let MeasurementMetricsBackendContribution = class MeasurementMetricsBackendContribution {
26
27
  constructor() {
27
28
  this.id = 'theia/measurements';
28
29
  this.interests = ['theia/measurement/*'];
29
30
  this.scope = 'local';
31
+ /** The accumulated samples. The `HELP`/`TYPE` header is prepended by `getMetrics` if there are any. */
30
32
  this.metrics = '';
31
33
  this.frontendCounters = new Map();
32
34
  }
33
35
  startCollecting() {
34
- if (!this.isEnabled()) {
35
- return;
36
- }
37
- this.metrics += `# HELP ${metricsName} Theia stopwatch measurement results.\n`;
38
- this.metrics += `# TYPE ${metricsName} gauge\n`;
36
+ // Nothing to do: telemetry events are dispatched asynchronously and may be handled before
37
+ // collection starts, so the header is rendered by `getMetrics` instead. That also keeps it
38
+ // from being duplicated when collection is started more than once.
39
39
  }
40
40
  getMetrics() {
41
- return this.metrics;
41
+ return this.metrics ? metricsHeader + this.metrics : '';
42
42
  }
43
43
  handle(event) {
44
44
  if (!this.isEnabled()) {
@@ -1 +1 @@
1
- {"version":3,"file":"measurement-metrics-contribution.js","sourceRoot":"","sources":["../../src/node/measurement-metrics-contribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"measurement-metrics-contribution.js","sourceRoot":"","sources":["../../src/node/measurement-metrics-contribution.ts"],"names":[],"mappings":"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"}
@@ -108,6 +108,33 @@ describe('measurement telemetry integration', () => {
108
108
  (0, chai_1.expect)(metrics).to.contain('id="frontend-1", name="second"');
109
109
  (0, chai_1.expect)(metrics).to.contain('id="frontend-2", name="startup"');
110
110
  });
111
+ it('renders the header before samples handled before collection started', () => {
112
+ const contribution = new TestMeasurementMetricsBackendContribution();
113
+ contribution.configure(core_1.LogLevel.DEBUG);
114
+ contribution.handle(createEvent(common_1.BACKEND_TELEMETRY_SESSION, { ...storedResult }));
115
+ contribution.startCollecting();
116
+ contribution.handle(createEvent('frontend/session-a', { ...storedResult }));
117
+ const lines = contribution.getMetrics().split('\n');
118
+ (0, chai_1.expect)(lines[0]).to.equal('# HELP theia_measurements Theia stopwatch measurement results.');
119
+ (0, chai_1.expect)(lines[1]).to.equal('# TYPE theia_measurements gauge');
120
+ (0, chai_1.expect)(lines[2]).to.contain('id="backend"');
121
+ (0, chai_1.expect)(lines[3]).to.contain('id="frontend-1"');
122
+ });
123
+ it('does not duplicate the header when collection is started repeatedly', () => {
124
+ const contribution = new TestMeasurementMetricsBackendContribution();
125
+ contribution.configure(core_1.LogLevel.DEBUG);
126
+ contribution.startCollecting();
127
+ contribution.startCollecting();
128
+ contribution.handle(createEvent(common_1.BACKEND_TELEMETRY_SESSION, { ...storedResult }));
129
+ const headerLines = contribution.getMetrics().split('\n').filter(line => line.startsWith('#'));
130
+ (0, chai_1.expect)(headerLines).to.have.lengthOf(2);
131
+ });
132
+ it('renders nothing when no samples were collected', () => {
133
+ const contribution = new TestMeasurementMetricsBackendContribution();
134
+ contribution.configure(core_1.LogLevel.DEBUG);
135
+ contribution.startCollecting();
136
+ (0, chai_1.expect)(contribution.getMetrics()).to.equal('');
137
+ });
111
138
  it('does not append telemetry events above DEBUG level', () => {
112
139
  const contribution = new TestMeasurementMetricsBackendContribution();
113
140
  contribution.configure(core_1.LogLevel.INFO);
@@ -1 +1 @@
1
- {"version":3,"file":"measurement-telemetry-contribution.spec.js","sourceRoot":"","sources":["../../src/node/measurement-telemetry-contribution.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"measurement-telemetry-contribution.spec.js","sourceRoot":"","sources":["../../src/node/measurement-telemetry-contribution.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@theia/metrics",
3
- "version": "1.77.0-next.4+4f24ee401",
3
+ "version": "1.77.0-next.6+c1feaf3f9",
4
4
  "description": "Theia - Metrics Extension",
5
5
  "dependencies": {
6
- "@theia/core": "1.77.0-next.4+4f24ee401",
7
- "@theia/telemetry": "1.77.0-next.4+4f24ee401",
6
+ "@theia/core": "1.77.0-next.6+c1feaf3f9",
7
+ "@theia/telemetry": "1.77.0-next.6+c1feaf3f9",
8
8
  "prom-client": "^10.2.3",
9
9
  "tslib": "^2.8.1"
10
10
  },
@@ -50,5 +50,5 @@
50
50
  "nyc": {
51
51
  "extends": "../../configs/nyc.json"
52
52
  },
53
- "gitHead": "4f24ee40105b8c53808c8293c41387304d15960c"
53
+ "gitHead": "c1feaf3f9adaa19555ccbc4eff7214b5a6601f53"
54
54
  }
@@ -21,6 +21,7 @@ import { TelemetrySink } from '@theia/telemetry/lib/node';
21
21
  import { MetricsContribution } from './metrics-contribution';
22
22
 
23
23
  const metricsName = 'theia_measurements';
24
+ const metricsHeader = `# HELP ${metricsName} Theia stopwatch measurement results.\n# TYPE ${metricsName} gauge\n`;
24
25
 
25
26
  @injectable()
26
27
  export class MeasurementMetricsBackendContribution implements MetricsContribution, TelemetrySink {
@@ -31,19 +32,18 @@ export class MeasurementMetricsBackendContribution implements MetricsContributio
31
32
  @inject(LogLevelCliContribution)
32
33
  protected logLevelCli: LogLevelCliContribution;
33
34
 
35
+ /** The accumulated samples. The `HELP`/`TYPE` header is prepended by `getMetrics` if there are any. */
34
36
  protected metrics = '';
35
37
  protected frontendCounters = new Map<string, string>();
36
38
 
37
39
  startCollecting(): void {
38
- if (!this.isEnabled()) {
39
- return;
40
- }
41
- this.metrics += `# HELP ${metricsName} Theia stopwatch measurement results.\n`;
42
- this.metrics += `# TYPE ${metricsName} gauge\n`;
40
+ // Nothing to do: telemetry events are dispatched asynchronously and may be handled before
41
+ // collection starts, so the header is rendered by `getMetrics` instead. That also keeps it
42
+ // from being duplicated when collection is started more than once.
43
43
  }
44
44
 
45
45
  getMetrics(): string {
46
- return this.metrics;
46
+ return this.metrics ? metricsHeader + this.metrics : '';
47
47
  }
48
48
 
49
49
  handle(event: TelemetryEvent): void {
@@ -122,6 +122,42 @@ describe('measurement telemetry integration', () => {
122
122
  expect(metrics).to.contain('id="frontend-2", name="startup"');
123
123
  });
124
124
 
125
+ it('renders the header before samples handled before collection started', () => {
126
+ const contribution = new TestMeasurementMetricsBackendContribution();
127
+ contribution.configure(LogLevel.DEBUG);
128
+
129
+ contribution.handle(createEvent(BACKEND_TELEMETRY_SESSION, { ...storedResult }));
130
+ contribution.startCollecting();
131
+ contribution.handle(createEvent('frontend/session-a', { ...storedResult }));
132
+
133
+ const lines = contribution.getMetrics().split('\n');
134
+ expect(lines[0]).to.equal('# HELP theia_measurements Theia stopwatch measurement results.');
135
+ expect(lines[1]).to.equal('# TYPE theia_measurements gauge');
136
+ expect(lines[2]).to.contain('id="backend"');
137
+ expect(lines[3]).to.contain('id="frontend-1"');
138
+ });
139
+
140
+ it('does not duplicate the header when collection is started repeatedly', () => {
141
+ const contribution = new TestMeasurementMetricsBackendContribution();
142
+ contribution.configure(LogLevel.DEBUG);
143
+
144
+ contribution.startCollecting();
145
+ contribution.startCollecting();
146
+ contribution.handle(createEvent(BACKEND_TELEMETRY_SESSION, { ...storedResult }));
147
+
148
+ const headerLines = contribution.getMetrics().split('\n').filter(line => line.startsWith('#'));
149
+ expect(headerLines).to.have.lengthOf(2);
150
+ });
151
+
152
+ it('renders nothing when no samples were collected', () => {
153
+ const contribution = new TestMeasurementMetricsBackendContribution();
154
+ contribution.configure(LogLevel.DEBUG);
155
+
156
+ contribution.startCollecting();
157
+
158
+ expect(contribution.getMetrics()).to.equal('');
159
+ });
160
+
125
161
  it('does not append telemetry events above DEBUG level', () => {
126
162
  const contribution = new TestMeasurementMetricsBackendContribution();
127
163
  contribution.configure(LogLevel.INFO);