Skip to content

Commit 1e9b846

Browse files
easyCZroboquat
authored andcommitted
[ws-manager-bridge] Publish metrics with stale prebuild events
1 parent d2d7501 commit 1e9b846

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

components/ws-manager-bridge/ee/src/bridge.ts

+6
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@ export class WorkspaceManagerBridgeEE extends WorkspaceManagerBridge {
5656
return
5757
}
5858
span.setTag("updatePrebuiltWorkspace.prebuildId", prebuild.id);
59+
span.setTag("updatePrebuiltWorkspace.workspaceInstance.statusVersion", status.statusVersion);
60+
61+
if (prebuild.statusVersion <= status.statusVersion) {
62+
this.prometheusExporter.recordStalePrebuildEvent()
63+
}
64+
prebuild.statusVersion = status.statusVersion
5965

6066
if (prebuild.state === 'queued') {
6167
// We've received an update from ws-man for this workspace, hence it must be running.

components/ws-manager-bridge/src/prometheus-metrics-exporter.ts

+9
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export class PrometheusMetricsExporter {
1616
protected readonly clusterScore: prom.Gauge<string>;
1717
protected readonly clusterCordoned: prom.Gauge<string>;
1818
protected readonly statusUpdatesTotal: prom.Counter<string>;
19+
protected readonly stalePrebuildEventsTotal: prom.Counter<string>;
1920

2021
protected activeClusterNames = new Set<string>();
2122

@@ -47,6 +48,10 @@ export class PrometheusMetricsExporter {
4748
help: 'Total workspace status updates received',
4849
labelNames: ["workspace_cluster", "known_instance"]
4950
});
51+
this.stalePrebuildEventsTotal = new prom.Counter({
52+
name: "gitpod_ws_manager_bridge_stale_prebuild_events_total",
53+
help: "Total count of stale prebuild events received by workspace manager bridge"
54+
})
5055
}
5156

5257
observeWorkspaceStartupTime(instance: WorkspaceInstance): void {
@@ -87,5 +92,9 @@ export class PrometheusMetricsExporter {
8792
statusUpdateReceived(installation: string, knownInstance: boolean): void {
8893
this.statusUpdatesTotal.labels(installation, knownInstance ? "true" : "false").inc();
8994
}
95+
96+
recordStalePrebuildEvent(): void {
97+
this.stalePrebuildEventsTotal.inc();
98+
}
9099
}
91100

0 commit comments

Comments
 (0)