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
func IsOSSTelemetryEnabled() bool {
ossSegmentKey := GetOrDefaultEnv("OSS_TELEMETRY_ENABLED", "true")
return ossSegmentKey == "true"
}
const MaxAllowedPointsInTimeSeries = 300
func IsTelemetryEnabled() bool {

View File

@ -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) {