From c41ca2081674fb330bea0a06f24f1f930d28b50d Mon Sep 17 00:00:00 2001 From: Andrew Farries Date: Wed, 26 Oct 2022 09:32:31 +0000 Subject: [PATCH 1/2] Add prometheus metric for image builds started --- components/server/src/prometheus-metrics.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/components/server/src/prometheus-metrics.ts b/components/server/src/prometheus-metrics.ts index 756fc6e0e54076..c8d13d5fe62f58 100644 --- a/components/server/src/prometheus-metrics.ts +++ b/components/server/src/prometheus-metrics.ts @@ -21,6 +21,7 @@ export function registerServerMetrics(registry: prometheusClient.Registry) { registry.registerMetric(instanceStartsFailedTotal); registry.registerMetric(prebuildsStartedTotal); registry.registerMetric(stripeClientRequestsCompletedDurationSeconds); + registry.registerMetric(imageBuildsStartedTotal); } const loginCounter = new prometheusClient.Counter({ @@ -176,3 +177,12 @@ export const stripeClientRequestsCompletedDurationSeconds = new prometheusClient export function observeStripeClientRequestsCompleted(operation: string, outcome: string, durationInSeconds: number) { stripeClientRequestsCompletedDurationSeconds.observe({ operation, outcome }, durationInSeconds); } + +export const imageBuildsStartedTotal = new prometheusClient.Counter({ + name: "gitpod_server_image_builds_started_total", + help: "counter of the total number of image builds started on server", +}); + +export function increaseImageBuildsStartedTotal() { + imageBuildsStartedTotal.inc(); +} From 5d8873e38e5cac0ca21ff4f72e5d39457d879105 Mon Sep 17 00:00:00 2001 From: Andrew Farries Date: Wed, 26 Oct 2022 09:35:04 +0000 Subject: [PATCH 2/2] Increase metric when starting an image build --- components/server/src/workspace/workspace-starter.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/server/src/workspace/workspace-starter.ts b/components/server/src/workspace/workspace-starter.ts index fe058aab3f09a5..bcd6152bcb8eed 100644 --- a/components/server/src/workspace/workspace-starter.ts +++ b/components/server/src/workspace/workspace-starter.ts @@ -114,6 +114,7 @@ import { ExtendedUser } from "@gitpod/ws-manager/lib/constraints"; import { FailedInstanceStartReason, increaseFailedInstanceStartCounter, + increaseImageBuildsStartedTotal, increaseSuccessfulInstanceStartCounter, } from "../prometheus-metrics"; import { ContextParser } from "./context-parser-service"; @@ -1205,6 +1206,7 @@ export class WorkspaceStarter { const span = TraceContext.startSpan("buildWorkspaceImage", ctx); try { + increaseImageBuildsStartedTotal(); // Start build... const client = await this.getImageBuilderClient(user, workspace, instance); const { src, auth, disposable } = await this.prepareBuildRequest(