Skip to content

Commit 82b6691

Browse files
committed
[server] Dispose grpc client metrics to enables tests
1 parent 75c3415 commit 82b6691

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

components/gitpod-protocol/src/messaging/client-call-metrics.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,14 @@ export class PrometheusClientCallMetrics implements IClientCallMetrics {
4949
});
5050
}
5151

52+
dispose(): void {
53+
prometheusClient.register.removeSingleMetric("grpc_client_started_total");
54+
prometheusClient.register.removeSingleMetric("grpc_client_msg_sent_total");
55+
prometheusClient.register.removeSingleMetric("grpc_client_msg_received_total");
56+
prometheusClient.register.removeSingleMetric("grpc_client_handled_total");
57+
prometheusClient.register.removeSingleMetric("grpc_client_handling_seconds");
58+
}
59+
5260
started(labels: IGrpcCallMetricsLabels): void {
5361
this.startedCounter.inc({
5462
grpc_service: labels.service,

components/server/src/container-module.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,11 @@ export const productionContainerModule = new ContainerModule(
179179
})
180180
.inSingletonScope();
181181

182-
bind(PrometheusClientCallMetrics).toSelf().inSingletonScope();
183-
bind(IClientCallMetrics).to(PrometheusClientCallMetrics).inSingletonScope();
182+
bind(PrometheusClientCallMetrics)
183+
.toSelf()
184+
.inSingletonScope()
185+
.onDeactivation((metrics) => metrics.dispose());
186+
bind(IClientCallMetrics).toService(PrometheusClientCallMetrics);
184187

185188
bind(WorkspaceClusterImagebuilderClientProvider).toSelf().inSingletonScope();
186189
bind(ImageBuilderClientProvider).toService(WorkspaceClusterImagebuilderClientProvider);

components/server/src/workspace/workspace-cluster-imagebuilder-client-provider.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
*/
66

77
import { User, Workspace, WorkspaceInstance } from "@gitpod/gitpod-protocol";
8-
import { defaultGRPCOptions, IClientCallMetrics } from "@gitpod/gitpod-protocol/lib/util/grpc";
8+
import { defaultGRPCOptions } from "@gitpod/gitpod-protocol/lib/util/grpc";
99
import { WorkspaceRegion } from "@gitpod/gitpod-protocol/lib/workspace-cluster";
1010
import {
1111
ImageBuilderClient,
12-
ImageBuilderClientCallMetrics,
1312
ImageBuilderClientProvider,
1413
PromisifiedImageBuilderClient,
1514
} from "@gitpod/image-builder/lib";
@@ -18,14 +17,13 @@ import {
1817
WorkspaceManagerClientProviderCompositeSource,
1918
WorkspaceManagerClientProviderSource,
2019
} from "@gitpod/ws-manager/lib/client-provider-source";
21-
import { inject, injectable, optional } from "inversify";
20+
import { inject, injectable } from "inversify";
2221

2322
@injectable()
2423
export class WorkspaceClusterImagebuilderClientProvider implements ImageBuilderClientProvider {
2524
@inject(WorkspaceManagerClientProviderCompositeSource)
2625
protected readonly source: WorkspaceManagerClientProviderSource;
2726
@inject(WorkspaceManagerClientProvider) protected readonly clientProvider: WorkspaceManagerClientProvider;
28-
@inject(ImageBuilderClientCallMetrics) @optional() protected readonly clientCallMetrics: IClientCallMetrics;
2927

3028
// gRPC connections can be used concurrently, even across services.
3129
// Thus it makes sense to cache them rather than create a new connection for each request.

0 commit comments

Comments
 (0)