From 4da7571e2e6086612218d607e7b80ad97446a859 Mon Sep 17 00:00:00 2001 From: Charly Molter Date: Wed, 27 Sep 2023 10:15:23 +0200 Subject: [PATCH] feat(kds): add user-agent with useful version info (#7886) This is useful to debug KDS problems with access log on gateways Signed-off-by: Charly Molter --- app/kumactl/pkg/client/api_server_client.go | 6 ++++++ pkg/kds/mux/client.go | 3 ++- pkg/version/version.go | 11 +++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/kumactl/pkg/client/api_server_client.go b/app/kumactl/pkg/client/api_server_client.go index ed4e0238a86d..7ad04396dbea 100644 --- a/app/kumactl/pkg/client/api_server_client.go +++ b/app/kumactl/pkg/client/api_server_client.go @@ -12,7 +12,13 @@ import ( ) func ApiServerClient(coordinates *config_proto.ControlPlaneCoordinates_ApiServer, timeout time.Duration) (util_http.Client, error) { +<<<<<<< HEAD headers := make(map[string]string) +======= + headers := map[string]string{ + "User-Agent": kuma_version.Build.UserAgent("kumactl"), + } +>>>>>>> 01b999035 (feat(kds): add user-agent with useful version info (#7886)) baseURL, err := url.Parse(coordinates.Url) if err != nil { return nil, errors.Wrapf(err, "Failed to parse API Server URL") diff --git a/pkg/kds/mux/client.go b/pkg/kds/mux/client.go index 858a9a862f62..153ad10309df 100644 --- a/pkg/kds/mux/client.go +++ b/pkg/kds/mux/client.go @@ -25,6 +25,7 @@ import ( "github.com/kumahq/kuma/pkg/core/runtime/component" "github.com/kumahq/kuma/pkg/kds/service" "github.com/kumahq/kuma/pkg/metrics" + "github.com/kumahq/kuma/pkg/version" ) var muxClientLog = core.Log.WithName("kds-mux-client") @@ -63,7 +64,7 @@ func (c *client) Start(stop <-chan struct{}) (errs error) { return err } dialOpts := c.metrics.GRPCClientInterceptors() - dialOpts = append(dialOpts, grpc.WithDefaultCallOptions( + dialOpts = append(dialOpts, grpc.WithUserAgent(version.Build.UserAgent("kds")), grpc.WithDefaultCallOptions( grpc.MaxCallSendMsgSize(int(c.config.MaxMsgSize)), grpc.MaxCallRecvMsgSize(int(c.config.MaxMsgSize))), grpc.WithKeepaliveParams(keepalive.ClientParameters{ diff --git a/pkg/version/version.go b/pkg/version/version.go index ca2bacfffd4d..31e0dd38d268 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -2,6 +2,7 @@ package version import ( "fmt" + "runtime" "strings" ) @@ -41,6 +42,16 @@ func (b BuildInfo) FormatDetailedProductInfo() string { ) } +func (b BuildInfo) UserAgent(component string) string { + return fmt.Sprintf("%s/%s (%s; %s; %s/%s)", + component, + b.Version, + runtime.GOOS, + runtime.GOARCH, + b.Product, + b.GitCommit[:7]) +} + var Build BuildInfo func init() {