From bccc5397f6737465e13bc10fdfd9c015f3c08d28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Gyllensw=C3=A4rd?= Date: Fri, 22 Nov 2019 12:19:00 +0100 Subject: [PATCH] Instrumentation: Edition and license info to usage stats (#20589) * Added edition and licensing info to usage stats --- pkg/infra/usagestats/usage_stats.go | 47 +++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/pkg/infra/usagestats/usage_stats.go b/pkg/infra/usagestats/usage_stats.go index 6670df60e30..ff9f4a3fd2b 100644 --- a/pkg/infra/usagestats/usage_stats.go +++ b/pkg/infra/usagestats/usage_stats.go @@ -28,12 +28,13 @@ func (uss *UsageStatsService) sendUsageStats(oauthProviders map[string]bool) { metrics := map[string]interface{}{} report := map[string]interface{}{ - "version": version, - "metrics": metrics, - "os": runtime.GOOS, - "arch": runtime.GOARCH, - "edition": getEdition(uss.License.HasValidLicense()), - "packaging": setting.Packaging, + "version": version, + "metrics": metrics, + "os": runtime.GOOS, + "arch": runtime.GOARCH, + "edition": getEdition(), + "hasValidLicense": uss.License.HasValidLicense(), + "packaging": setting.Packaging, } statsQuery := models.GetSystemStatsQuery{} @@ -60,6 +61,9 @@ func (uss *UsageStatsService) sendUsageStats(oauthProviders map[string]bool) { metrics["stats.snapshots.count"] = statsQuery.Result.Snapshots metrics["stats.teams.count"] = statsQuery.Result.Teams metrics["stats.total_auth_token.count"] = statsQuery.Result.AuthTokens + metrics["stats.valid_license.count"] = getValidLicenseCount(uss.License.HasValidLicense()) + metrics["stats.edition.oss.count"] = getOssEditionCount() + metrics["stats.edition.enterprise.count"] = getEnterpriseEditionCount() userCount := statsQuery.Result.Users avgAuthTokensPerUser := statsQuery.Result.AuthTokens @@ -182,9 +186,32 @@ func (uss *UsageStatsService) updateTotalStats() { metrics.StatsTotalActiveAdmins.Set(float64(statsQuery.Result.ActiveAdmins)) } -func getEdition(validLicense bool) string { - if validLicense { - return "enterprise" +func getEdition() string { + edition := "oss" + if setting.IsEnterprise { + edition = "enterprise" } - return "oss" + + return edition +} + +func getEnterpriseEditionCount() int { + if setting.IsEnterprise { + return 1 + } + return 0 +} + +func getOssEditionCount() int { + if setting.IsEnterprise { + return 0 + } + return 1 +} + +func getValidLicenseCount(validLicense bool) int { + if validLicense { + return 1 + } + return 0 }