@powersync/service-module-mysql 0.5.6 → 0.6.1

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,11 +1,23 @@
1
1
  # @powersync/service-module-mysql
2
2
 
3
- ## 0.5.6
3
+ ## 0.6.1
4
4
 
5
5
  ### Patch Changes
6
6
 
7
- - Updated dependencies [4f7bd0f]
8
- - @powersync/service-core@1.10.3
7
+ - Updated dependencies [08e6e92]
8
+ - @powersync/service-core@1.11.1
9
+
10
+ ## 0.6.0
11
+
12
+ ### Minor Changes
13
+
14
+ - d1b83ce: Refactored Metrics to use a MetricsEngine which is telemetry framework agnostic.
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies [d1b83ce]
19
+ - @powersync/service-core@1.11.0
20
+ - @powersync/service-types@0.10.0
9
21
 
10
22
  ## 0.5.5
11
23
 
@@ -3,7 +3,7 @@ import * as types from '../types/types.js';
3
3
  import { MySQLConnectionConfig } from '../types/types.js';
4
4
  export declare class MySQLModule extends replication.ReplicationModule<types.MySQLConnectionConfig> {
5
5
  constructor();
6
- initialize(context: system.ServiceContextContainer): Promise<void>;
6
+ onInitialized(context: system.ServiceContextContainer): Promise<void>;
7
7
  protected createRouteAPIAdapter(): api.RouteAPI;
8
8
  protected createReplicator(context: system.ServiceContext): replication.AbstractReplicator;
9
9
  /**
@@ -14,9 +14,7 @@ export class MySQLModule extends replication.ReplicationModule {
14
14
  configSchema: types.MySQLConnectionConfig
15
15
  });
16
16
  }
17
- async initialize(context) {
18
- await super.initialize(context);
19
- }
17
+ async onInitialized(context) { }
20
18
  createRouteAPIAdapter() {
21
19
  return new MySQLRouteAPIAdapter(this.resolveConfig(this.decodedConfig));
22
20
  }
@@ -28,6 +26,7 @@ export class MySQLModule extends replication.ReplicationModule {
28
26
  id: this.getDefaultId(normalisedConfig.database),
29
27
  syncRuleProvider: syncRuleProvider,
30
28
  storageEngine: context.storageEngine,
29
+ metricsEngine: context.metricsEngine,
31
30
  connectionFactory: connectionFactory,
32
31
  rateLimiter: new MySQLErrorRateLimiter()
33
32
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MySQLModule.js","sourceRoot":"","sources":["../../src/module/MySQLModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MySQLModule.js","sourceRoot":"","sources":["../../src/module/MySQLModule.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,7 @@ export class BinLogReplicationJob extends replication.AbstractReplicationJob {
52
52
  const stream = new BinLogStream({
53
53
  abortSignal: this.abortController.signal,
54
54
  storage: this.options.storage,
55
+ metrics: this.options.metrics,
55
56
  connections: connectionManager
56
57
  });
57
58
  await stream.replicate();
@@ -1 +1 @@
1
- {"version":3,"file":"BinLogReplicationJob.js","sourceRoot":"","sources":["../../src/replication/BinLogReplicationJob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BinLogReplicationJob.js","sourceRoot":"","sources":["../../src/replication/BinLogReplicationJob.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export class BinLogReplicator extends replication.AbstractReplicator {
11
11
  return new BinLogReplicationJob({
12
12
  id: this.createJobId(options.storage.group_id),
13
13
  storage: options.storage,
14
+ metrics: this.metrics,
14
15
  lock: options.lock,
15
16
  connectionFactory: this.connectionFactory,
16
17
  rateLimiter: this.rateLimiter
@@ -1 +1 @@
1
- {"version":3,"file":"BinLogReplicator.js","sourceRoot":"","sources":["../../src/replication/BinLogReplicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAW,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAMvD,MAAM,OAAO,gBAAiB,SAAQ,WAAW,CAAC,kBAAwC;IACvE,iBAAiB,CAAgC;IAElE,YAAY,OAAgC;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,OAAqC;QAC7C,OAAO,IAAI,oBAAoB,CAAC;YAC9B,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,gBAAgD;QAC5D,wFAAwF;IAC1F,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACnF,CAAC;CACF"}
1
+ {"version":3,"file":"BinLogReplicator.js","sourceRoot":"","sources":["../../src/replication/BinLogReplicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAW,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAMvD,MAAM,OAAO,gBAAiB,SAAQ,WAAW,CAAC,kBAAwC;IACvE,iBAAiB,CAAgC;IAElE,YAAY,OAAgC;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,OAAqC;QAC7C,OAAO,IAAI,oBAAoB,CAAC;YAC9B,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,gBAAgD;QAC5D,wFAAwF;IAC1F,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACnF,CAAC;CACF"}
@@ -1,9 +1,10 @@
1
1
  import * as sync_rules from '@powersync/service-sync-rules';
2
- import { storage } from '@powersync/service-core';
2
+ import { MetricsEngine, storage } from '@powersync/service-core';
3
3
  import { MySQLConnectionManager } from './MySQLConnectionManager.js';
4
4
  export interface BinLogStreamOptions {
5
5
  connections: MySQLConnectionManager;
6
6
  storage: storage.SyncRulesBucketStorage;
7
+ metrics: MetricsEngine;
7
8
  abortSignal: AbortSignal;
8
9
  }
9
10
  export type Data = Record<string, any>;
@@ -11,7 +12,7 @@ export declare class BinlogConfigurationError extends Error {
11
12
  constructor(message: string);
12
13
  }
13
14
  export declare class BinLogStream {
14
- protected options: BinLogStreamOptions;
15
+ private options;
15
16
  private readonly syncRules;
16
17
  private readonly groupId;
17
18
  private readonly storage;
@@ -20,6 +21,7 @@ export declare class BinLogStream {
20
21
  private tableCache;
21
22
  constructor(options: BinLogStreamOptions);
22
23
  get connectionTag(): string;
24
+ private get metrics();
23
25
  get connectionId(): number;
24
26
  get stopped(): boolean;
25
27
  get defaultSchema(): string;
@@ -1,10 +1,11 @@
1
1
  import { logger, ReplicationAbortedError, ReplicationAssertionError } from '@powersync/lib-services-framework';
2
2
  import async from 'async';
3
- import { framework, getUuidReplicaIdentityBson, Metrics, storage } from '@powersync/service-core';
3
+ import { framework, getUuidReplicaIdentityBson, storage } from '@powersync/service-core';
4
4
  import * as common from '../common/common-index.js';
5
5
  import { isBinlogStillAvailable, ReplicatedGTID, toColumnDescriptors } from '../common/common-index.js';
6
6
  import { createRandomServerId, escapeMysqlTableName } from '../utils/mysql-utils.js';
7
7
  import * as zongji_utils from './zongji/zongji-utils.js';
8
+ import { ReplicationMetric } from '@powersync/service-types';
8
9
  export class BinlogConfigurationError extends Error {
9
10
  constructor(message) {
10
11
  super(message);
@@ -36,6 +37,9 @@ export class BinLogStream {
36
37
  get connectionTag() {
37
38
  return this.connections.connectionTag;
38
39
  }
40
+ get metrics() {
41
+ return this.options.metrics;
42
+ }
39
43
  get connectionId() {
40
44
  const { connectionId } = this.connections;
41
45
  // Default to 1 if not set
@@ -248,6 +252,7 @@ AND table_type = 'BASE TABLE';`, [tablePattern.schema, tablePattern.name]);
248
252
  after: record,
249
253
  afterReplicaId: getUuidReplicaIdentityBson(record, table.replicaIdColumns)
250
254
  });
255
+ this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED).add(1);
251
256
  }
252
257
  await batch.flush();
253
258
  }
@@ -360,7 +365,7 @@ AND table_type = 'BASE TABLE';`, [tablePattern.schema, tablePattern.name]);
360
365
  });
361
366
  break;
362
367
  case zongji_utils.eventIsXid(evt):
363
- Metrics.getInstance().transactions_replicated_total.add(1);
368
+ this.metrics.getCounter(ReplicationMetric.TRANSACTIONS_REPLICATED).add(1);
364
369
  // Need to commit with a replicated GTID with updated next position
365
370
  await batch.commit(new common.ReplicatedGTID({
366
371
  raw_gtid: currentGTID.raw,
@@ -475,7 +480,7 @@ AND table_type = 'BASE TABLE';`, [tablePattern.schema, tablePattern.name]);
475
480
  async writeChange(batch, payload) {
476
481
  switch (payload.type) {
477
482
  case storage.SaveOperationTag.INSERT:
478
- Metrics.getInstance().rows_replicated_total.add(1);
483
+ this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED).add(1);
479
484
  const record = common.toSQLiteRow(payload.data, payload.columns);
480
485
  return await batch.save({
481
486
  tag: storage.SaveOperationTag.INSERT,
@@ -486,7 +491,7 @@ AND table_type = 'BASE TABLE';`, [tablePattern.schema, tablePattern.name]);
486
491
  afterReplicaId: getUuidReplicaIdentityBson(record, payload.sourceTable.replicaIdColumns)
487
492
  });
488
493
  case storage.SaveOperationTag.UPDATE:
489
- Metrics.getInstance().rows_replicated_total.add(1);
494
+ this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED).add(1);
490
495
  // "before" may be null if the replica id columns are unchanged
491
496
  // It's fine to treat that the same as an insert.
492
497
  const beforeUpdated = payload.previous_data
@@ -504,7 +509,7 @@ AND table_type = 'BASE TABLE';`, [tablePattern.schema, tablePattern.name]);
504
509
  afterReplicaId: getUuidReplicaIdentityBson(after, payload.sourceTable.replicaIdColumns)
505
510
  });
506
511
  case storage.SaveOperationTag.DELETE:
507
- Metrics.getInstance().rows_replicated_total.add(1);
512
+ this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED).add(1);
508
513
  const beforeDeleted = common.toSQLiteRow(payload.data, payload.columns);
509
514
  return await batch.save({
510
515
  tag: storage.SaveOperationTag.DELETE,
@@ -1 +1 @@
1
- {"version":3,"file":"BinLogStream.js","sourceRoot":"","sources":["../../src/replication/BinLogStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BinLogStream.js","sourceRoot":"","sources":["../../src/replication/BinLogStream.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@powersync/service-module-mysql",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
4
  "types": "dist/index.d.ts",
5
- "version": "0.5.6",
5
+ "version": "0.6.1",
6
6
  "license": "FSL-1.1-Apache-2.0",
7
7
  "main": "dist/index.js",
8
8
  "type": "module",
@@ -30,18 +30,18 @@
30
30
  "uri-js": "^4.4.1",
31
31
  "uuid": "^9.0.1",
32
32
  "@powersync/lib-services-framework": "0.5.3",
33
- "@powersync/service-core": "1.10.3",
34
- "@powersync/service-jsonbig": "0.17.10",
33
+ "@powersync/service-core": "1.11.1",
35
34
  "@powersync/service-sync-rules": "0.25.0",
36
- "@powersync/service-types": "0.9.0"
35
+ "@powersync/service-types": "0.10.0",
36
+ "@powersync/service-jsonbig": "0.17.10"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/semver": "^7.5.4",
40
40
  "@types/async": "^3.2.24",
41
41
  "@types/uuid": "^9.0.4",
42
- "@powersync/service-core-tests": "0.8.3",
43
- "@powersync/service-module-postgres-storage": "0.6.3",
44
- "@powersync/service-module-mongodb-storage": "0.8.3"
42
+ "@powersync/service-core-tests": "0.9.1",
43
+ "@powersync/service-module-mongodb-storage": "0.9.1",
44
+ "@powersync/service-module-postgres-storage": "0.7.1"
45
45
  },
46
46
  "scripts": {
47
47
  "build": "tsc -b",
@@ -25,9 +25,7 @@ export class MySQLModule extends replication.ReplicationModule<types.MySQLConnec
25
25
  });
26
26
  }
27
27
 
28
- async initialize(context: system.ServiceContextContainer): Promise<void> {
29
- await super.initialize(context);
30
- }
28
+ async onInitialized(context: system.ServiceContextContainer): Promise<void> {}
31
29
 
32
30
  protected createRouteAPIAdapter(): api.RouteAPI {
33
31
  return new MySQLRouteAPIAdapter(this.resolveConfig(this.decodedConfig!));
@@ -42,6 +40,7 @@ export class MySQLModule extends replication.ReplicationModule<types.MySQLConnec
42
40
  id: this.getDefaultId(normalisedConfig.database),
43
41
  syncRuleProvider: syncRuleProvider,
44
42
  storageEngine: context.storageEngine,
43
+ metricsEngine: context.metricsEngine,
45
44
  connectionFactory: connectionFactory,
46
45
  rateLimiter: new MySQLErrorRateLimiter()
47
46
  });
@@ -63,6 +63,7 @@ export class BinLogReplicationJob extends replication.AbstractReplicationJob {
63
63
  const stream = new BinLogStream({
64
64
  abortSignal: this.abortController.signal,
65
65
  storage: this.options.storage,
66
+ metrics: this.options.metrics,
66
67
  connections: connectionManager
67
68
  });
68
69
  await stream.replicate();
@@ -19,6 +19,7 @@ export class BinLogReplicator extends replication.AbstractReplicator<BinLogRepli
19
19
  return new BinLogReplicationJob({
20
20
  id: this.createJobId(options.storage.group_id),
21
21
  storage: options.storage,
22
+ metrics: this.metrics,
22
23
  lock: options.lock,
23
24
  connectionFactory: this.connectionFactory,
24
25
  rateLimiter: this.rateLimiter
@@ -2,7 +2,13 @@ import { logger, ReplicationAbortedError, ReplicationAssertionError } from '@pow
2
2
  import * as sync_rules from '@powersync/service-sync-rules';
3
3
  import async from 'async';
4
4
 
5
- import { ColumnDescriptor, framework, getUuidReplicaIdentityBson, Metrics, storage } from '@powersync/service-core';
5
+ import {
6
+ ColumnDescriptor,
7
+ framework,
8
+ getUuidReplicaIdentityBson,
9
+ MetricsEngine,
10
+ storage
11
+ } from '@powersync/service-core';
6
12
  import mysql, { FieldPacket } from 'mysql2';
7
13
 
8
14
  import { BinLogEvent, StartOptions, TableMapEntry } from '@powersync/mysql-zongji';
@@ -12,10 +18,12 @@ import { isBinlogStillAvailable, ReplicatedGTID, toColumnDescriptors } from '../
12
18
  import { createRandomServerId, escapeMysqlTableName } from '../utils/mysql-utils.js';
13
19
  import { MySQLConnectionManager } from './MySQLConnectionManager.js';
14
20
  import * as zongji_utils from './zongji/zongji-utils.js';
21
+ import { ReplicationMetric } from '@powersync/service-types';
15
22
 
16
23
  export interface BinLogStreamOptions {
17
24
  connections: MySQLConnectionManager;
18
25
  storage: storage.SyncRulesBucketStorage;
26
+ metrics: MetricsEngine;
19
27
  abortSignal: AbortSignal;
20
28
  }
21
29
 
@@ -62,7 +70,7 @@ export class BinLogStream {
62
70
 
63
71
  private tableCache = new Map<string | number, storage.SourceTable>();
64
72
 
65
- constructor(protected options: BinLogStreamOptions) {
73
+ constructor(private options: BinLogStreamOptions) {
66
74
  this.storage = options.storage;
67
75
  this.connections = options.connections;
68
76
  this.syncRules = options.storage.getParsedSyncRules({ defaultSchema: this.defaultSchema });
@@ -74,6 +82,10 @@ export class BinLogStream {
74
82
  return this.connections.connectionTag;
75
83
  }
76
84
 
85
+ private get metrics() {
86
+ return this.options.metrics;
87
+ }
88
+
77
89
  get connectionId() {
78
90
  const { connectionId } = this.connections;
79
91
  // Default to 1 if not set
@@ -335,6 +347,8 @@ AND table_type = 'BASE TABLE';`,
335
347
  after: record,
336
348
  afterReplicaId: getUuidReplicaIdentityBson(record, table.replicaIdColumns)
337
349
  });
350
+
351
+ this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED).add(1);
338
352
  }
339
353
  await batch.flush();
340
354
  }
@@ -461,7 +475,7 @@ AND table_type = 'BASE TABLE';`,
461
475
  });
462
476
  break;
463
477
  case zongji_utils.eventIsXid(evt):
464
- Metrics.getInstance().transactions_replicated_total.add(1);
478
+ this.metrics.getCounter(ReplicationMetric.TRANSACTIONS_REPLICATED).add(1);
465
479
  // Need to commit with a replicated GTID with updated next position
466
480
  await batch.commit(
467
481
  new common.ReplicatedGTID({
@@ -606,7 +620,7 @@ AND table_type = 'BASE TABLE';`,
606
620
  ): Promise<storage.FlushedResult | null> {
607
621
  switch (payload.type) {
608
622
  case storage.SaveOperationTag.INSERT:
609
- Metrics.getInstance().rows_replicated_total.add(1);
623
+ this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED).add(1);
610
624
  const record = common.toSQLiteRow(payload.data, payload.columns);
611
625
  return await batch.save({
612
626
  tag: storage.SaveOperationTag.INSERT,
@@ -617,7 +631,7 @@ AND table_type = 'BASE TABLE';`,
617
631
  afterReplicaId: getUuidReplicaIdentityBson(record, payload.sourceTable.replicaIdColumns)
618
632
  });
619
633
  case storage.SaveOperationTag.UPDATE:
620
- Metrics.getInstance().rows_replicated_total.add(1);
634
+ this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED).add(1);
621
635
  // "before" may be null if the replica id columns are unchanged
622
636
  // It's fine to treat that the same as an insert.
623
637
  const beforeUpdated = payload.previous_data
@@ -637,7 +651,7 @@ AND table_type = 'BASE TABLE';`,
637
651
  });
638
652
 
639
653
  case storage.SaveOperationTag.DELETE:
640
- Metrics.getInstance().rows_replicated_total.add(1);
654
+ this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED).add(1);
641
655
  const beforeDeleted = common.toSQLiteRow(payload.data, payload.columns);
642
656
 
643
657
  return await batch.save({
@@ -1,10 +1,11 @@
1
- import { Metrics, storage } from '@powersync/service-core';
2
- import { putOp, removeOp } from '@powersync/service-core-tests';
1
+ import { storage } from '@powersync/service-core';
2
+ import { METRICS_HELPER, putOp, removeOp } from '@powersync/service-core-tests';
3
3
  import { v4 as uuid } from 'uuid';
4
4
  import { describe, expect, test } from 'vitest';
5
5
  import { BinlogStreamTestContext } from './BinlogStreamUtils.js';
6
6
  import { env } from './env.js';
7
7
  import { INITIALIZED_MONGO_STORAGE_FACTORY, INITIALIZED_POSTGRES_STORAGE_FACTORY } from './util.js';
8
+ import { ReplicationMetric } from '@powersync/service-types';
8
9
 
9
10
  const BASIC_SYNC_RULES = `
10
11
  bucket_definitions:
@@ -35,9 +36,8 @@ function defineBinlogStreamTests(factory: storage.TestStorageFactory) {
35
36
 
36
37
  await context.replicateSnapshot();
37
38
 
38
- const startRowCount = (await Metrics.getInstance().getMetricValueForTests('powersync_rows_replicated_total')) ?? 0;
39
- const startTxCount =
40
- (await Metrics.getInstance().getMetricValueForTests('powersync_transactions_replicated_total')) ?? 0;
39
+ const startRowCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.ROWS_REPLICATED)) ?? 0;
40
+ const startTxCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.TRANSACTIONS_REPLICATED)) ?? 0;
41
41
 
42
42
  context.startStreaming();
43
43
  const testId = uuid();
@@ -47,9 +47,8 @@ function defineBinlogStreamTests(factory: storage.TestStorageFactory) {
47
47
  const data = await context.getBucketData('global[]');
48
48
 
49
49
  expect(data).toMatchObject([putOp('test_data', { id: testId, description: 'test1', num: 1152921504606846976n })]);
50
- const endRowCount = (await Metrics.getInstance().getMetricValueForTests('powersync_rows_replicated_total')) ?? 0;
51
- const endTxCount =
52
- (await Metrics.getInstance().getMetricValueForTests('powersync_transactions_replicated_total')) ?? 0;
50
+ const endRowCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.ROWS_REPLICATED)) ?? 0;
51
+ const endTxCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.TRANSACTIONS_REPLICATED)) ?? 0;
53
52
  expect(endRowCount - startRowCount).toEqual(1);
54
53
  expect(endTxCount - startTxCount).toEqual(1);
55
54
  });
@@ -68,9 +67,8 @@ function defineBinlogStreamTests(factory: storage.TestStorageFactory) {
68
67
 
69
68
  await context.replicateSnapshot();
70
69
 
71
- const startRowCount = (await Metrics.getInstance().getMetricValueForTests('powersync_rows_replicated_total')) ?? 0;
72
- const startTxCount =
73
- (await Metrics.getInstance().getMetricValueForTests('powersync_transactions_replicated_total')) ?? 0;
70
+ const startRowCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.ROWS_REPLICATED)) ?? 0;
71
+ const startTxCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.TRANSACTIONS_REPLICATED)) ?? 0;
74
72
 
75
73
  context.startStreaming();
76
74
 
@@ -80,9 +78,8 @@ function defineBinlogStreamTests(factory: storage.TestStorageFactory) {
80
78
  const data = await context.getBucketData('global[]');
81
79
 
82
80
  expect(data).toMatchObject([putOp('test_DATA', { id: testId, description: 'test1' })]);
83
- const endRowCount = (await Metrics.getInstance().getMetricValueForTests('powersync_rows_replicated_total')) ?? 0;
84
- const endTxCount =
85
- (await Metrics.getInstance().getMetricValueForTests('powersync_transactions_replicated_total')) ?? 0;
81
+ const endRowCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.ROWS_REPLICATED)) ?? 0;
82
+ const endTxCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.TRANSACTIONS_REPLICATED)) ?? 0;
86
83
  expect(endRowCount - startRowCount).toEqual(1);
87
84
  expect(endTxCount - startTxCount).toEqual(1);
88
85
  });
@@ -172,11 +169,15 @@ function defineBinlogStreamTests(factory: storage.TestStorageFactory) {
172
169
  const testId = uuid();
173
170
  await connectionManager.query(`INSERT INTO test_data(id, description) VALUES('${testId}','test1')`);
174
171
 
172
+ const startRowCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.ROWS_REPLICATED)) ?? 0;
173
+
175
174
  await context.replicateSnapshot();
176
175
  context.startStreaming();
177
176
 
177
+ const endRowCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.ROWS_REPLICATED)) ?? 0;
178
178
  const data = await context.getBucketData('global[]');
179
179
  expect(data).toMatchObject([putOp('test_data', { id: testId, description: 'test1' })]);
180
+ expect(endRowCount - startRowCount).toEqual(1);
180
181
  });
181
182
 
182
183
  test('snapshot with date values', async () => {
@@ -229,9 +230,8 @@ function defineBinlogStreamTests(factory: storage.TestStorageFactory) {
229
230
 
230
231
  await context.replicateSnapshot();
231
232
 
232
- const startRowCount = (await Metrics.getInstance().getMetricValueForTests('powersync_rows_replicated_total')) ?? 0;
233
- const startTxCount =
234
- (await Metrics.getInstance().getMetricValueForTests('powersync_transactions_replicated_total')) ?? 0;
233
+ const startRowCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.ROWS_REPLICATED)) ?? 0;
234
+ const startTxCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.TRANSACTIONS_REPLICATED)) ?? 0;
235
235
 
236
236
  context.startStreaming();
237
237
 
@@ -258,9 +258,8 @@ function defineBinlogStreamTests(factory: storage.TestStorageFactory) {
258
258
  timestamp: '2023-03-06T15:47:00.000Z'
259
259
  })
260
260
  ]);
261
- const endRowCount = (await Metrics.getInstance().getMetricValueForTests('powersync_rows_replicated_total')) ?? 0;
262
- const endTxCount =
263
- (await Metrics.getInstance().getMetricValueForTests('powersync_transactions_replicated_total')) ?? 0;
261
+ const endRowCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.ROWS_REPLICATED)) ?? 0;
262
+ const endTxCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.TRANSACTIONS_REPLICATED)) ?? 0;
264
263
  expect(endRowCount - startRowCount).toEqual(2);
265
264
  expect(endTxCount - startTxCount).toEqual(2);
266
265
  });
@@ -274,9 +273,8 @@ function defineBinlogStreamTests(factory: storage.TestStorageFactory) {
274
273
 
275
274
  await context.replicateSnapshot();
276
275
 
277
- const startRowCount = (await Metrics.getInstance().getMetricValueForTests('powersync_rows_replicated_total')) ?? 0;
278
- const startTxCount =
279
- (await Metrics.getInstance().getMetricValueForTests('powersync_transactions_replicated_total')) ?? 0;
276
+ const startRowCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.ROWS_REPLICATED)) ?? 0;
277
+ const startTxCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.TRANSACTIONS_REPLICATED)) ?? 0;
280
278
 
281
279
  context.startStreaming();
282
280
 
@@ -284,9 +282,8 @@ function defineBinlogStreamTests(factory: storage.TestStorageFactory) {
284
282
  const data = await context.getBucketData('global[]');
285
283
 
286
284
  expect(data).toMatchObject([]);
287
- const endRowCount = (await Metrics.getInstance().getMetricValueForTests('powersync_rows_replicated_total')) ?? 0;
288
- const endTxCount =
289
- (await Metrics.getInstance().getMetricValueForTests('powersync_transactions_replicated_total')) ?? 0;
285
+ const endRowCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.ROWS_REPLICATED)) ?? 0;
286
+ const endTxCount = (await METRICS_HELPER.getMetricValueForTests(ReplicationMetric.TRANSACTIONS_REPLICATED)) ?? 0;
290
287
 
291
288
  // There was a transaction, but we should not replicate any actual data
292
289
  expect(endRowCount - startRowCount).toEqual(0);
@@ -4,6 +4,8 @@ import { MySQLConnectionManager } from '@module/replication/MySQLConnectionManag
4
4
  import { logger } from '@powersync/lib-services-framework';
5
5
  import {
6
6
  BucketStorageFactory,
7
+ createCoreReplicationMetrics,
8
+ initializeCoreReplicationMetrics,
7
9
  InternalOpId,
8
10
  OplogEntry,
9
11
  ProtocolOpId,
@@ -11,7 +13,7 @@ import {
11
13
  storage,
12
14
  SyncRulesBucketStorage
13
15
  } from '@powersync/service-core';
14
- import { test_utils } from '@powersync/service-core-tests';
16
+ import { METRICS_HELPER, test_utils } from '@powersync/service-core-tests';
15
17
  import mysqlPromise from 'mysql2/promise';
16
18
  import { clearTestDb, TEST_CONNECTION_OPTIONS } from './util.js';
17
19
 
@@ -44,7 +46,10 @@ export class BinlogStreamTestContext {
44
46
  constructor(
45
47
  public factory: BucketStorageFactory,
46
48
  public connectionManager: MySQLConnectionManager
47
- ) {}
49
+ ) {
50
+ createCoreReplicationMetrics(METRICS_HELPER.metricsEngine);
51
+ initializeCoreReplicationMetrics(METRICS_HELPER.metricsEngine);
52
+ }
48
53
 
49
54
  async dispose() {
50
55
  this.abortController.abort();
@@ -97,6 +102,7 @@ export class BinlogStreamTestContext {
97
102
  }
98
103
  const options: BinLogStreamOptions = {
99
104
  storage: this.storage,
105
+ metrics: METRICS_HELPER.metricsEngine,
100
106
  connections: this.connectionManager,
101
107
  abortSignal: this.abortController.signal
102
108
  };
package/test/src/setup.ts CHANGED
@@ -1,13 +1,12 @@
1
1
  import { container } from '@powersync/lib-services-framework';
2
- import { test_utils } from '@powersync/service-core-tests';
2
+ import { METRICS_HELPER } from '@powersync/service-core-tests';
3
3
  import { beforeAll, beforeEach } from 'vitest';
4
4
 
5
5
  beforeAll(async () => {
6
6
  // Executes for every test file
7
7
  container.registerDefaults();
8
- await test_utils.initMetrics();
9
8
  });
10
9
 
11
10
  beforeEach(async () => {
12
- await test_utils.resetMetrics();
11
+ METRICS_HELPER.resetMetrics();
13
12
  });