Skip to content

Commit 64e51d1

Browse files
authored
Fix missing parameter storage metrics (#252)
Fixed open telemetry gauge value provider
1 parent 08f6ae8 commit 64e51d1

File tree

4 files changed

+12
-6
lines changed

4 files changed

+12
-6
lines changed

.changeset/small-clouds-collect.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@powersync/service-module-mongodb-storage': patch
3+
'@powersync/service-core': patch
4+
---
5+
6+
Fixed opentelemetry observable gauge value provider ignoring 0 values

modules/module-mongodb-storage/src/storage/MongoBucketStorage.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ export class MongoBucketStorage
306306
}
307307

308308
async getStorageMetrics(): Promise<storage.StorageMetrics> {
309-
const ignoreNotExiting = (e: unknown) => {
309+
const ignoreNotExisting = (e: unknown) => {
310310
if (lib_mongo.isMongoServerError(e) && e.codeName == 'NamespaceNotFound') {
311311
// Collection doesn't exist - return 0
312312
return [{ storageStats: { size: 0 } }];
@@ -333,7 +333,7 @@ export class MongoBucketStorage
333333
}
334334
])
335335
.toArray()
336-
.catch(ignoreNotExiting);
336+
.catch(ignoreNotExisting);
337337

338338
const parameters_aggregate = await this.db.bucket_parameters
339339
.aggregate([
@@ -344,7 +344,7 @@ export class MongoBucketStorage
344344
}
345345
])
346346
.toArray()
347-
.catch(ignoreNotExiting);
347+
.catch(ignoreNotExisting);
348348

349349
const replication_aggregate = await this.db.current_data
350350
.aggregate([
@@ -355,7 +355,7 @@ export class MongoBucketStorage
355355
}
356356
])
357357
.toArray()
358-
.catch(ignoreNotExiting);
358+
.catch(ignoreNotExisting);
359359

360360
return {
361361
operations_size_bytes: Number(operations_aggregate[0].storageStats.size),

packages/service-core/src/metrics/open-telemetry/OpenTelemetryMetricsFactory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export class OpenTelemetryMetricsFactory implements MetricsFactory {
3535
gauge.addCallback(async (result) => {
3636
const value = await valueProvider();
3737

38-
if (value) {
38+
if (value != undefined) {
3939
result.observe(value);
4040
}
4141
});

packages/service-core/src/storage/storage-metrics.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export function initializeCoreStorageMetrics(engine: MetricsEngine, storage: Buc
3434
let cacheTimestamp = 0;
3535

3636
const getMetrics = () => {
37-
if (cachedRequest == null || Date.now() - cacheTimestamp > MINIMUM_INTERVAL) {
37+
if (!cachedRequest || Date.now() - cacheTimestamp > MINIMUM_INTERVAL) {
3838
cachedRequest = storage.getStorageMetrics().catch((e) => {
3939
logger.error(`Failed to get storage metrics`, e);
4040
return null;

0 commit comments

Comments
 (0)