From 144fad969e604dd9fb30a00e73e817d9b5c230ba Mon Sep 17 00:00:00 2001 From: Andrea Falzetti Date: Fri, 7 Oct 2022 17:13:40 +0000 Subject: [PATCH] feat(gitpod-cli): report errors to ide-metrics-api --- components/gitpod-cli/BUILD.yaml | 1 + components/gitpod-cli/cmd/info.go | 44 +++++----- components/gitpod-cli/cmd/ports-list.go | 3 +- components/gitpod-cli/go.mod | 6 +- components/gitpod-cli/go.sum | 5 +- .../gitpod-cli/pkg/supervisor-helper/info.go | 23 ++++++ components/gitpod-cli/pkg/utils/logError.go | 81 +++++++++++++++++++ .../ide-metrics-api/go/idemetrics.pb.go | 2 +- .../ide-metrics-api/go/idemetrics.pb.gw.go | 66 ++++++++------- .../idemetrics/api/MetricsServiceGrpc.java | 2 +- .../testdata/render/aws-setup/output.golden | 5 +- .../testdata/render/azure-setup/output.golden | 5 +- .../render/customization/output.golden | 5 +- .../render/external-registry/output.golden | 5 +- .../testdata/render/gcp-setup/output.golden | 5 +- .../testdata/render/http-proxy/output.golden | 5 +- .../render/insecure-s3-setup/output.golden | 5 +- .../cmd/testdata/render/minimal/output.golden | 5 +- .../statefulset-customization/output.golden | 5 +- .../use-pod-security-policies/output.golden | 5 +- .../workspace-requests-limits/output.golden | 5 +- .../pkg/components/ide-metrics/configmap.go | 1 + 22 files changed, 206 insertions(+), 83 deletions(-) create mode 100644 components/gitpod-cli/pkg/supervisor-helper/info.go create mode 100644 components/gitpod-cli/pkg/utils/logError.go diff --git a/components/gitpod-cli/BUILD.yaml b/components/gitpod-cli/BUILD.yaml index 1d2dc2db1fd4bd..f8cd1de60cee76 100644 --- a/components/gitpod-cli/BUILD.yaml +++ b/components/gitpod-cli/BUILD.yaml @@ -12,6 +12,7 @@ packages: - components/supervisor-api/go:lib - components/gitpod-protocol/go:lib - components/common-go:lib + - components/ide-metrics-api/go:lib config: packaging: app buildCommand: ["go", "build", "-trimpath", "-ldflags", "-buildid= -w -s -X 'github.com/gitpod-io/gitpod/gitpod-cli/pkg/gitpod.Version=commit-${__git_commit}'"] diff --git a/components/gitpod-cli/cmd/info.go b/components/gitpod-cli/cmd/info.go index 75370681e06f79..11a2d8448b3b8d 100644 --- a/components/gitpod-cli/cmd/info.go +++ b/components/gitpod-cli/cmd/info.go @@ -8,14 +8,14 @@ import ( "context" "encoding/json" "fmt" + "os" + "time" + "github.com/gitpod-io/gitpod/common-go/log" supervisor_helper "github.com/gitpod-io/gitpod/gitpod-cli/pkg/supervisor-helper" supervisor "github.com/gitpod-io/gitpod/supervisor/api" "github.com/olekukonko/tablewriter" "github.com/spf13/cobra" - "google.golang.org/grpc" - "os" - "time" ) var infoCmdOpts struct { @@ -37,7 +37,16 @@ var infoCmd = &cobra.Command{ } defer conn.Close() - data, err := fetchInfo(ctx, conn) + wsInfo, err := supervisor_helper.FetchInfo(ctx, conn) + + data := &infoData{ + WorkspaceId: wsInfo.WorkspaceId, + InstanceId: wsInfo.InstanceId, + WorkspaceClass: wsInfo.WorkspaceClass, + WorkspaceUrl: wsInfo.WorkspaceUrl, + ClusterHost: wsInfo.WorkspaceClusterHost, + } + if err != nil { log.Fatal(err) } @@ -52,19 +61,12 @@ var infoCmd = &cobra.Command{ }, } -func fetchInfo(ctx context.Context, conn *grpc.ClientConn) (*infoData, error) { - wsInfo, err := supervisor.NewInfoServiceClient(conn).WorkspaceInfo(ctx, &supervisor.WorkspaceInfoRequest{}) - if err != nil { - return nil, fmt.Errorf("failed to retrieve workspace info: %w", err) - } - - return &infoData{ - WorkspaceId: wsInfo.WorkspaceId, - InstanceId: wsInfo.InstanceId, - WorkspaceClass: wsInfo.WorkspaceClass, - WorkspaceUrl: wsInfo.WorkspaceUrl, - ClusterHost: wsInfo.WorkspaceClusterHost, - }, nil +type infoData struct { + WorkspaceId string `json:"workspace_id"` + InstanceId string `json:"instance_id"` + WorkspaceClass *supervisor.WorkspaceInfoResponse_WorkspaceClass `json:"workspace_class"` + WorkspaceUrl string `json:"workspace_url"` + ClusterHost string `json:"cluster_host"` } func outputInfo(info *infoData) { @@ -80,14 +82,6 @@ func outputInfo(info *infoData) { table.Render() } -type infoData struct { - WorkspaceId string `json:"workspace_id"` - InstanceId string `json:"instance_id"` - WorkspaceClass *supervisor.WorkspaceInfoResponse_WorkspaceClass `json:"workspace_class"` - WorkspaceUrl string `json:"workspace_url"` - ClusterHost string `json:"cluster_host"` -} - func init() { infoCmd.Flags().BoolVarP(&infoCmdOpts.Json, "json", "j", false, "Output in JSON format") rootCmd.AddCommand(infoCmd) diff --git a/components/gitpod-cli/cmd/ports-list.go b/components/gitpod-cli/cmd/ports-list.go index bcf133ff877718..55bf6c2c065e87 100644 --- a/components/gitpod-cli/cmd/ports-list.go +++ b/components/gitpod-cli/cmd/ports-list.go @@ -14,7 +14,6 @@ import ( supervisor_helper "github.com/gitpod-io/gitpod/gitpod-cli/pkg/supervisor-helper" "github.com/gitpod-io/gitpod/gitpod-cli/pkg/utils" supervisor "github.com/gitpod-io/gitpod/supervisor/api" - log "github.com/sirupsen/logrus" "github.com/spf13/cobra" "github.com/olekukonko/tablewriter" @@ -30,7 +29,7 @@ var listPortsCmd = &cobra.Command{ ports, portsListError := supervisor_helper.GetPortsList(ctx) if portsListError != nil { - log.WithError(portsListError).Error("Could not get the ports list.") + utils.LogError(ctx, portsListError, "Could not get the ports list.") return } diff --git a/components/gitpod-cli/go.mod b/components/gitpod-cli/go.mod index 64f2de2c6a5532..72b0054ef820da 100644 --- a/components/gitpod-cli/go.mod +++ b/components/gitpod-cli/go.mod @@ -6,7 +6,9 @@ require ( github.com/creack/pty v1.1.17 github.com/gitpod-io/gitpod/common-go v0.0.0-00010101000000-000000000000 github.com/gitpod-io/gitpod/gitpod-protocol v0.0.0-00010101000000-000000000000 + github.com/gitpod-io/gitpod/ide-metrics-api v0.0.0-00010101000000-000000000000 github.com/gitpod-io/gitpod/supervisor/api v0.0.0-00010101000000-000000000000 + github.com/go-errors/errors v1.4.2 github.com/golang/mock v1.6.0 github.com/google/go-cmp v0.5.8 github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf @@ -21,7 +23,7 @@ require ( github.com/spf13/cobra v1.1.3 golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d golang.org/x/term v0.0.0-20220526004731-065cf7ba2467 - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 + golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f google.golang.org/grpc v1.49.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -46,4 +48,6 @@ replace github.com/gitpod-io/gitpod/gitpod-protocol => ../gitpod-protocol/go // replace github.com/gitpod-io/gitpod/supervisor/api => ../supervisor-api/go // leeway +replace github.com/gitpod-io/gitpod/ide-metrics-api => ../ide-metrics-api/go // leeway + replace github.com/gitpod-io/gitpod/common-go => ../common-go // leeway diff --git a/components/gitpod-cli/go.sum b/components/gitpod-cli/go.sum index 22a831968772b7..8491da9c23b3d4 100644 --- a/components/gitpod-cli/go.sum +++ b/components/gitpod-cli/go.sum @@ -51,6 +51,8 @@ github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8S github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -323,8 +325,9 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f h1:uF6paiQQebLeSXkrTqHqz0MXhXXS1KgF41eUdBNvxK0= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= diff --git a/components/gitpod-cli/pkg/supervisor-helper/info.go b/components/gitpod-cli/pkg/supervisor-helper/info.go new file mode 100644 index 00000000000000..12875fc2175a82 --- /dev/null +++ b/components/gitpod-cli/pkg/supervisor-helper/info.go @@ -0,0 +1,23 @@ +// Copyright (c) 2022 Gitpod GmbH. All rights reserved. +// Licensed under the GNU Affero General Public License (AGPL). +// See License-AGPL.txt in the project root for license information. + +package supervisor_helper + +import ( + "context" + "fmt" + + "github.com/gitpod-io/gitpod/supervisor/api" + supervisor "github.com/gitpod-io/gitpod/supervisor/api" + "google.golang.org/grpc" +) + +func FetchInfo(ctx context.Context, conn *grpc.ClientConn) (*api.WorkspaceInfoResponse, error) { + wsInfo, err := supervisor.NewInfoServiceClient(conn).WorkspaceInfo(ctx, &supervisor.WorkspaceInfoRequest{}) + if err != nil { + return nil, fmt.Errorf("failed to retrieve workspace info: %w", err) + } + + return wsInfo, nil +} diff --git a/components/gitpod-cli/pkg/utils/logError.go b/components/gitpod-cli/pkg/utils/logError.go new file mode 100644 index 00000000000000..14d8d545198de4 --- /dev/null +++ b/components/gitpod-cli/pkg/utils/logError.go @@ -0,0 +1,81 @@ +// Copyright (c) 2022 Gitpod GmbH. All rights reserved. +// Licensed under the GNU Affero General Public License (AGPL). +// See License-AGPL.txt in the project root for license information. + +package utils + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "io/ioutil" + "net/http" + "net/url" + + gitpod "github.com/gitpod-io/gitpod/gitpod-cli/pkg/gitpod" + supervisor_helper "github.com/gitpod-io/gitpod/gitpod-cli/pkg/supervisor-helper" + ide_metrics "github.com/gitpod-io/gitpod/ide-metrics-api" + "github.com/go-errors/errors" + log "github.com/sirupsen/logrus" +) + +func LogError(ctx context.Context, errToReport error, errorMessage string) { + log.WithError(errToReport).Error(errorMessage) + + conn, err := supervisor_helper.Dial(ctx) + if err != nil { + log.Fatal(err) + } + defer conn.Close() + + wsInfo, err := supervisor_helper.FetchInfo(ctx, conn) + if err != nil { + log.WithError(err).Fatal("failed to retrieve workspace info") + return + } + + parsedUrl, err := url.Parse(wsInfo.GitpodHost) + if err != nil { + log.WithError(err).Fatal("cannot parse GitpodHost") + return + } + + ideMetricsUrl := fmt.Sprintf("https://ide.%s/metrics-api/reportError", parsedUrl.Host) + + reportErrorRequest := &ide_metrics.ReportErrorRequest{ + ErrorStack: errToReport.(*errors.Error).ErrorStack(), + Component: "gitpod-cli", + Version: gitpod.Version, + UserId: "", // todo: retrieve this from server + WorkspaceId: wsInfo.WorkspaceId, + InstanceId: wsInfo.InstanceId, + Properties: map[string]string{}, + } + + payload, err := json.Marshal(reportErrorRequest) + if err != nil { + log.WithError(err).Fatal("failed to marshal json while attempting to report error") + return + } + + req, err := http.NewRequest("POST", ideMetricsUrl, bytes.NewBuffer(payload)) + if err != nil { + log.WithError(err).Fatal("failed to init request for ide-metrics-api") + return + } + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + log.WithError(err).Fatal("cannot report error to ide-metrics-api") + return + } + + // todo: remove before merging + defer resp.Body.Close() + body, _ := ioutil.ReadAll(resp.Body) + fmt.Println("Error reported succerssfully") + fmt.Println(string(body)) + fmt.Println(resp.StatusCode) +} diff --git a/components/ide-metrics-api/go/idemetrics.pb.go b/components/ide-metrics-api/go/idemetrics.pb.go index d86a554e2cf7c9..7a83b3dd1af9bb 100644 --- a/components/ide-metrics-api/go/idemetrics.pb.go +++ b/components/ide-metrics-api/go/idemetrics.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.28.1 // protoc v3.20.1 // source: idemetrics.proto diff --git a/components/ide-metrics-api/go/idemetrics.pb.gw.go b/components/ide-metrics-api/go/idemetrics.pb.gw.go index 75c3518bfdd7ef..1823a2c0987916 100644 --- a/components/ide-metrics-api/go/idemetrics.pb.gw.go +++ b/components/ide-metrics-api/go/idemetrics.pb.gw.go @@ -218,20 +218,21 @@ func RegisterMetricsServiceHandlerServer(ctx context.Context, mux *runtime.Serve ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/ide_metrics_api.MetricsService/AddCounter", runtime.WithHTTPPathPattern("/metrics/counter/add/{name}")) + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/ide_metrics_api.MetricsService/AddCounter", runtime.WithHTTPPathPattern("/metrics/counter/add/{name}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_MetricsService_AddCounter_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_MetricsService_AddCounter_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_MetricsService_AddCounter_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_MetricsService_AddCounter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -242,20 +243,21 @@ func RegisterMetricsServiceHandlerServer(ctx context.Context, mux *runtime.Serve ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/ide_metrics_api.MetricsService/ObserveHistogram", runtime.WithHTTPPathPattern("/metrics/histogram/observe/{name}")) + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/ide_metrics_api.MetricsService/ObserveHistogram", runtime.WithHTTPPathPattern("/metrics/histogram/observe/{name}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_MetricsService_ObserveHistogram_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_MetricsService_ObserveHistogram_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_MetricsService_ObserveHistogram_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_MetricsService_ObserveHistogram_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -266,20 +268,21 @@ func RegisterMetricsServiceHandlerServer(ctx context.Context, mux *runtime.Serve ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/ide_metrics_api.MetricsService/ReportError", runtime.WithHTTPPathPattern("/reportError")) + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/ide_metrics_api.MetricsService/ReportError", runtime.WithHTTPPathPattern("/reportError")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_MetricsService_ReportError_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_MetricsService_ReportError_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_MetricsService_ReportError_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_MetricsService_ReportError_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -329,19 +332,20 @@ func RegisterMetricsServiceHandlerClient(ctx context.Context, mux *runtime.Serve defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/ide_metrics_api.MetricsService/AddCounter", runtime.WithHTTPPathPattern("/metrics/counter/add/{name}")) + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/ide_metrics_api.MetricsService/AddCounter", runtime.WithHTTPPathPattern("/metrics/counter/add/{name}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_MetricsService_AddCounter_0(ctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_MetricsService_AddCounter_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_MetricsService_AddCounter_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_MetricsService_AddCounter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -350,19 +354,20 @@ func RegisterMetricsServiceHandlerClient(ctx context.Context, mux *runtime.Serve defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/ide_metrics_api.MetricsService/ObserveHistogram", runtime.WithHTTPPathPattern("/metrics/histogram/observe/{name}")) + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/ide_metrics_api.MetricsService/ObserveHistogram", runtime.WithHTTPPathPattern("/metrics/histogram/observe/{name}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_MetricsService_ObserveHistogram_0(ctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_MetricsService_ObserveHistogram_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_MetricsService_ObserveHistogram_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_MetricsService_ObserveHistogram_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -371,19 +376,20 @@ func RegisterMetricsServiceHandlerClient(ctx context.Context, mux *runtime.Serve defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/ide_metrics_api.MetricsService/ReportError", runtime.WithHTTPPathPattern("/reportError")) + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/ide_metrics_api.MetricsService/ReportError", runtime.WithHTTPPathPattern("/reportError")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_MetricsService_ReportError_0(ctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_MetricsService_ReportError_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_MetricsService_ReportError_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_MetricsService_ReportError_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) diff --git a/components/ide-metrics-api/java/src/main/java/io/gitpod/idemetrics/api/MetricsServiceGrpc.java b/components/ide-metrics-api/java/src/main/java/io/gitpod/idemetrics/api/MetricsServiceGrpc.java index 4ffebd6d1251da..6181edae1d9091 100644 --- a/components/ide-metrics-api/java/src/main/java/io/gitpod/idemetrics/api/MetricsServiceGrpc.java +++ b/components/ide-metrics-api/java/src/main/java/io/gitpod/idemetrics/api/MetricsServiceGrpc.java @@ -9,7 +9,7 @@ /** */ @javax.annotation.Generated( - value = "by gRPC proto compiler (version 1.45.0)", + value = "by gRPC proto compiler (version 1.49.0)", comments = "Source: idemetrics.proto") @io.grpc.stub.annotations.GrpcGenerated public final class MetricsServiceGrpc { diff --git a/install/installer/cmd/testdata/render/aws-setup/output.golden b/install/installer/cmd/testdata/render/aws-setup/output.golden index 0c142026699f61..197124464f53f4 100644 --- a/install/installer/cmd/testdata/render/aws-setup/output.golden +++ b/install/installer/cmd/testdata/render/aws-setup/output.golden @@ -4052,7 +4052,8 @@ data: "supervisor-frontend", "vscode-workbench", "vscode-server", - "vscode-web" + "vscode-web", + "gitod-cli" ] } }, @@ -7840,7 +7841,7 @@ spec: template: metadata: annotations: - gitpod.io/checksum_config: 261a9080da877b0199c3588c8342e2bf262b31768577d9149ad91decc34870d1 + gitpod.io/checksum_config: e3036e9137104898ca63a2de740d51a1994a1d8719542df1ace792c634f1ea2c creationTimestamp: null labels: app: gitpod diff --git a/install/installer/cmd/testdata/render/azure-setup/output.golden b/install/installer/cmd/testdata/render/azure-setup/output.golden index ef8733c9c9b2c5..d310c7b00041d0 100644 --- a/install/installer/cmd/testdata/render/azure-setup/output.golden +++ b/install/installer/cmd/testdata/render/azure-setup/output.golden @@ -3969,7 +3969,8 @@ data: "supervisor-frontend", "vscode-workbench", "vscode-server", - "vscode-web" + "vscode-web", + "gitod-cli" ] } }, @@ -7673,7 +7674,7 @@ spec: template: metadata: annotations: - gitpod.io/checksum_config: 261a9080da877b0199c3588c8342e2bf262b31768577d9149ad91decc34870d1 + gitpod.io/checksum_config: e3036e9137104898ca63a2de740d51a1994a1d8719542df1ace792c634f1ea2c creationTimestamp: null labels: app: gitpod diff --git a/install/installer/cmd/testdata/render/customization/output.golden b/install/installer/cmd/testdata/render/customization/output.golden index f46835cdb9a8d4..ceec9eb8702698 100644 --- a/install/installer/cmd/testdata/render/customization/output.golden +++ b/install/installer/cmd/testdata/render/customization/output.golden @@ -4786,7 +4786,8 @@ data: "supervisor-frontend", "vscode-workbench", "vscode-server", - "vscode-web" + "vscode-web", + "gitod-cli" ] } }, @@ -9111,7 +9112,7 @@ spec: metadata: annotations: gitpod.io: hello - gitpod.io/checksum_config: b38c9ab42d890627d631b81f9f714127b1246ebb1f89b0153bf18351c9d2f9c8 + gitpod.io/checksum_config: 63894d30bccb2214ac75d359e6cf12c1a501889866357a5192f81e3f01525510 hello: world creationTimestamp: null labels: diff --git a/install/installer/cmd/testdata/render/external-registry/output.golden b/install/installer/cmd/testdata/render/external-registry/output.golden index 91ebeb3d7ee68a..00444576040bb2 100644 --- a/install/installer/cmd/testdata/render/external-registry/output.golden +++ b/install/installer/cmd/testdata/render/external-registry/output.golden @@ -4110,7 +4110,8 @@ data: "supervisor-frontend", "vscode-workbench", "vscode-server", - "vscode-web" + "vscode-web", + "gitod-cli" ] } }, @@ -8114,7 +8115,7 @@ spec: template: metadata: annotations: - gitpod.io/checksum_config: 261a9080da877b0199c3588c8342e2bf262b31768577d9149ad91decc34870d1 + gitpod.io/checksum_config: e3036e9137104898ca63a2de740d51a1994a1d8719542df1ace792c634f1ea2c creationTimestamp: null labels: app: gitpod diff --git a/install/installer/cmd/testdata/render/gcp-setup/output.golden b/install/installer/cmd/testdata/render/gcp-setup/output.golden index 9447aa265588f9..4f1218e3aea786 100644 --- a/install/installer/cmd/testdata/render/gcp-setup/output.golden +++ b/install/installer/cmd/testdata/render/gcp-setup/output.golden @@ -3940,7 +3940,8 @@ data: "supervisor-frontend", "vscode-workbench", "vscode-server", - "vscode-web" + "vscode-web", + "gitod-cli" ] } }, @@ -7728,7 +7729,7 @@ spec: template: metadata: annotations: - gitpod.io/checksum_config: 261a9080da877b0199c3588c8342e2bf262b31768577d9149ad91decc34870d1 + gitpod.io/checksum_config: e3036e9137104898ca63a2de740d51a1994a1d8719542df1ace792c634f1ea2c creationTimestamp: null labels: app: gitpod diff --git a/install/installer/cmd/testdata/render/http-proxy/output.golden b/install/installer/cmd/testdata/render/http-proxy/output.golden index 0b8042084dd9b0..390e2b9df6860c 100644 --- a/install/installer/cmd/testdata/render/http-proxy/output.golden +++ b/install/installer/cmd/testdata/render/http-proxy/output.golden @@ -4279,7 +4279,8 @@ data: "supervisor-frontend", "vscode-workbench", "vscode-server", - "vscode-web" + "vscode-web", + "gitod-cli" ] } }, @@ -9079,7 +9080,7 @@ spec: template: metadata: annotations: - gitpod.io/checksum_config: 261a9080da877b0199c3588c8342e2bf262b31768577d9149ad91decc34870d1 + gitpod.io/checksum_config: e3036e9137104898ca63a2de740d51a1994a1d8719542df1ace792c634f1ea2c creationTimestamp: null labels: app: gitpod diff --git a/install/installer/cmd/testdata/render/insecure-s3-setup/output.golden b/install/installer/cmd/testdata/render/insecure-s3-setup/output.golden index d55a46ca34b3f3..7d0ecc4a172a9e 100644 --- a/install/installer/cmd/testdata/render/insecure-s3-setup/output.golden +++ b/install/installer/cmd/testdata/render/insecure-s3-setup/output.golden @@ -4190,7 +4190,8 @@ data: "supervisor-frontend", "vscode-workbench", "vscode-server", - "vscode-web" + "vscode-web", + "gitod-cli" ] } }, @@ -8276,7 +8277,7 @@ spec: template: metadata: annotations: - gitpod.io/checksum_config: 261a9080da877b0199c3588c8342e2bf262b31768577d9149ad91decc34870d1 + gitpod.io/checksum_config: e3036e9137104898ca63a2de740d51a1994a1d8719542df1ace792c634f1ea2c creationTimestamp: null labels: app: gitpod diff --git a/install/installer/cmd/testdata/render/minimal/output.golden b/install/installer/cmd/testdata/render/minimal/output.golden index cea28f304822e5..940c1bd82c9ff4 100644 --- a/install/installer/cmd/testdata/render/minimal/output.golden +++ b/install/installer/cmd/testdata/render/minimal/output.golden @@ -4276,7 +4276,8 @@ data: "supervisor-frontend", "vscode-workbench", "vscode-server", - "vscode-web" + "vscode-web", + "gitod-cli" ] } }, @@ -8394,7 +8395,7 @@ spec: template: metadata: annotations: - gitpod.io/checksum_config: 261a9080da877b0199c3588c8342e2bf262b31768577d9149ad91decc34870d1 + gitpod.io/checksum_config: e3036e9137104898ca63a2de740d51a1994a1d8719542df1ace792c634f1ea2c creationTimestamp: null labels: app: gitpod diff --git a/install/installer/cmd/testdata/render/statefulset-customization/output.golden b/install/installer/cmd/testdata/render/statefulset-customization/output.golden index de26b2a80daddd..079f27ae32ec86 100644 --- a/install/installer/cmd/testdata/render/statefulset-customization/output.golden +++ b/install/installer/cmd/testdata/render/statefulset-customization/output.golden @@ -4288,7 +4288,8 @@ data: "supervisor-frontend", "vscode-workbench", "vscode-server", - "vscode-web" + "vscode-web", + "gitod-cli" ] } }, @@ -8406,7 +8407,7 @@ spec: template: metadata: annotations: - gitpod.io/checksum_config: 261a9080da877b0199c3588c8342e2bf262b31768577d9149ad91decc34870d1 + gitpod.io/checksum_config: e3036e9137104898ca63a2de740d51a1994a1d8719542df1ace792c634f1ea2c creationTimestamp: null labels: app: gitpod diff --git a/install/installer/cmd/testdata/render/use-pod-security-policies/output.golden b/install/installer/cmd/testdata/render/use-pod-security-policies/output.golden index b2b45dfed60227..9aa01d2cf15149 100644 --- a/install/installer/cmd/testdata/render/use-pod-security-policies/output.golden +++ b/install/installer/cmd/testdata/render/use-pod-security-policies/output.golden @@ -4609,7 +4609,8 @@ data: "supervisor-frontend", "vscode-workbench", "vscode-server", - "vscode-web" + "vscode-web", + "gitod-cli" ] } }, @@ -8838,7 +8839,7 @@ spec: template: metadata: annotations: - gitpod.io/checksum_config: 261a9080da877b0199c3588c8342e2bf262b31768577d9149ad91decc34870d1 + gitpod.io/checksum_config: e3036e9137104898ca63a2de740d51a1994a1d8719542df1ace792c634f1ea2c creationTimestamp: null labels: app: gitpod diff --git a/install/installer/cmd/testdata/render/workspace-requests-limits/output.golden b/install/installer/cmd/testdata/render/workspace-requests-limits/output.golden index 629ca0889d61e0..f3f570393ab946 100644 --- a/install/installer/cmd/testdata/render/workspace-requests-limits/output.golden +++ b/install/installer/cmd/testdata/render/workspace-requests-limits/output.golden @@ -4279,7 +4279,8 @@ data: "supervisor-frontend", "vscode-workbench", "vscode-server", - "vscode-web" + "vscode-web", + "gitod-cli" ] } }, @@ -8397,7 +8398,7 @@ spec: template: metadata: annotations: - gitpod.io/checksum_config: 261a9080da877b0199c3588c8342e2bf262b31768577d9149ad91decc34870d1 + gitpod.io/checksum_config: e3036e9137104898ca63a2de740d51a1994a1d8719542df1ace792c634f1ea2c creationTimestamp: null labels: app: gitpod diff --git a/install/installer/pkg/components/ide-metrics/configmap.go b/install/installer/pkg/components/ide-metrics/configmap.go index a233d3191e03b0..fdea0f062be272 100644 --- a/install/installer/pkg/components/ide-metrics/configmap.go +++ b/install/installer/pkg/components/ide-metrics/configmap.go @@ -125,6 +125,7 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) { "vscode-workbench", "vscode-server", "vscode-web", + "gitpod-cli", }, }