@forge/runtime 5.6.0 → 5.6.1-next.0

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @forge/runtime
2
2
 
3
+ ## 5.6.1-next.0
4
+
5
+ ### Patch Changes
6
+
7
+ - f8a4714: Use InMemoryMetrics from the Node monorepo
8
+ - Updated dependencies [f8a4714]
9
+ - @forge/util@1.4.3-next.0
10
+
3
11
  ## 5.6.0
4
12
 
5
13
  ### Minor Changes
@@ -65,8 +65,7 @@ class AppManifest {
65
65
  return found === null || found === void 0 ? void 0 : found.baseUrl;
66
66
  }
67
67
  getDefaultRemoteForProvider(provider) {
68
- var _a;
69
- const providerConfig = (_a = this.manifest.providers) === null || _a === void 0 ? void 0 : _a.auth.find((v) => v.key === provider);
68
+ const providerConfig = this.getExternalAuthProviderConfig(provider);
70
69
  const remotes = providerConfig === null || providerConfig === void 0 ? void 0 : providerConfig.remotes;
71
70
  if (remotes && remotes.length > 0) {
72
71
  return remotes[0];
@@ -1,12 +1,9 @@
1
- import { Counter, Gauge, Metrics, Tags, Timing } from '@forge/util/packages/metrics-interface';
1
+ import { Metrics, Tags } from '@forge/util/packages/metrics-interface';
2
2
  import { BaseInvocationRequest } from '../sandbox/invocation-request';
3
- import { InMemoryMetrics } from './in-memory-metrics';
4
- export { InMemoryMetrics };
5
3
  export declare enum MetricType {
6
4
  TimerMetric = "timer",
7
5
  CounterMetric = "counter",
8
- GaugeMetric = "gauge",
9
- EventMetric = "event"
6
+ GaugeMetric = "gauge"
10
7
  }
11
8
  export interface Metric {
12
9
  name: string;
@@ -14,22 +11,6 @@ export interface Metric {
14
11
  value: number | string;
15
12
  tags: Tags;
16
13
  }
17
- export interface DefaultMetricsRecord {
18
- getName(): string;
19
- getTags(): Tags;
20
- }
21
- export interface TimedMetricsRecord extends DefaultMetricsRecord, Timing {
22
- getTime(): number;
23
- }
24
- export interface CounterMetricsRecord extends DefaultMetricsRecord, Counter {
25
- getCount(): number;
26
- }
27
- export interface GaugeMetricsRecord extends DefaultMetricsRecord, Gauge {
28
- getValue(): number;
29
- }
30
- export interface EventMetricsRecord extends DefaultMetricsRecord {
31
- getDescription(): string;
32
- }
33
14
  export declare class MetricsCollector {
34
15
  private readonly _metrics;
35
16
  constructor(_metrics: Metrics);
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/metrics/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAa,MAAM,wCAAwC,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,oBAAY,UAAU;IACpB,WAAW,UAAU;IACrB,aAAa,YAAY;IACzB,WAAW,UAAU;IACrB,WAAW,UAAU;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,IAAI,MAAM,CAAC;IAClB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB,EAAE,MAAM;IACtE,OAAO,IAAI,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB,EAAE,OAAO;IACzE,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB,EAAE,KAAK;IACrE,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC9D,cAAc,IAAI,MAAM,CAAC;CAC1B;AAKD,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,OAAO;IAEvC,OAAO,IAAI,OAAO;IAIlB,cAAc,IAAI,MAAM,EAAE;IAIjC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,MAAM,GAAG,SAAqB,GAAG,MAAM,EAAE;IA8CrE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,IAAI,CAAA;KAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CASpH;AAED,eAAO,MAAM,sBAAsB,yBACX,qBAAqB,KAC1C;IAAE,SAAS,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CASjD,CAAC"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/metrics/metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAa,MAAM,wCAAwC,CAAC;AAElF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,oBAAY,UAAU;IACpB,WAAW,UAAU;IACrB,aAAa,YAAY;IACzB,WAAW,UAAU;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;CACZ;AAKD,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,OAAO;IAEvC,OAAO,IAAI,OAAO;IAIlB,cAAc,IAAI,MAAM,EAAE;IAIjC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,GAAE,MAAM,GAAG,SAAqB,GAAG,MAAM,EAAE;IAuCrE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,IAAI,CAAA;KAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CASpH;AAED,eAAO,MAAM,sBAAsB,yBACX,qBAAqB,KAC1C;IAAE,SAAS,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CASjD,CAAC"}
@@ -1,16 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMetricsCollector = exports.MetricsCollector = exports.MetricType = exports.InMemoryMetrics = void 0;
3
+ exports.createMetricsCollector = exports.MetricsCollector = exports.MetricType = void 0;
4
+ const in_memory_metrics_1 = require("@forge/util/packages/in-memory-metrics");
4
5
  const metrics_interface_1 = require("@forge/util/packages/metrics-interface");
5
6
  const feature_flag_1 = require("../feature-flag");
6
- const in_memory_metrics_1 = require("./in-memory-metrics");
7
- Object.defineProperty(exports, "InMemoryMetrics", { enumerable: true, get: function () { return in_memory_metrics_1.InMemoryMetrics; } });
8
7
  var MetricType;
9
8
  (function (MetricType) {
10
9
  MetricType["TimerMetric"] = "timer";
11
10
  MetricType["CounterMetric"] = "counter";
12
11
  MetricType["GaugeMetric"] = "gauge";
13
- MetricType["EventMetric"] = "event";
14
12
  })(MetricType = exports.MetricType || (exports.MetricType = {}));
15
13
  class MetricsCollector {
16
14
  constructor(_metrics) {
@@ -50,13 +48,7 @@ class MetricsCollector {
50
48
  type: MetricType.TimerMetric,
51
49
  value: v.getTime()
52
50
  }));
53
- const events = metrics.getEvents().map((v) => ({
54
- name: addPrefix(prefix, v.getName()),
55
- tags: v.getTags(),
56
- type: MetricType.EventMetric,
57
- value: v.getDescription()
58
- }));
59
- allMetrics.push(...timers, ...counters, ...gauges, ...events);
51
+ allMetrics.push(...timers, ...counters, ...gauges);
60
52
  return allMetrics;
61
53
  }
62
54
  async wrapInMetrics(options, callback) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/runtime",
3
- "version": "5.6.0",
3
+ "version": "5.6.1-next.0",
4
4
  "description": "A Node.js runtime for Atlassian app functions",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -26,7 +26,7 @@
26
26
  "typescript": "4.8.4"
27
27
  },
28
28
  "dependencies": {
29
- "@forge/util": "1.4.2",
29
+ "@forge/util": "1.4.3-next.0",
30
30
  "fp-ts": "^2.16.2",
31
31
  "io-ts": "^2.2.21",
32
32
  "io-ts-reporters": "^2.0.1",
@@ -1,16 +0,0 @@
1
- import { Tags } from '@forge/util/packages/metrics-interface';
2
- import { CounterMetricsRecord } from './metrics';
3
- export declare class InMemoryCounterMetric implements CounterMetricsRecord {
4
- private readonly name;
5
- private readonly additionalInfo?;
6
- private count;
7
- constructor(name: string, additionalInfo?: Tags | undefined);
8
- getTags(): Tags;
9
- getCount(): number;
10
- getName(): string;
11
- incr(): void;
12
- decr(): void;
13
- decrBy(val: number): void;
14
- incrBy(val: number): void;
15
- }
16
- //# sourceMappingURL=in-memory-counter-metric.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-counter-metric.d.ts","sourceRoot":"","sources":["../../src/metrics/in-memory-counter-metric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,qBAAa,qBAAsB,YAAW,oBAAoB;IAI9D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAJlC,OAAO,CAAC,KAAK,CAAK;gBAGC,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,kBAAM;IAGxC,OAAO,IAAI,IAAI;IAIf,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;IAIZ,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAG1B"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InMemoryCounterMetric = void 0;
4
- class InMemoryCounterMetric {
5
- constructor(name, additionalInfo) {
6
- this.name = name;
7
- this.additionalInfo = additionalInfo;
8
- this.count = 0;
9
- }
10
- getTags() {
11
- return this.additionalInfo || {};
12
- }
13
- getCount() {
14
- return this.count;
15
- }
16
- getName() {
17
- return this.name;
18
- }
19
- incr() {
20
- this.count++;
21
- }
22
- decr() {
23
- this.count--;
24
- }
25
- decrBy(val) {
26
- this.count -= val;
27
- }
28
- incrBy(val) {
29
- this.count += val;
30
- }
31
- }
32
- exports.InMemoryCounterMetric = InMemoryCounterMetric;
@@ -1,12 +0,0 @@
1
- import { EventMetricsRecord } from './metrics';
2
- import { Tags } from '@forge/util/packages/metrics-interface';
3
- export declare class InMemoryEventMetric implements EventMetricsRecord {
4
- private readonly name;
5
- private readonly description;
6
- private readonly additionalInfo?;
7
- constructor(name: string, description: any, additionalInfo?: Tags | undefined);
8
- getDescription(): string;
9
- getName(): string;
10
- getTags(): Tags;
11
- }
12
- //# sourceMappingURL=in-memory-event-metric.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-event-metric.d.ts","sourceRoot":"","sources":["../../src/metrics/in-memory-event-metric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC;AAE9D,qBAAa,mBAAoB,YAAW,kBAAkB;IAE1D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAFf,IAAI,EAAE,MAAM,EACZ,WAAW,KAAA,EACX,cAAc,CAAC,kBAAM;IAGxC,cAAc,IAAI,MAAM;IAIxB,OAAO,IAAI,MAAM;IAIjB,OAAO,IAAI,IAAI;CAGhB"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InMemoryEventMetric = void 0;
4
- class InMemoryEventMetric {
5
- constructor(name, description, additionalInfo) {
6
- this.name = name;
7
- this.description = description;
8
- this.additionalInfo = additionalInfo;
9
- }
10
- getDescription() {
11
- return this.description;
12
- }
13
- getName() {
14
- return this.name;
15
- }
16
- getTags() {
17
- return this.additionalInfo || {};
18
- }
19
- }
20
- exports.InMemoryEventMetric = InMemoryEventMetric;
@@ -1,13 +0,0 @@
1
- import { GaugeMetricsRecord } from './metrics';
2
- import { Tags } from '@forge/util/packages/metrics-interface';
3
- export declare class InMemoryGaugeMetric implements GaugeMetricsRecord {
4
- private readonly name;
5
- private readonly additionalInfo?;
6
- private value;
7
- constructor(name: string, additionalInfo?: Tags | undefined);
8
- getName(): string;
9
- getTags(): Tags;
10
- getValue(): number;
11
- set(val: number): void;
12
- }
13
- //# sourceMappingURL=in-memory-gauge-metric.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-gauge-metric.d.ts","sourceRoot":"","sources":["../../src/metrics/in-memory-gauge-metric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,wCAAwC,CAAC;AAE9D,qBAAa,mBAAoB,YAAW,kBAAkB;IAI1D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAJlC,OAAO,CAAC,KAAK,CAAK;gBAGC,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,kBAAM;IAGxC,OAAO,IAAI,MAAM;IAIjB,OAAO,IAAI,IAAI;IAIf,QAAQ,IAAI,MAAM;IAIlB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAGvB"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InMemoryGaugeMetric = void 0;
4
- class InMemoryGaugeMetric {
5
- constructor(name, additionalInfo) {
6
- this.name = name;
7
- this.additionalInfo = additionalInfo;
8
- this.value = 0;
9
- }
10
- getName() {
11
- return this.name;
12
- }
13
- getTags() {
14
- return this.additionalInfo || {};
15
- }
16
- getValue() {
17
- return this.value;
18
- }
19
- set(val) {
20
- this.value = val;
21
- }
22
- }
23
- exports.InMemoryGaugeMetric = InMemoryGaugeMetric;
@@ -1,27 +0,0 @@
1
- import { Counter, Gauge, Metrics, Tags, Timing } from '../../../forge-util/packages/metrics-interface';
2
- import { CounterMetricsRecord, EventMetricsRecord, GaugeMetricsRecord, TimedMetricsRecord } from './metrics';
3
- export declare class InMemoryMetrics implements Metrics {
4
- private readonly _timers;
5
- private readonly _counters;
6
- private readonly _gauges;
7
- private readonly _children;
8
- private readonly _events;
9
- private readonly _tags;
10
- private readonly _name;
11
- constructor(tags?: Tags, name?: string);
12
- getName(): string;
13
- getTimers(): TimedMetricsRecord[];
14
- getCounters(): Map<string, CounterMetricsRecord>;
15
- getEvents(): EventMetricsRecord[];
16
- getGauges(): Map<string, GaugeMetricsRecord>;
17
- getChildren(): Map<string, InMemoryMetrics>;
18
- private getHashedMetricName;
19
- child(name: string, tags?: Tags): Metrics;
20
- counter(name: string, tags?: Tags): Counter;
21
- event(title: string, description?: string): void;
22
- gauge(name: string, tags?: Tags): Gauge;
23
- timing(name: string, tags?: Tags): Timing;
24
- set(name: string, tags?: Tags | undefined): never;
25
- histogram(name: string, buckets: number[], tags?: Tags | undefined): never;
26
- }
27
- //# sourceMappingURL=in-memory-metrics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-metrics.d.ts","sourceRoot":"","sources":["../../src/metrics/in-memory-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,gDAAgD,CAAC;AAKvG,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAM7G,qBAAa,eAAgB,YAAW,OAAO;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,IAAI,GAAE,IAAS,EAAE,IAAI,SAAK;IAU/B,OAAO;IAIP,SAAS,IAAI,kBAAkB,EAAE;IAIjC,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAIhD,SAAS,IAAI,kBAAkB,EAAE;IAIjC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAI5C,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;IAIlD,OAAO,CAAC,mBAAmB;IAK3B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAS,GAAG,OAAO;IAW7C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAS,GAAG,OAAO;IAS/C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAIhD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAS,GAAG,KAAK;IAS3C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM;IAMzC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,KAAK;IAIjD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,KAAK;CAG3E"}
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InMemoryMetrics = void 0;
4
- const in_memory_counter_metric_1 = require("./in-memory-counter-metric");
5
- const in_memory_event_metric_1 = require("./in-memory-event-metric");
6
- const in_memory_gauge_metric_1 = require("./in-memory-gauge-metric");
7
- const in_memory_timed_metric_1 = require("./in-memory-timed-metric");
8
- class InMemoryMetrics {
9
- constructor(tags = {}, name = '') {
10
- this._timers = [];
11
- this._counters = new Map();
12
- this._gauges = new Map();
13
- this._children = new Map();
14
- this._events = [];
15
- this._tags = tags;
16
- this._name = name;
17
- }
18
- getName() {
19
- return this._name;
20
- }
21
- getTimers() {
22
- return this._timers;
23
- }
24
- getCounters() {
25
- return this._counters;
26
- }
27
- getEvents() {
28
- return this._events;
29
- }
30
- getGauges() {
31
- return this._gauges;
32
- }
33
- getChildren() {
34
- return this._children;
35
- }
36
- getHashedMetricName(name, tags) {
37
- const sortedTags = Object.entries(Object.assign(Object.assign({}, this._tags), tags)).sort();
38
- return `${name}_${JSON.stringify(sortedTags)}`;
39
- }
40
- child(name, tags = {}) {
41
- const hashedMetricName = this.getHashedMetricName(name, tags);
42
- if (!this._children.has(hashedMetricName)) {
43
- const child = new InMemoryMetrics({}, name);
44
- Object.assign(child._tags, this._tags);
45
- Object.assign(child._tags, tags);
46
- this._children.set(hashedMetricName, child);
47
- }
48
- return this._children.get(hashedMetricName);
49
- }
50
- counter(name, tags = {}) {
51
- const hashedMetricName = this.getHashedMetricName(name, tags);
52
- if (!this._counters.has(hashedMetricName)) {
53
- const counter = new in_memory_counter_metric_1.InMemoryCounterMetric(name, Object.assign(Object.assign({}, this._tags), tags));
54
- this._counters.set(hashedMetricName, counter);
55
- }
56
- return this._counters.get(hashedMetricName);
57
- }
58
- event(title, description) {
59
- this._events.push(new in_memory_event_metric_1.InMemoryEventMetric(title, description));
60
- }
61
- gauge(name, tags = {}) {
62
- const hashedMetricName = this.getHashedMetricName(name, tags);
63
- if (!this._gauges.has(hashedMetricName)) {
64
- const gauge = new in_memory_gauge_metric_1.InMemoryGaugeMetric(name, Object.assign(Object.assign({}, this._tags), tags));
65
- this._gauges.set(hashedMetricName, gauge);
66
- }
67
- return this._gauges.get(hashedMetricName);
68
- }
69
- timing(name, tags) {
70
- const timer = new in_memory_timed_metric_1.InMemoryTimedMetric(name, Object.assign(Object.assign({}, this._tags), tags));
71
- this._timers.push(timer);
72
- return timer;
73
- }
74
- set(name, tags) {
75
- throw new Error('Sets are not implemented.');
76
- }
77
- histogram(name, buckets, tags) {
78
- throw new Error('Histograms are not implemented.');
79
- }
80
- }
81
- exports.InMemoryMetrics = InMemoryMetrics;
@@ -1,18 +0,0 @@
1
- import { Tags, Timing } from '@forge/util/packages/metrics-interface';
2
- import { TimedMetricsRecord } from './metrics';
3
- export declare class InMemoryTimedMetric implements TimedMetricsRecord {
4
- private readonly name;
5
- private additionalInfo?;
6
- private latency;
7
- private started;
8
- private startedAt;
9
- constructor(name: string, additionalInfo?: Tags | undefined);
10
- getTime(): number;
11
- getName(): string;
12
- getTags(): Tags;
13
- private format;
14
- private stopTimer;
15
- measure(): Timing.Stop;
16
- set(val: number, extraTags?: Tags): void;
17
- }
18
- //# sourceMappingURL=in-memory-timed-metric.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-timed-metric.d.ts","sourceRoot":"","sources":["../../src/metrics/in-memory-timed-metric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAiB,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAI/C,qBAAa,mBAAoB,YAAW,kBAAkB;IAM1D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,cAAc,CAAC;IANzB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAa;gBAGX,IAAI,EAAE,MAAM,EACrB,cAAc,CAAC,kBAAM;IAGxB,OAAO,IAAI,MAAM;IAOjB,OAAO,IAAI,MAAM;IAIjB,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,SAAS;IAMV,OAAO,IAAI,MAAM,CAAC,IAAI;IAWtB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI;CAShD"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InMemoryTimedMetric = void 0;
4
- const MILLISEC_TO_NANOSEC = 1000000;
5
- class InMemoryTimedMetric {
6
- constructor(name, additionalInfo) {
7
- this.name = name;
8
- this.additionalInfo = additionalInfo;
9
- this.latency = 0;
10
- this.started = false;
11
- this.startedAt = BigInt(0);
12
- }
13
- getTime() {
14
- if (this.started) {
15
- this.stopTimer();
16
- }
17
- return this.format(this.latency);
18
- }
19
- getName() {
20
- return this.name;
21
- }
22
- getTags() {
23
- return this.additionalInfo || {};
24
- }
25
- format(input, opts) {
26
- return parseFloat(input.toFixed((opts === null || opts === void 0 ? void 0 : opts.precision) || 2));
27
- }
28
- stopTimer(extraTags) {
29
- const latency = process.hrtime.bigint() - this.startedAt;
30
- this.started = false;
31
- this.set(Number(latency) / MILLISEC_TO_NANOSEC, extraTags);
32
- }
33
- measure() {
34
- this.startedAt = process.hrtime.bigint();
35
- this.started = true;
36
- return {
37
- stop: (extraTags, opts) => {
38
- this.stopTimer(extraTags);
39
- return this.format(this.latency, opts);
40
- }
41
- };
42
- }
43
- set(val, extraTags) {
44
- this.latency = val;
45
- if (extraTags) {
46
- this.additionalInfo = Object.assign(Object.assign({}, this.additionalInfo), extraTags);
47
- }
48
- }
49
- }
50
- exports.InMemoryTimedMetric = InMemoryTimedMetric;