mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 02:21:29 +08:00
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package ga
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/denisbrodbeck/machineid"
|
|
"github.com/getsentry/sentry-go"
|
|
"github.com/google/uuid"
|
|
"github.com/rs/zerolog/log"
|
|
|
|
"github.com/httprunner/httprunner/hrp/internal/version"
|
|
)
|
|
|
|
const (
|
|
trackingID = "UA-114587036-1" // Tracking ID for Google Analytics
|
|
sentryDSN = "https://cff5efc69b1a4325a4cf873f1e70c13a@o334324.ingest.sentry.io/6070292"
|
|
)
|
|
|
|
var gaClient *GAClient
|
|
|
|
func init() {
|
|
clientID, err := machineid.ProtectedID("hrp")
|
|
if err != nil {
|
|
nodeUUID, _ := uuid.NewUUID()
|
|
clientID = nodeUUID.String()
|
|
}
|
|
gaClient = NewGAClient(trackingID, clientID)
|
|
|
|
// init sentry sdk
|
|
err = sentry.Init(sentry.ClientOptions{
|
|
Dsn: sentryDSN,
|
|
Release: fmt.Sprintf("httprunner@%s", version.VERSION),
|
|
AttachStacktrace: true,
|
|
})
|
|
if err != nil {
|
|
log.Error().Err(err).Msg("init sentry sdk failed!")
|
|
return
|
|
}
|
|
sentry.ConfigureScope(func(scope *sentry.Scope) {
|
|
scope.SetLevel(sentry.LevelError)
|
|
scope.SetUser(sentry.User{
|
|
ID: clientID,
|
|
})
|
|
})
|
|
}
|
|
|
|
func SendEvent(e IEvent) error {
|
|
return gaClient.SendEvent(e)
|
|
}
|