chore: segment oss (#5910)

Co-authored-by: Prashant Shahi <prashant@signoz.io>
This commit is contained in:
Vishal Sharma 2024-09-10 13:54:30 +05:30 committed by GitHub
parent 3c151e3adb
commit 573d369d4b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 30 additions and 15 deletions

View File

@ -25,6 +25,11 @@ var ConfigSignozIo = "https://config.signoz.io/api/v1"
var DEFAULT_TELEMETRY_ANONYMOUS = false var DEFAULT_TELEMETRY_ANONYMOUS = false
func IsOSSTelemetryEnabled() bool {
ossSegmentKey := GetOrDefaultEnv("OSS_TELEMETRY_ENABLED", "true")
return ossSegmentKey == "true"
}
const MaxAllowedPointsInTimeSeries = 300 const MaxAllowedPointsInTimeSeries = 300
func IsTelemetryEnabled() bool { func IsTelemetryEnabled() bool {

View File

@ -204,11 +204,19 @@ func createTelemetry() {
return return
} }
telemetry = &Telemetry{ if constants.IsOSSTelemetryEnabled() {
ossOperator: analytics.New(api_key), telemetry = &Telemetry{
ipAddress: getOutboundIP(), ossOperator: analytics.New(api_key),
rateLimits: make(map[string]int8), ipAddress: getOutboundIP(),
activeUser: make(map[string]int8), 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.minRandInt = 0
telemetry.maxRandInt = int(1 / DEFAULT_SAMPLING) telemetry.maxRandInt = int(1 / DEFAULT_SAMPLING)
@ -484,16 +492,18 @@ func (a *Telemetry) IdentifyUser(user *model.User) {
}) })
} }
a.ossOperator.Enqueue(analytics.Identify{ if a.ossOperator != nil {
UserId: a.ipAddress, a.ossOperator.Enqueue(analytics.Identify{
Traits: analytics.NewTraits().SetName(user.Name).SetEmail(user.Email).Set("ip", a.ipAddress), 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{ // Updating a groups properties
UserId: a.ipAddress, a.ossOperator.Enqueue(analytics.Group{
GroupId: a.getCompanyDomain(), UserId: a.ipAddress,
Traits: analytics.NewTraits().Set("company_domain", a.getCompanyDomain()), GroupId: a.getCompanyDomain(),
}) Traits: analytics.NewTraits().Set("company_domain", a.getCompanyDomain()),
})
}
} }
func (a *Telemetry) SetUserEmail(email string) { func (a *Telemetry) SetUserEmail(email string) {