diff --git a/pkg/metrics/components/cp_info.go b/pkg/metrics/components/cp_info.go index d6c5bf87d3b0..4804261db98d 100644 --- a/pkg/metrics/components/cp_info.go +++ b/pkg/metrics/components/cp_info.go @@ -12,18 +12,13 @@ import ( ) func Setup(rt runtime.Runtime) error { + labels := version.Build.AsMap() + labels["instance_id"] = rt.GetInstanceId() + labels["cluster_id"] = rt.GetClusterId() cpInfoMetric := prometheus.NewGaugeFunc(prometheus.GaugeOpts{ - Name: "cp_info", - Help: "Static information about the CP instance", - ConstLabels: map[string]string{ - "instance_id": rt.GetInstanceId(), - "cluster_id": rt.GetClusterId(), - "product": version.Product, - "version": version.Build.Version, - "build_date": version.Build.BuildDate, - "git_commit": version.Build.GitCommit, - "git_tag": version.Build.GitTag, - }, + Name: "cp_info", + Help: "Static information about the CP instance", + ConstLabels: labels, }, func() float64 { return 1.0 }) diff --git a/pkg/version/version.go b/pkg/version/version.go index 31e0dd38d268..09e431e53254 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -42,14 +42,39 @@ func (b BuildInfo) FormatDetailedProductInfo() string { ) } +func shortCommit(c string) string { + if len(c) < 7 { + return c + } + return c[:7] +} + +func (b BuildInfo) AsMap() map[string]string { + res := map[string]string{ + "product": b.Product, + "version": b.Version, + "build_date": b.BuildDate, + "git_commit": shortCommit(b.GitCommit), + "git_tag": b.GitTag, + } + if b.BasedOnKuma != "" { + res["based_on_kuma"] = shortCommit(b.BasedOnKuma) + } + return res +} + func (b BuildInfo) UserAgent(component string) string { + commit := shortCommit(b.GitCommit) + if b.BasedOnKuma != "" { + commit = fmt.Sprintf("%s/kuma-%s", commit, shortCommit(b.BasedOnKuma)) + } return fmt.Sprintf("%s/%s (%s; %s; %s/%s)", component, b.Version, runtime.GOOS, runtime.GOARCH, b.Product, - b.GitCommit[:7]) + commit) } var Build BuildInfo