From 573d369d4b9ee104a33847e18909c6dabf710e78 Mon Sep 17 00:00:00 2001 From: Vishal Sharma Date: Tue, 10 Sep 2024 13:54:30 +0530 Subject: [PATCH] chore: segment oss (#5910) Co-authored-by: Prashant Shahi --- pkg/query-service/constants/constants.go | 5 +++ pkg/query-service/telemetry/telemetry.go | 40 +++++++++++++++--------- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/pkg/query-service/constants/constants.go b/pkg/query-service/constants/constants.go index 02211008c1..70eda959dc 100644 --- a/pkg/query-service/constants/constants.go +++ b/pkg/query-service/constants/constants.go @@ -25,6 +25,11 @@ var ConfigSignozIo = "https://config.signoz.io/api/v1" var DEFAULT_TELEMETRY_ANONYMOUS = false +func IsOSSTelemetryEnabled() bool { + ossSegmentKey := GetOrDefaultEnv("OSS_TELEMETRY_ENABLED", "true") + return ossSegmentKey == "true" +} + const MaxAllowedPointsInTimeSeries = 300 func IsTelemetryEnabled() bool { diff --git a/pkg/query-service/telemetry/telemetry.go b/pkg/query-service/telemetry/telemetry.go index 88f3a09542..7f282ea3f9 100644 --- a/pkg/query-service/telemetry/telemetry.go +++ b/pkg/query-service/telemetry/telemetry.go @@ -204,11 +204,19 @@ func createTelemetry() { return } - telemetry = &Telemetry{ - ossOperator: analytics.New(api_key), - ipAddress: getOutboundIP(), - rateLimits: make(map[string]int8), - activeUser: make(map[string]int8), + if constants.IsOSSTelemetryEnabled() { + telemetry = &Telemetry{ + ossOperator: analytics.New(api_key), + ipAddress: getOutboundIP(), + rateLimits: make(map[string]int8), + activeUser: make(map[string]int8), + } + } else { + telemetry = &Telemetry{ + ipAddress: getOutboundIP(), + rateLimits: make(map[string]int8), + activeUser: make(map[string]int8), + } } telemetry.minRandInt = 0 telemetry.maxRandInt = int(1 / DEFAULT_SAMPLING) @@ -484,16 +492,18 @@ func (a *Telemetry) IdentifyUser(user *model.User) { }) } - a.ossOperator.Enqueue(analytics.Identify{ - UserId: a.ipAddress, - Traits: analytics.NewTraits().SetName(user.Name).SetEmail(user.Email).Set("ip", a.ipAddress), - }) - // Updating a groups properties - a.ossOperator.Enqueue(analytics.Group{ - UserId: a.ipAddress, - GroupId: a.getCompanyDomain(), - Traits: analytics.NewTraits().Set("company_domain", a.getCompanyDomain()), - }) + if a.ossOperator != nil { + a.ossOperator.Enqueue(analytics.Identify{ + UserId: a.ipAddress, + Traits: analytics.NewTraits().SetName(user.Name).SetEmail(user.Email).Set("ip", a.ipAddress), + }) + // Updating a groups properties + a.ossOperator.Enqueue(analytics.Group{ + UserId: a.ipAddress, + GroupId: a.getCompanyDomain(), + Traits: analytics.NewTraits().Set("company_domain", a.getCompanyDomain()), + }) + } } func (a *Telemetry) SetUserEmail(email string) {