Skip to content

Commit 025c275

Browse files
Laurie T. Malauroboquat
authored andcommitted
inc metric only with state change and improve logging
1 parent ae50163 commit 025c275

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

components/ws-manager-bridge/ee/src/prebuild-updater-db.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export class PrebuildUpdaterDB implements PrebuildUpdater {
4545
const workspaceId = status.metadata!.metaId!;
4646
const logCtx: LogContext = { instanceId, workspaceId, userId };
4747

48-
log.info("Handling prebuild workspace update.", status);
48+
log.info(logCtx, "Handling prebuild workspace update.", status);
4949

5050
const span = TraceContext.startSpan("updatePrebuiltWorkspace", ctx);
5151
try {
@@ -57,7 +57,7 @@ export class PrebuildUpdaterDB implements PrebuildUpdater {
5757
}
5858
span.setTag("updatePrebuiltWorkspace.prebuildId", prebuild.id);
5959
span.setTag("updatePrebuiltWorkspace.workspaceInstance.statusVersion", status.statusVersion);
60-
log.info("Found prebuild record in database.", prebuild);
60+
log.info(logCtx, "Found prebuild record in database.", prebuild);
6161

6262
// prebuild.statusVersion = 0 is the default value in the DB, these shouldn't be counted as stale in our metrics
6363
if (prebuild.statusVersion > 0 && prebuild.statusVersion >= status.statusVersion) {
@@ -80,7 +80,15 @@ export class PrebuildUpdaterDB implements PrebuildUpdater {
8080
span.setTag("updatePrebuildWorkspace.prebuild.state", updatedPrebuild.state);
8181
span.setTag("updatePrebuildWorkspace.prebuild.error", updatedPrebuild.error);
8282

83-
if (writeToDB && updatedPrebuild.state && terminatingStates.includes(updatedPrebuild.state)) {
83+
// Here we make sure that we increment the counter only when:
84+
// 1. the instance is governing ("writeToDB"), so that we don't get metrics from multiple pods,
85+
// 2. the state changes (we can receive multiple events with the same state)
86+
if (
87+
writeToDB &&
88+
updatedPrebuild.state &&
89+
terminatingStates.includes(updatedPrebuild.state) &&
90+
updatedPrebuild.state !== prebuild.state
91+
) {
8492
this.prometheusExporter.increasePrebuildsCompletedCounter(updatedPrebuild.state);
8593
}
8694

0 commit comments

Comments
 (0)