Skip to content

Commit 7c68793

Browse files
geroplroboquat
authored andcommitted
[server] Introduce metrics around clusterSelection in startWorkspaceInstance
- 'gitpod_server_instance_starts_success_total' - 'gitpod_server_instance_starts_failed_total'
1 parent 261201d commit 7c68793

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

components/server/src/prometheus-metrics.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,26 @@ const gitpodVersionInfo = new prometheusClient.Gauge({
123123

124124
export function setGitpodVersion(gitpod_version: string){
125125
gitpodVersionInfo.set({gitpod_version}, 1)
126+
}
127+
128+
const instanceStartsSuccessTotal = new prometheusClient.Counter({
129+
name: 'gitpod_server_instance_starts_success_total',
130+
help: 'Total amount of successfully performed instance starts',
131+
labelNames: ['retries'],
132+
registers: [prometheusClient.register],
133+
});
134+
135+
export function increaseSuccessfulInstanceStartCounter(retries: number = 0) {
136+
instanceStartsSuccessTotal.inc({ retries });
137+
}
138+
139+
const instanceStartsFailedTotal = new prometheusClient.Counter({
140+
name: 'gitpod_server_instance_starts_failed_total',
141+
help: 'Total amount of failed performed instance starts',
142+
labelNames: ['reason'],
143+
registers: [prometheusClient.register],
144+
});
145+
146+
export function increaseFailedInstanceStartCounter(reason: "clusterSelectionFailed") {
147+
instanceStartsFailedTotal.inc({ reason });
126148
}

components/server/src/workspace/workspace-starter.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import { WithReferrerContext } from "@gitpod/gitpod-protocol/lib/protocol";
3636
import { IDEOption } from "@gitpod/gitpod-protocol/lib/ide-protocol";
3737
import { Deferred } from "@gitpod/gitpod-protocol/lib/util/deferred";
3838
import { ExtendedUser } from "@gitpod/ws-manager/lib/constraints";
39+
import { increaseFailedInstanceStartCounter, increaseSuccessfulInstanceStartCounter } from "../prometheus-metrics";
3940

4041
export interface StartWorkspaceOptions {
4142
rethrow?: boolean;
@@ -197,8 +198,10 @@ export class WorkspaceStarter {
197198
}
198199

199200
if (!resp) {
201+
increaseFailedInstanceStartCounter("clusterSelectionFailed");
200202
throw new Error("cannot start a workspace because no workspace clusters are available");
201203
}
204+
increaseSuccessfulInstanceStartCounter(retries);
202205

203206
span.log({ "resp": resp });
204207

0 commit comments

Comments
 (0)