diff --git a/backend/cmd/db/main.go b/backend/cmd/db/main.go index f14711e28..e1994aadf 100644 --- a/backend/cmd/db/main.go +++ b/backend/cmd/db/main.go @@ -62,10 +62,10 @@ func main() { messages.MsgPageEvent, messages.MsgMouseThrashing, messages.MsgInputChange, messages.MsgUnbindNodes, messages.MsgCanvasNode, messages.MsgTagTrigger, // Mobile messages - messages.MsgIOSSessionStart, messages.MsgIOSSessionEnd, messages.MsgIOSUserID, messages.MsgIOSUserAnonymousID, - messages.MsgIOSMetadata, messages.MsgIOSEvent, messages.MsgIOSNetworkCall, - messages.MsgIOSClickEvent, messages.MsgIOSSwipeEvent, messages.MsgIOSInputEvent, - messages.MsgIOSCrash, messages.MsgIOSIssueEvent, + messages.MsgMobileSessionStart, messages.MsgMobileSessionEnd, messages.MsgMobileUserID, messages.MsgMobileUserAnonymousID, + messages.MsgMobileMetadata, messages.MsgMobileEvent, messages.MsgMobileNetworkCall, + messages.MsgMobileClickEvent, messages.MsgMobileSwipeEvent, messages.MsgMobileInputEvent, + messages.MsgMobileCrash, messages.MsgMobileIssueEvent, } // Init consumer @@ -73,7 +73,7 @@ func main() { cfg.GroupDB, []string{ cfg.TopicRawWeb, - cfg.TopicRawIOS, + cfg.TopicRawMobile, cfg.TopicAnalytics, }, messages.NewMessageIterator(log, saver.Handle, msgFilter, true), diff --git a/backend/cmd/ender/main.go b/backend/cmd/ender/main.go index c8ad1dcaa..f54e5fb79 100644 --- a/backend/cmd/ender/main.go +++ b/backend/cmd/ender/main.go @@ -60,7 +60,7 @@ func main() { cfg.GroupEnder, []string{ cfg.TopicRawWeb, - cfg.TopicRawIOS, + cfg.TopicRawMobile, }, messages.NewEnderMessageIterator( log, @@ -170,14 +170,14 @@ func main() { } } if sess != nil && (sess.Platform == "ios" || sess.Platform == "android") { - msg := &messages.IOSSessionEnd{Timestamp: timestamp} - if err := producer.Produce(cfg.TopicRawIOS, sessionID, msg.Encode()); err != nil { - log.Error(sessCtx, "can't send iOSSessionEnd to mobile topic: %s", err) + msg := &messages.MobileSessionEnd{Timestamp: timestamp} + if err := producer.Produce(cfg.TopicRawMobile, sessionID, msg.Encode()); err != nil { + log.Error(sessCtx, "can't send MobileSessionEnd to mobile topic: %s", err) return false, 0 } // Inform canvas service about session end if err := producer.Produce(cfg.TopicRawImages, sessionID, msg.Encode()); err != nil { - log.Error(sessCtx, "can't send iOSSessionEnd signal to canvas topic: %s", err) + log.Error(sessCtx, "can't send MobileSessionEnd signal to canvas topic: %s", err) } } else { if err := producer.Produce(cfg.TopicRawWeb, sessionID, msg.Encode()); err != nil { diff --git a/backend/cmd/heuristics/main.go b/backend/cmd/heuristics/main.go index 51f40a359..c6ed4ac6a 100644 --- a/backend/cmd/heuristics/main.go +++ b/backend/cmd/heuristics/main.go @@ -7,7 +7,7 @@ import ( "openreplay/backend/pkg/builders" "openreplay/backend/pkg/handlers" "openreplay/backend/pkg/handlers/custom" - "openreplay/backend/pkg/handlers/ios" + "openreplay/backend/pkg/handlers/mobile" "openreplay/backend/pkg/handlers/web" "openreplay/backend/pkg/logger" "openreplay/backend/pkg/memory" @@ -35,8 +35,8 @@ func main() { &web.NetworkIssueDetector{}, &web.PerformanceAggregator{}, web.NewAppCrashDetector(), - &ios.TapRageDetector{}, - ios.NewViewComponentDurations(), + &mobile.TapRageDetector{}, + mobile.NewViewComponentDurations(), } } @@ -46,7 +46,7 @@ func main() { cfg.GroupHeuristics, []string{ cfg.TopicRawWeb, - cfg.TopicRawIOS, + cfg.TopicRawMobile, }, messages.NewMessageIterator(log, eventBuilder.HandleMessage, nil, true), false, diff --git a/backend/cmd/imagestorage/main.go b/backend/cmd/imagestorage/main.go index f95b00625..6a199ef36 100644 --- a/backend/cmd/imagestorage/main.go +++ b/backend/cmd/imagestorage/main.go @@ -49,7 +49,7 @@ func main() { if err != nil { return nil, err } - if msgType != messages.MsgIOSSessionEnd { + if msgType != messages.MsgMobileSessionEnd { return nil, fmt.Errorf("not a mobile session end message") } msg, err := messages.ReadMessage(msgType, reader) diff --git a/backend/cmd/sink/main.go b/backend/cmd/sink/main.go index c30417072..42917017e 100644 --- a/backend/cmd/sink/main.go +++ b/backend/cmd/sink/main.go @@ -81,14 +81,14 @@ func main() { sessCtx := context.WithValue(context.Background(), "sessionID", msg.SessionID()) // Send SessionEnd trigger to storage service - if msg.TypeID() == messages.MsgSessionEnd || msg.TypeID() == messages.MsgIOSSessionEnd { + if msg.TypeID() == messages.MsgSessionEnd || msg.TypeID() == messages.MsgMobileSessionEnd { if err := producer.Produce(cfg.TopicTrigger, msg.SessionID(), msg.Encode()); err != nil { log.Error(sessCtx, "can't send SessionEnd to trigger topic: %s", err) } // duplicate session end message to mobile trigger topic to build video replay for mobile sessions - if msg.TypeID() == messages.MsgIOSSessionEnd { + if msg.TypeID() == messages.MsgMobileSessionEnd { if err := producer.Produce(cfg.TopicMobileTrigger, msg.SessionID(), msg.Encode()); err != nil { - log.Error(sessCtx, "can't send iOSSessionEnd to mobile trigger topic: %s", err) + log.Error(sessCtx, "can't send MobileSessionEnd to mobile trigger topic: %s", err) } } writer.Close(msg.SessionID()) @@ -190,7 +190,7 @@ func main() { cfg.GroupSink, []string{ cfg.TopicRawWeb, - cfg.TopicRawIOS, + cfg.TopicRawMobile, }, messages.NewSinkMessageIterator(log, msgHandler, nil, false), false, diff --git a/backend/cmd/storage/main.go b/backend/cmd/storage/main.go index afa5787de..4d18c1cae 100644 --- a/backend/cmd/storage/main.go +++ b/backend/cmd/storage/main.go @@ -48,9 +48,9 @@ func main() { messages.NewMessageIterator( log, func(msg messages.Message) { - // Convert IOSSessionEnd to SessionEnd - if msg.TypeID() == messages.MsgIOSSessionEnd { - mobileEnd, oldMeta := msg.(*messages.IOSSessionEnd), msg.Meta() + // Convert MobileSessionEnd to SessionEnd + if msg.TypeID() == messages.MsgMobileSessionEnd { + mobileEnd, oldMeta := msg.(*messages.MobileSessionEnd), msg.Meta() msg = &messages.SessionEnd{ Timestamp: mobileEnd.Timestamp, } @@ -66,7 +66,7 @@ func main() { // Log timestamp of last processed session counter.Update(msg.SessionID(), time.UnixMilli(msg.Meta().Batch().Timestamp())) }, - []int{messages.MsgSessionEnd, messages.MsgIOSSessionEnd}, + []int{messages.MsgSessionEnd, messages.MsgMobileSessionEnd}, true, ), false, diff --git a/backend/internal/config/db/config.go b/backend/internal/config/db/config.go index 2cf5fd237..48d49dc62 100644 --- a/backend/internal/config/db/config.go +++ b/backend/internal/config/db/config.go @@ -17,7 +17,7 @@ type Config struct { GroupDB string `env:"GROUP_DB,required"` TopicRawWeb string `env:"TOPIC_RAW_WEB,required"` TopicAnalytics string `env:"TOPIC_ANALYTICS,required"` - TopicRawIOS string `env:"TOPIC_RAW_IOS,required"` + TopicRawMobile string `env:"TOPIC_RAW_IOS,required"` CommitBatchTimeout time.Duration `env:"COMMIT_BATCH_TIMEOUT,default=15s"` BatchQueueLimit int `env:"DB_BATCH_QUEUE_LIMIT,required"` BatchSizeLimit int `env:"DB_BATCH_SIZE_LIMIT,required"` diff --git a/backend/internal/config/ender/config.go b/backend/internal/config/ender/config.go index 271843120..bdcfd5a7a 100644 --- a/backend/internal/config/ender/config.go +++ b/backend/internal/config/ender/config.go @@ -16,7 +16,7 @@ type Config struct { GroupEnder string `env:"GROUP_ENDER,required"` LoggerTimeout int `env:"LOG_QUEUE_STATS_INTERVAL_SEC,required"` TopicRawWeb string `env:"TOPIC_RAW_WEB,required"` - TopicRawIOS string `env:"TOPIC_RAW_IOS,required"` + TopicRawMobile string `env:"TOPIC_RAW_IOS,required"` TopicCanvasImages string `env:"TOPIC_CANVAS_IMAGES,required"` TopicRawImages string `env:"TOPIC_RAW_IMAGES,required"` ProducerTimeout int `env:"PRODUCER_TIMEOUT,default=2000"` diff --git a/backend/internal/config/heuristics/config.go b/backend/internal/config/heuristics/config.go index a98736c7e..4b94407a4 100644 --- a/backend/internal/config/heuristics/config.go +++ b/backend/internal/config/heuristics/config.go @@ -13,7 +13,7 @@ type Config struct { TopicAnalytics string `env:"TOPIC_ANALYTICS,required"` LoggerTimeout int `env:"LOG_QUEUE_STATS_INTERVAL_SEC,required"` TopicRawWeb string `env:"TOPIC_RAW_WEB,required"` - TopicRawIOS string `env:"TOPIC_RAW_IOS,required"` + TopicRawMobile string `env:"TOPIC_RAW_IOS,required"` ProducerTimeout int `env:"PRODUCER_TIMEOUT,default=2000"` UseProfiler bool `env:"PROFILER_ENABLED,default=false"` } diff --git a/backend/internal/config/http/config.go b/backend/internal/config/http/config.go index 1de2497b8..36b3b6ecc 100644 --- a/backend/internal/config/http/config.go +++ b/backend/internal/config/http/config.go @@ -19,7 +19,7 @@ type Config struct { HTTPPort string `env:"HTTP_PORT,required"` HTTPTimeout time.Duration `env:"HTTP_TIMEOUT,default=60s"` TopicRawWeb string `env:"TOPIC_RAW_WEB,required"` - TopicRawIOS string `env:"TOPIC_RAW_IOS,required"` + TopicRawMobile string `env:"TOPIC_RAW_IOS,required"` TopicRawImages string `env:"TOPIC_RAW_IMAGES,required"` TopicCanvasImages string `env:"TOPIC_CANVAS_IMAGES,required"` BeaconSizeLimit int64 `env:"BEACON_SIZE_LIMIT,required"` diff --git a/backend/internal/config/sink/config.go b/backend/internal/config/sink/config.go index e6cbdec8a..a8fa6b43d 100644 --- a/backend/internal/config/sink/config.go +++ b/backend/internal/config/sink/config.go @@ -14,7 +14,7 @@ type Config struct { SyncTimeout int `env:"SYNC_TIMEOUT,default=5"` GroupSink string `env:"GROUP_SINK,required"` TopicRawWeb string `env:"TOPIC_RAW_WEB,required"` - TopicRawIOS string `env:"TOPIC_RAW_IOS,required"` + TopicRawMobile string `env:"TOPIC_RAW_IOS,required"` TopicCache string `env:"TOPIC_CACHE,required"` TopicTrigger string `env:"TOPIC_TRIGGER,required"` TopicMobileTrigger string `env:"TOPIC_MOBILE_TRIGGER,required"` diff --git a/backend/internal/db/datasaver/saver.go b/backend/internal/db/datasaver/saver.go index 0e0a58b37..ab5e703c9 100644 --- a/backend/internal/db/datasaver/saver.go +++ b/backend/internal/db/datasaver/saver.go @@ -47,8 +47,8 @@ func (s *saverImpl) Handle(msg Message) { if msg.TypeID() == MsgCustomEvent { defer s.Handle(types.WrapCustomEvent(msg.(*CustomEvent))) } - if IsIOSType(msg.TypeID()) { - // Handle iOS messages + if IsMobileType(msg.TypeID()) { + // Handle Mobile messages if err := s.handleMobileMessage(msg); err != nil { if !postgres.IsPkeyViolation(err) { s.log.Error(sessCtx, "mobile message insertion error, msg: %+v, err: %s", msg, err) @@ -77,41 +77,41 @@ func (s *saverImpl) handleMobileMessage(msg Message) error { return err } switch m := msg.(type) { - case *IOSUserID: + case *MobileUserID: if err = s.sessions.UpdateUserID(session.SessionID, m.ID); err != nil { return err } - s.pg.InsertAutocompleteValue(session.SessionID, session.ProjectID, "USERID_IOS", m.ID) + s.pg.InsertAutocompleteValue(session.SessionID, session.ProjectID, "USERID_Mobile", m.ID) return nil - case *IOSUserAnonymousID: + case *MobileUserAnonymousID: if err = s.sessions.UpdateAnonymousID(session.SessionID, m.ID); err != nil { return err } - s.pg.InsertAutocompleteValue(session.SessionID, session.ProjectID, "USERANONYMOUSID_IOS", m.ID) + s.pg.InsertAutocompleteValue(session.SessionID, session.ProjectID, "USERANONYMOUSID_Mobile", m.ID) return nil - case *IOSMetadata: + case *MobileMetadata: return s.sessions.UpdateMetadata(m.SessionID(), m.Key, m.Value) - case *IOSEvent: - return s.pg.InsertIOSEvent(session, m) - case *IOSClickEvent: - if err := s.pg.InsertIOSClickEvent(session, m); err != nil { + case *MobileEvent: + return s.pg.InsertMobileEvent(session, m) + case *MobileClickEvent: + if err := s.pg.InsertMobileClickEvent(session, m); err != nil { return err } return s.sessions.UpdateEventsStats(session.SessionID, 1, 0) - case *IOSSwipeEvent: - if err := s.pg.InsertIOSSwipeEvent(session, m); err != nil { + case *MobileSwipeEvent: + if err := s.pg.InsertMobileSwipeEvent(session, m); err != nil { return err } return s.sessions.UpdateEventsStats(session.SessionID, 1, 0) - case *IOSInputEvent: - if err := s.pg.InsertIOSInputEvent(session, m); err != nil { + case *MobileInputEvent: + if err := s.pg.InsertMobileInputEvent(session, m); err != nil { return err } return s.sessions.UpdateEventsStats(session.SessionID, 1, 0) - case *IOSNetworkCall: - return s.pg.InsertIOSNetworkCall(session, m) - case *IOSCrash: - if err := s.pg.InsertIOSCrash(session.SessionID, session.ProjectID, m); err != nil { + case *MobileNetworkCall: + return s.pg.InsertMobileNetworkCall(session, m) + case *MobileCrash: + if err := s.pg.InsertMobileCrash(session.SessionID, session.ProjectID, m); err != nil { return err } return s.sessions.UpdateIssuesStats(session.SessionID, 1, 1000) diff --git a/backend/internal/http/router/handlers-mobile.go b/backend/internal/http/router/handlers-mobile.go index c0fb0eaf7..c51509e65 100644 --- a/backend/internal/http/router/handlers-mobile.go +++ b/backend/internal/http/router/handlers-mobile.go @@ -18,7 +18,7 @@ import ( "time" ) -func (e *Router) startSessionHandlerIOS(w http.ResponseWriter, r *http.Request) { +func (e *Router) startMobileSessionHandler(w http.ResponseWriter, r *http.Request) { startTime := time.Now() if r.Body == nil { @@ -137,20 +137,20 @@ func (e *Router) startSessionHandlerIOS(w http.ResponseWriter, r *http.Request) e.log.Warn(r.Context(), "failed to add mobile session to DB: %s", err) } - sessStart := &messages.IOSSessionStart{ + sessStart := &messages.MobileSessionStart{ Timestamp: req.Timestamp, ProjectID: uint64(p.ProjectID), TrackerVersion: req.TrackerVersion, RevID: req.RevID, UserUUID: userUUID, - UserOS: "IOS", + UserOS: os, UserOSVersion: req.UserOSVersion, UserDevice: ios.MapIOSDevice(req.UserDevice), - UserDeviceType: ios.GetIOSDeviceType(req.UserDevice), + UserDeviceType: deviceType, UserCountry: geoInfo.Pack(), } - if err := e.services.Producer.Produce(e.cfg.TopicRawIOS, tokenData.ID, sessStart.Encode()); err != nil { + if err := e.services.Producer.Produce(e.cfg.TopicRawMobile, tokenData.ID, sessStart.Encode()); err != nil { e.log.Error(r.Context(), "failed to send mobile sessionStart event to queue: %s", err) } } @@ -167,7 +167,7 @@ func (e *Router) startSessionHandlerIOS(w http.ResponseWriter, r *http.Request) }, startTime, r.URL.Path, 0) } -func (e *Router) pushMessagesHandlerIOS(w http.ResponseWriter, r *http.Request) { +func (e *Router) pushMobileMessagesHandler(w http.ResponseWriter, r *http.Request) { startTime := time.Now() sessionData, err := e.services.Tokenizer.ParseFromHTTPRequest(r) @@ -184,10 +184,10 @@ func (e *Router) pushMessagesHandlerIOS(w http.ResponseWriter, r *http.Request) r = r.WithContext(context.WithValue(r.Context(), "projectID", fmt.Sprintf("%d", info.ProjectID))) } - e.pushMessages(w, r, sessionData.ID, e.cfg.TopicRawIOS) + e.pushMessages(w, r, sessionData.ID, e.cfg.TopicRawMobile) } -func (e *Router) pushLateMessagesHandlerIOS(w http.ResponseWriter, r *http.Request) { +func (e *Router) pushMobileLateMessagesHandler(w http.ResponseWriter, r *http.Request) { startTime := time.Now() sessionData, err := e.services.Tokenizer.ParseFromHTTPRequest(r) if sessionData != nil { @@ -199,10 +199,10 @@ func (e *Router) pushLateMessagesHandlerIOS(w http.ResponseWriter, r *http.Reque return } // Check timestamps here? - e.pushMessages(w, r, sessionData.ID, e.cfg.TopicRawIOS) + e.pushMessages(w, r, sessionData.ID, e.cfg.TopicRawMobile) } -func (e *Router) imagesUploadHandlerIOS(w http.ResponseWriter, r *http.Request) { +func (e *Router) mobileImagesUploadHandler(w http.ResponseWriter, r *http.Request) { startTime := time.Now() sessionData, err := e.services.Tokenizer.ParseFromHTTPRequest(r) diff --git a/backend/internal/http/router/router.go b/backend/internal/http/router/router.go index 48d4486a9..71954431f 100644 --- a/backend/internal/http/router/router.go +++ b/backend/internal/http/router/router.go @@ -115,10 +115,10 @@ func (e *Router) init() { "/v1/web/i": e.pushMessagesHandlerWeb, "/v1/web/feature-flags": e.featureFlagsHandlerWeb, "/v1/web/images": e.imagesUploaderHandlerWeb, - "/v1/mobile/start": e.startSessionHandlerIOS, - "/v1/mobile/i": e.pushMessagesHandlerIOS, - "/v1/mobile/late": e.pushLateMessagesHandlerIOS, - "/v1/mobile/images": e.imagesUploadHandlerIOS, + "/v1/mobile/start": e.startMobileSessionHandler, + "/v1/mobile/i": e.pushMobileMessagesHandler, + "/v1/mobile/late": e.pushMobileLateMessagesHandler, + "/v1/mobile/images": e.mobileImagesUploadHandler, "/v1/web/uxt/signals/test": e.sendUXTestSignal, "/v1/web/uxt/signals/task": e.sendUXTaskSignal, } diff --git a/backend/internal/sessionender/ender.go b/backend/internal/sessionender/ender.go index 69f2bcb61..2a59d405c 100644 --- a/backend/internal/sessionender/ender.go +++ b/backend/internal/sessionender/ender.go @@ -72,7 +72,7 @@ func (se *SessionEnder) UpdateSession(msg messages.Message) { msgTimestamp = msg.Meta().Timestamp localTimestamp = time.Now().UnixMilli() ) - if messages.IsIOSType(msg.TypeID()) { + if messages.IsMobileType(msg.TypeID()) { msgTimestamp = messages.GetTimestamp(msg) } if batchTimestamp == 0 { @@ -87,7 +87,7 @@ func (se *SessionEnder) UpdateSession(msg messages.Message) { lastUpdate: localTimestamp, lastUserTime: msgTimestamp, // last timestamp from user's machine isEnded: false, - isMobile: messages.IsIOSType(msg.TypeID()), + isMobile: messages.IsMobileType(msg.TypeID()), } ender.IncreaseActiveSessions() ender.IncreaseTotalSessions() diff --git a/backend/pkg/builders/builder.go b/backend/pkg/builders/builder.go index 47355b304..36de554e5 100644 --- a/backend/pkg/builders/builder.go +++ b/backend/pkg/builders/builder.go @@ -27,7 +27,7 @@ func NewBuilder(sessionID uint64, events chan Message, handlers ...handlers.Mess } func (b *builder) checkSessionEnd(message Message) { - if _, isEnd := message.(*IOSSessionEnd); isEnd { + if _, isEnd := message.(*MobileSessionEnd); isEnd { b.ended = true } if _, isEnd := message.(*SessionEnd); isEnd { diff --git a/backend/pkg/db/postgres/mobile.go b/backend/pkg/db/postgres/mobile.go index 2a5796952..89943cb27 100644 --- a/backend/pkg/db/postgres/mobile.go +++ b/backend/pkg/db/postgres/mobile.go @@ -9,23 +9,23 @@ import ( "openreplay/backend/pkg/url" ) -func (conn *Conn) InsertIOSEvent(session *sessions.Session, e *messages.IOSEvent) error { +func (conn *Conn) InsertMobileEvent(session *sessions.Session, e *messages.MobileEvent) error { if err := conn.InsertCustomEvent(session.SessionID, e.Timestamp, truncSqIdx(e.Index), e.Name, e.Payload); err != nil { return err } - conn.InsertAutocompleteValue(session.SessionID, session.ProjectID, "CUSTOM_IOS", e.Name) + conn.InsertAutocompleteValue(session.SessionID, session.ProjectID, "CUSTOM_Mobile", e.Name) return nil } -func (conn *Conn) InsertIOSNetworkCall(sess *sessions.Session, e *messages.IOSNetworkCall) error { +func (conn *Conn) InsertMobileNetworkCall(sess *sessions.Session, e *messages.MobileNetworkCall) error { err := conn.InsertRequest(sess.SessionID, e.Timestamp, truncSqIdx(e.Index), e.URL, e.Duration, e.Status < 400) if err == nil { - conn.InsertAutocompleteValue(sess.SessionID, sess.ProjectID, "REQUEST_IOS", url.DiscardURLQuery(e.URL)) + conn.InsertAutocompleteValue(sess.SessionID, sess.ProjectID, "REQUEST_Mobile", url.DiscardURLQuery(e.URL)) } return err } -func (conn *Conn) InsertIOSClickEvent(sess *sessions.Session, clickEvent *messages.IOSClickEvent) error { +func (conn *Conn) InsertMobileClickEvent(sess *sessions.Session, clickEvent *messages.MobileClickEvent) error { if err := conn.Pool.Exec(` INSERT INTO events_ios.taps ( session_id, timestamp, seq_index, label @@ -36,11 +36,11 @@ func (conn *Conn) InsertIOSClickEvent(sess *sessions.Session, clickEvent *messag ); err != nil { return err } - conn.InsertAutocompleteValue(sess.SessionID, sess.ProjectID, "CLICK_IOS", clickEvent.Label) + conn.InsertAutocompleteValue(sess.SessionID, sess.ProjectID, "CLICK_Mobile", clickEvent.Label) return nil } -func (conn *Conn) InsertIOSSwipeEvent(sess *sessions.Session, swipeEvent *messages.IOSSwipeEvent) error { +func (conn *Conn) InsertMobileSwipeEvent(sess *sessions.Session, swipeEvent *messages.MobileSwipeEvent) error { if err := conn.Pool.Exec(` INSERT INTO events_ios.swipes ( session_id, timestamp, seq_index, label, direction @@ -51,11 +51,11 @@ func (conn *Conn) InsertIOSSwipeEvent(sess *sessions.Session, swipeEvent *messag ); err != nil { return err } - conn.InsertAutocompleteValue(sess.SessionID, sess.ProjectID, "SWIPE_IOS", swipeEvent.Label) + conn.InsertAutocompleteValue(sess.SessionID, sess.ProjectID, "SWIPE_Mobile", swipeEvent.Label) return nil } -func (conn *Conn) InsertIOSInputEvent(sess *sessions.Session, inputEvent *messages.IOSInputEvent) error { +func (conn *Conn) InsertMobileInputEvent(sess *sessions.Session, inputEvent *messages.MobileInputEvent) error { if err := conn.Pool.Exec(` INSERT INTO events_ios.inputs ( session_id, timestamp, seq_index, label @@ -66,12 +66,12 @@ func (conn *Conn) InsertIOSInputEvent(sess *sessions.Session, inputEvent *messag ); err != nil { return err } - conn.InsertAutocompleteValue(sess.SessionID, sess.ProjectID, "INPUT_IOS", inputEvent.Label) + conn.InsertAutocompleteValue(sess.SessionID, sess.ProjectID, "INPUT_Mobile", inputEvent.Label) return nil } -func (conn *Conn) InsertIOSCrash(sessionID uint64, projectID uint32, crash *messages.IOSCrash) error { - crashID := hashid.IOSCrashID(projectID, crash) +func (conn *Conn) InsertMobileCrash(sessionID uint64, projectID uint32, crash *messages.MobileCrash) error { + crashID := hashid.MobileCrashID(projectID, crash) if err := conn.Pool.Exec(` INSERT INTO public.crashes_ios ( @@ -96,8 +96,8 @@ func (conn *Conn) InsertIOSCrash(sessionID uint64, projectID uint32, crash *mess return nil } -func (conn *Conn) InsertIOSIssueEvent(sess *sessions.Session, e *messages.IOSIssueEvent) error { - issueID := hashid.IOSIssueID(sess.ProjectID, e) +func (conn *Conn) InsertMobileIssueEvent(sess *sessions.Session, e *messages.MobileIssueEvent) error { + issueID := hashid.MobileIssueID(sess.ProjectID, e) payload := &e.Payload if *payload == "" || *payload == "{}" { payload = nil @@ -113,7 +113,7 @@ func (conn *Conn) InsertIOSIssueEvent(sess *sessions.Session, e *messages.IOSIss return nil } -type IOSCrash struct { +type MobileCrash struct { Timestamp uint64 `json:"timestamp"` Name string `json:"name"` Reason string `json:"reason"` diff --git a/backend/pkg/handlers/ios/appNotResponding.go b/backend/pkg/handlers/mobile/appNotResponding.go similarity index 83% rename from backend/pkg/handlers/ios/appNotResponding.go rename to backend/pkg/handlers/mobile/appNotResponding.go index cfeeba417..6496508fc 100644 --- a/backend/pkg/handlers/ios/appNotResponding.go +++ b/backend/pkg/handlers/mobile/appNotResponding.go @@ -1,4 +1,4 @@ -package ios +package mobile import ( "openreplay/backend/pkg/handlers" @@ -7,11 +7,11 @@ import ( /* Handler name: AppNotResponding - Input events: IOSClickEvent, - IOSInputEvent, - IOSPerformanceEvent, - IOSSessionEnd - Output event: IOSIssueEvent + Input events: MobileClickEvent, + MobileInputEvent, + MobilePerformanceEvent, + MobileSessionEnd + Output event: MobileIssueEvent */ const MIN_TIME_AFTER_LAST_HEARTBEAT = 60 * 1000 @@ -28,21 +28,21 @@ func (h *AppNotResponding) Handle(message Message, messageID uint64, timestamp u h.lastTimestamp = timestamp var event Message = nil switch m := message.(type) { - case *IOSClickEvent: + case *MobileClickEvent: event = h.build(m.Timestamp) h.lastLabel = m.Label h.lastHeartbeatTimestamp = m.Timestamp h.lastHeartbeatIndex = m.Index - case *IOSInputEvent: + case *MobileInputEvent: event = h.build(m.Timestamp) h.lastLabel = m.Label h.lastHeartbeatTimestamp = m.Timestamp h.lastHeartbeatIndex = m.Index - case *IOSPerformanceEvent: + case *MobilePerformanceEvent: event = h.build(m.Timestamp) h.lastHeartbeatTimestamp = m.Timestamp h.lastHeartbeatIndex = m.Index - case *IOSSessionEnd: + case *MobileSessionEnd: event = h.build(m.Timestamp) } return event @@ -54,7 +54,7 @@ func (h *AppNotResponding) Build() Message { func (h *AppNotResponding) build(timestamp uint64) Message { if h.lastHeartbeatTimestamp != 0 && h.lastHeartbeatTimestamp+MIN_TIME_AFTER_LAST_HEARTBEAT <= timestamp { - event := &IOSIssueEvent{ + event := &MobileIssueEvent{ Type: "anr", ContextString: h.lastLabel, Timestamp: h.lastHeartbeatTimestamp, diff --git a/backend/pkg/handlers/ios/performanceAggregator.go b/backend/pkg/handlers/mobile/performanceAggregator.go similarity index 89% rename from backend/pkg/handlers/ios/performanceAggregator.go rename to backend/pkg/handlers/mobile/performanceAggregator.go index 1d8f3a2d7..de2e91085 100644 --- a/backend/pkg/handlers/ios/performanceAggregator.go +++ b/backend/pkg/handlers/mobile/performanceAggregator.go @@ -1,4 +1,4 @@ -package ios +package mobile import ( "openreplay/backend/pkg/handlers" @@ -7,8 +7,8 @@ import ( /* Handler name: PerformanceAggregator - Input events: IOSPerformanceEvent, - IOSSessionEnd + Input events: MobilePerformanceEvent, + MobileSessionEnd Output event: IssueEvent */ @@ -28,7 +28,7 @@ func (va *valueAggregator) aggregate() uint64 { type PerformanceAggregator struct { handlers.ReadyMessageStore - pa *IOSPerformanceAggregated + pa *MobilePerformanceAggregated fps valueAggregator cpu valueAggregator memory valueAggregator @@ -39,11 +39,11 @@ type PerformanceAggregator struct { func (h *PerformanceAggregator) Handle(message Message, messageID uint64, timestamp uint64) Message { h.lastTimestamp = timestamp if h.pa == nil { - h.pa = &IOSPerformanceAggregated{} // TODO: struct type in messages + h.pa = &MobilePerformanceAggregated{} // TODO: struct type in messages } var event Message = nil switch m := message.(type) { // TODO: All Timestamp messages - case *IOSPerformanceEvent: + case *MobilePerformanceEvent: if h.pa.TimestampStart == 0 { h.pa.TimestampStart = m.Timestamp } @@ -88,7 +88,7 @@ func (h *PerformanceAggregator) Handle(message Message, messageID uint64, timest h.pa.MaxBattery = m.Value } } - case *IOSSessionEnd: + case *MobileSessionEnd: event = h.Build() } return event @@ -107,7 +107,7 @@ func (h *PerformanceAggregator) Build() Message { event := h.pa - h.pa = &IOSPerformanceAggregated{} + h.pa = &MobilePerformanceAggregated{} for _, agg := range []valueAggregator{h.fps, h.cpu, h.memory, h.battery} { agg.sum = 0 agg.count = 0 diff --git a/backend/pkg/handlers/ios/tapRage.go b/backend/pkg/handlers/mobile/tapRage.go similarity index 93% rename from backend/pkg/handlers/ios/tapRage.go rename to backend/pkg/handlers/mobile/tapRage.go index 1a84677b5..7d36dd6e5 100644 --- a/backend/pkg/handlers/ios/tapRage.go +++ b/backend/pkg/handlers/mobile/tapRage.go @@ -1,4 +1,4 @@ -package ios +package mobile import ( "encoding/json" @@ -29,7 +29,7 @@ func (h *TapRageDetector) createPayload() string { func (h *TapRageDetector) Build() Message { if h.countsInARow >= MinTapsInARow { - event := &IOSIssueEvent{ + event := &MobileIssueEvent{ Type: "tap_rage", ContextString: h.lastLabel, Timestamp: h.firstInARawTimestamp, @@ -49,7 +49,7 @@ func (h *TapRageDetector) Build() Message { func (h *TapRageDetector) Handle(message Message, timestamp uint64) Message { var event Message = nil switch m := message.(type) { - case *IOSClickEvent: + case *MobileClickEvent: if h.lastTimestamp+TapTimeDiff < m.Timestamp && h.lastLabel == m.Label { h.lastTimestamp = m.Timestamp h.countsInARow += 1 @@ -63,7 +63,7 @@ func (h *TapRageDetector) Handle(message Message, timestamp uint64) Message { h.firstInARawSeqIndex = m.Index h.countsInARow = 1 } - case *IOSSessionEnd: + case *MobileSessionEnd: event = h.Build() } return event diff --git a/backend/pkg/handlers/ios/viewComponentDuration.go b/backend/pkg/handlers/mobile/viewComponentDuration.go similarity index 96% rename from backend/pkg/handlers/ios/viewComponentDuration.go rename to backend/pkg/handlers/mobile/viewComponentDuration.go index 597e9c4bc..5786c574c 100644 --- a/backend/pkg/handlers/ios/viewComponentDuration.go +++ b/backend/pkg/handlers/mobile/viewComponentDuration.go @@ -1,4 +1,4 @@ -package ios +package mobile import ( . "openreplay/backend/pkg/messages" diff --git a/backend/pkg/hashid/hashid.go b/backend/pkg/hashid/hashid.go index ecba9eb09..0dca54e9f 100644 --- a/backend/pkg/hashid/hashid.go +++ b/backend/pkg/hashid/hashid.go @@ -16,14 +16,14 @@ func IssueID(projectID uint32, e *messages.IssueEvent) string { return strconv.FormatUint(uint64(projectID), 16) + hex.EncodeToString(hash.Sum(nil)) } -func IOSIssueID(projectID uint32, e *messages.IOSIssueEvent) string { +func MobileIssueID(projectID uint32, e *messages.MobileIssueEvent) string { hash := fnv.New128a() hash.Write([]byte(e.Type)) hash.Write([]byte(e.ContextString)) return strconv.FormatUint(uint64(projectID), 16) + hex.EncodeToString(hash.Sum(nil)) } -func IOSCrashID(projectID uint32, crash *messages.IOSCrash) string { +func MobileCrashID(projectID uint32, crash *messages.MobileCrash) string { hash := fnv.New128a() hash.Write([]byte(crash.Name)) hash.Write([]byte(crash.Reason)) diff --git a/backend/pkg/messages/filters.go b/backend/pkg/messages/filters.go index bd7716f7b..c4a41b57e 100644 --- a/backend/pkg/messages/filters.go +++ b/backend/pkg/messages/filters.go @@ -5,7 +5,7 @@ func IsReplayerType(id int) bool { return 1 != id && 3 != id && 17 != id && 23 != id && 24 != id && 25 != id && 26 != id && 27 != id && 28 != id && 29 != id && 30 != id && 31 != id && 32 != id && 42 != id && 56 != id && 62 != id && 63 != id && 64 != id && 66 != id && 78 != id && 80 != id && 81 != id && 82 != id && 112 != id && 115 != id && 125 != id && 126 != id && 127 != id && 90 != id && 91 != id && 92 != id && 94 != id && 95 != id && 97 != id && 98 != id && 107 != id && 110 != id } -func IsIOSType(id int) bool { +func IsMobileType(id int) bool { return 90 == id || 91 == id || 92 == id || 93 == id || 94 == id || 95 == id || 96 == id || 97 == id || 98 == id || 100 == id || 101 == id || 102 == id || 103 == id || 104 == id || 105 == id || 106 == id || 107 == id || 110 == id || 111 == id } diff --git a/backend/pkg/messages/get-timestamp.go b/backend/pkg/messages/get-timestamp.go index 9ea84cd18..7bfffa64e 100644 --- a/backend/pkg/messages/get-timestamp.go +++ b/backend/pkg/messages/get-timestamp.go @@ -4,58 +4,58 @@ package messages func GetTimestamp(message Message) uint64 { switch msg := message.(type) { - case *IOSSessionStart: + case *MobileSessionStart: return msg.Timestamp - case *IOSSessionEnd: + case *MobileSessionEnd: return msg.Timestamp - case *IOSMetadata: + case *MobileMetadata: return msg.Timestamp - case *IOSEvent: + case *MobileEvent: return msg.Timestamp - case *IOSUserID: + case *MobileUserID: return msg.Timestamp - case *IOSUserAnonymousID: + case *MobileUserAnonymousID: return msg.Timestamp - case *IOSScreenChanges: + case *MobileScreenChanges: return msg.Timestamp - case *IOSCrash: + case *MobileCrash: return msg.Timestamp - case *IOSViewComponentEvent: + case *MobileViewComponentEvent: return msg.Timestamp - case *IOSClickEvent: + case *MobileClickEvent: return msg.Timestamp - case *IOSInputEvent: + case *MobileInputEvent: return msg.Timestamp - case *IOSPerformanceEvent: + case *MobilePerformanceEvent: return msg.Timestamp - case *IOSLog: + case *MobileLog: return msg.Timestamp - case *IOSInternalError: + case *MobileInternalError: return msg.Timestamp - case *IOSNetworkCall: + case *MobileNetworkCall: return msg.Timestamp - case *IOSSwipeEvent: + case *MobileSwipeEvent: return msg.Timestamp - case *IOSBatchMeta: + case *MobileBatchMeta: return msg.Timestamp - case *IOSIssueEvent: + case *MobileIssueEvent: return msg.Timestamp } diff --git a/backend/pkg/messages/iterator.go b/backend/pkg/messages/iterator.go index bf7961083..ced1c20a6 100644 --- a/backend/pkg/messages/iterator.go +++ b/backend/pkg/messages/iterator.go @@ -46,7 +46,7 @@ func NewMessageIterator(log logger.Logger, messageHandler MessageHandler, messag iter.preFilter = map[int]struct{}{ MsgBatchMetadata: {}, MsgBatchMeta: {}, MsgTimestamp: {}, MsgSessionStart: {}, MsgSessionEnd: {}, MsgSetPageLocation: {}, - MsgIOSBatchMeta: {}, + MsgMobileBatchMeta: {}, } return iter } @@ -115,8 +115,8 @@ func (i *messageIteratorImpl) Iterate(batchData []byte, batchInfo *BatchInfo) { msg.Meta().SetMeta(i.messageInfo) // Update timestamp value for iOS message types - if IsIOSType(msgType) { - msgTime := i.getIOSTimestamp(msg) + if IsMobileType(msgType) { + msgTime := i.getMobileTimestamp(msg) msg.Meta().Timestamp = msgTime } @@ -125,7 +125,7 @@ func (i *messageIteratorImpl) Iterate(batchData []byte, batchInfo *BatchInfo) { } } -func (i *messageIteratorImpl) getIOSTimestamp(msg Message) uint64 { +func (i *messageIteratorImpl) getMobileTimestamp(msg Message) uint64 { return GetTimestamp(msg) } @@ -152,7 +152,7 @@ func (i *messageIteratorImpl) preprocessing(msg Message) error { i.version = m.Version i.batchInfo.version = m.Version - case *BatchMeta: // Is not required to be present in batch since IOS doesn't have it (though we might change it) + case *BatchMeta: // Is not required to be present in batch since Mobile doesn't have it (though we might change it) if i.messageInfo.Index > 1 { // Might be several 0-0 BatchMeta in a row without an error though return fmt.Errorf("batchMeta found at the end of the batch, info: %s", i.batchInfo.Info()) } @@ -194,14 +194,14 @@ func (i *messageIteratorImpl) preprocessing(msg Message) error { // Save session page url in cache for using in next batches i.urls.Set(i.messageInfo.batch.sessionID, m.URL) - case *IOSBatchMeta: + case *MobileBatchMeta: if i.messageInfo.Index > 1 { // Might be several 0-0 BatchMeta in a row without an error though return fmt.Errorf("batchMeta found at the end of the batch, info: %s", i.batchInfo.Info()) } i.messageInfo.Index = m.FirstIndex i.messageInfo.Timestamp = m.Timestamp if m.Timestamp == 0 { - i.zeroTsLog("IOSBatchMeta") + i.zeroTsLog("MobileBatchMeta") } } return nil diff --git a/backend/pkg/messages/messages.go b/backend/pkg/messages/messages.go index 1242d3e34..4c0dfffa8 100644 --- a/backend/pkg/messages/messages.go +++ b/backend/pkg/messages/messages.go @@ -91,25 +91,25 @@ const ( MsgIssueEvent = 125 MsgSessionEnd = 126 MsgSessionSearch = 127 - MsgIOSSessionStart = 90 - MsgIOSSessionEnd = 91 - MsgIOSMetadata = 92 - MsgIOSEvent = 93 - MsgIOSUserID = 94 - MsgIOSUserAnonymousID = 95 - MsgIOSScreenChanges = 96 - MsgIOSCrash = 97 - MsgIOSViewComponentEvent = 98 - MsgIOSClickEvent = 100 - MsgIOSInputEvent = 101 - MsgIOSPerformanceEvent = 102 - MsgIOSLog = 103 - MsgIOSInternalError = 104 - MsgIOSNetworkCall = 105 - MsgIOSSwipeEvent = 106 - MsgIOSBatchMeta = 107 - MsgIOSPerformanceAggregated = 110 - MsgIOSIssueEvent = 111 + MsgMobileSessionStart = 90 + MsgMobileSessionEnd = 91 + MsgMobileMetadata = 92 + MsgMobileEvent = 93 + MsgMobileUserID = 94 + MsgMobileUserAnonymousID = 95 + MsgMobileScreenChanges = 96 + MsgMobileCrash = 97 + MsgMobileViewComponentEvent = 98 + MsgMobileClickEvent = 100 + MsgMobileInputEvent = 101 + MsgMobilePerformanceEvent = 102 + MsgMobileLog = 103 + MsgMobileInternalError = 104 + MsgMobileNetworkCall = 105 + MsgMobileSwipeEvent = 106 + MsgMobileBatchMeta = 107 + MsgMobilePerformanceAggregated = 110 + MsgMobileIssueEvent = 111 ) type Timestamp struct { @@ -2430,7 +2430,7 @@ func (msg *SessionSearch) TypeID() int { return 127 } -type IOSSessionStart struct { +type MobileSessionStart struct { message Timestamp uint64 ProjectID uint64 @@ -2444,7 +2444,7 @@ type IOSSessionStart struct { UserCountry string } -func (msg *IOSSessionStart) Encode() []byte { +func (msg *MobileSessionStart) Encode() []byte { buf := make([]byte, 101+len(msg.TrackerVersion)+len(msg.RevID)+len(msg.UserUUID)+len(msg.UserOS)+len(msg.UserOSVersion)+len(msg.UserDevice)+len(msg.UserDeviceType)+len(msg.UserCountry)) buf[0] = 90 p := 1 @@ -2461,20 +2461,20 @@ func (msg *IOSSessionStart) Encode() []byte { return buf[:p] } -func (msg *IOSSessionStart) Decode() Message { +func (msg *MobileSessionStart) Decode() Message { return msg } -func (msg *IOSSessionStart) TypeID() int { +func (msg *MobileSessionStart) TypeID() int { return 90 } -type IOSSessionEnd struct { +type MobileSessionEnd struct { message Timestamp uint64 } -func (msg *IOSSessionEnd) Encode() []byte { +func (msg *MobileSessionEnd) Encode() []byte { buf := make([]byte, 11) buf[0] = 91 p := 1 @@ -2482,15 +2482,15 @@ func (msg *IOSSessionEnd) Encode() []byte { return buf[:p] } -func (msg *IOSSessionEnd) Decode() Message { +func (msg *MobileSessionEnd) Decode() Message { return msg } -func (msg *IOSSessionEnd) TypeID() int { +func (msg *MobileSessionEnd) TypeID() int { return 91 } -type IOSMetadata struct { +type MobileMetadata struct { message Timestamp uint64 Length uint64 @@ -2498,7 +2498,7 @@ type IOSMetadata struct { Value string } -func (msg *IOSMetadata) Encode() []byte { +func (msg *MobileMetadata) Encode() []byte { buf := make([]byte, 41+len(msg.Key)+len(msg.Value)) buf[0] = 92 p := 1 @@ -2509,15 +2509,15 @@ func (msg *IOSMetadata) Encode() []byte { return buf[:p] } -func (msg *IOSMetadata) Decode() Message { +func (msg *MobileMetadata) Decode() Message { return msg } -func (msg *IOSMetadata) TypeID() int { +func (msg *MobileMetadata) TypeID() int { return 92 } -type IOSEvent struct { +type MobileEvent struct { message Timestamp uint64 Length uint64 @@ -2525,7 +2525,7 @@ type IOSEvent struct { Payload string } -func (msg *IOSEvent) Encode() []byte { +func (msg *MobileEvent) Encode() []byte { buf := make([]byte, 41+len(msg.Name)+len(msg.Payload)) buf[0] = 93 p := 1 @@ -2536,22 +2536,22 @@ func (msg *IOSEvent) Encode() []byte { return buf[:p] } -func (msg *IOSEvent) Decode() Message { +func (msg *MobileEvent) Decode() Message { return msg } -func (msg *IOSEvent) TypeID() int { +func (msg *MobileEvent) TypeID() int { return 93 } -type IOSUserID struct { +type MobileUserID struct { message Timestamp uint64 Length uint64 ID string } -func (msg *IOSUserID) Encode() []byte { +func (msg *MobileUserID) Encode() []byte { buf := make([]byte, 31+len(msg.ID)) buf[0] = 94 p := 1 @@ -2561,22 +2561,22 @@ func (msg *IOSUserID) Encode() []byte { return buf[:p] } -func (msg *IOSUserID) Decode() Message { +func (msg *MobileUserID) Decode() Message { return msg } -func (msg *IOSUserID) TypeID() int { +func (msg *MobileUserID) TypeID() int { return 94 } -type IOSUserAnonymousID struct { +type MobileUserAnonymousID struct { message Timestamp uint64 Length uint64 ID string } -func (msg *IOSUserAnonymousID) Encode() []byte { +func (msg *MobileUserAnonymousID) Encode() []byte { buf := make([]byte, 31+len(msg.ID)) buf[0] = 95 p := 1 @@ -2586,15 +2586,15 @@ func (msg *IOSUserAnonymousID) Encode() []byte { return buf[:p] } -func (msg *IOSUserAnonymousID) Decode() Message { +func (msg *MobileUserAnonymousID) Decode() Message { return msg } -func (msg *IOSUserAnonymousID) TypeID() int { +func (msg *MobileUserAnonymousID) TypeID() int { return 95 } -type IOSScreenChanges struct { +type MobileScreenChanges struct { message Timestamp uint64 Length uint64 @@ -2604,7 +2604,7 @@ type IOSScreenChanges struct { Height uint64 } -func (msg *IOSScreenChanges) Encode() []byte { +func (msg *MobileScreenChanges) Encode() []byte { buf := make([]byte, 61) buf[0] = 96 p := 1 @@ -2617,15 +2617,15 @@ func (msg *IOSScreenChanges) Encode() []byte { return buf[:p] } -func (msg *IOSScreenChanges) Decode() Message { +func (msg *MobileScreenChanges) Decode() Message { return msg } -func (msg *IOSScreenChanges) TypeID() int { +func (msg *MobileScreenChanges) TypeID() int { return 96 } -type IOSCrash struct { +type MobileCrash struct { message Timestamp uint64 Length uint64 @@ -2634,7 +2634,7 @@ type IOSCrash struct { Stacktrace string } -func (msg *IOSCrash) Encode() []byte { +func (msg *MobileCrash) Encode() []byte { buf := make([]byte, 51+len(msg.Name)+len(msg.Reason)+len(msg.Stacktrace)) buf[0] = 97 p := 1 @@ -2646,15 +2646,15 @@ func (msg *IOSCrash) Encode() []byte { return buf[:p] } -func (msg *IOSCrash) Decode() Message { +func (msg *MobileCrash) Decode() Message { return msg } -func (msg *IOSCrash) TypeID() int { +func (msg *MobileCrash) TypeID() int { return 97 } -type IOSViewComponentEvent struct { +type MobileViewComponentEvent struct { message Timestamp uint64 Length uint64 @@ -2663,7 +2663,7 @@ type IOSViewComponentEvent struct { Visible bool } -func (msg *IOSViewComponentEvent) Encode() []byte { +func (msg *MobileViewComponentEvent) Encode() []byte { buf := make([]byte, 51+len(msg.ScreenName)+len(msg.ViewName)) buf[0] = 98 p := 1 @@ -2675,15 +2675,15 @@ func (msg *IOSViewComponentEvent) Encode() []byte { return buf[:p] } -func (msg *IOSViewComponentEvent) Decode() Message { +func (msg *MobileViewComponentEvent) Decode() Message { return msg } -func (msg *IOSViewComponentEvent) TypeID() int { +func (msg *MobileViewComponentEvent) TypeID() int { return 98 } -type IOSClickEvent struct { +type MobileClickEvent struct { message Timestamp uint64 Length uint64 @@ -2692,7 +2692,7 @@ type IOSClickEvent struct { Y uint64 } -func (msg *IOSClickEvent) Encode() []byte { +func (msg *MobileClickEvent) Encode() []byte { buf := make([]byte, 51+len(msg.Label)) buf[0] = 100 p := 1 @@ -2704,15 +2704,15 @@ func (msg *IOSClickEvent) Encode() []byte { return buf[:p] } -func (msg *IOSClickEvent) Decode() Message { +func (msg *MobileClickEvent) Decode() Message { return msg } -func (msg *IOSClickEvent) TypeID() int { +func (msg *MobileClickEvent) TypeID() int { return 100 } -type IOSInputEvent struct { +type MobileInputEvent struct { message Timestamp uint64 Length uint64 @@ -2721,7 +2721,7 @@ type IOSInputEvent struct { Label string } -func (msg *IOSInputEvent) Encode() []byte { +func (msg *MobileInputEvent) Encode() []byte { buf := make([]byte, 51+len(msg.Value)+len(msg.Label)) buf[0] = 101 p := 1 @@ -2733,15 +2733,15 @@ func (msg *IOSInputEvent) Encode() []byte { return buf[:p] } -func (msg *IOSInputEvent) Decode() Message { +func (msg *MobileInputEvent) Decode() Message { return msg } -func (msg *IOSInputEvent) TypeID() int { +func (msg *MobileInputEvent) TypeID() int { return 101 } -type IOSPerformanceEvent struct { +type MobilePerformanceEvent struct { message Timestamp uint64 Length uint64 @@ -2749,7 +2749,7 @@ type IOSPerformanceEvent struct { Value uint64 } -func (msg *IOSPerformanceEvent) Encode() []byte { +func (msg *MobilePerformanceEvent) Encode() []byte { buf := make([]byte, 41+len(msg.Name)) buf[0] = 102 p := 1 @@ -2760,15 +2760,15 @@ func (msg *IOSPerformanceEvent) Encode() []byte { return buf[:p] } -func (msg *IOSPerformanceEvent) Decode() Message { +func (msg *MobilePerformanceEvent) Decode() Message { return msg } -func (msg *IOSPerformanceEvent) TypeID() int { +func (msg *MobilePerformanceEvent) TypeID() int { return 102 } -type IOSLog struct { +type MobileLog struct { message Timestamp uint64 Length uint64 @@ -2776,7 +2776,7 @@ type IOSLog struct { Content string } -func (msg *IOSLog) Encode() []byte { +func (msg *MobileLog) Encode() []byte { buf := make([]byte, 41+len(msg.Severity)+len(msg.Content)) buf[0] = 103 p := 1 @@ -2787,22 +2787,22 @@ func (msg *IOSLog) Encode() []byte { return buf[:p] } -func (msg *IOSLog) Decode() Message { +func (msg *MobileLog) Decode() Message { return msg } -func (msg *IOSLog) TypeID() int { +func (msg *MobileLog) TypeID() int { return 103 } -type IOSInternalError struct { +type MobileInternalError struct { message Timestamp uint64 Length uint64 Content string } -func (msg *IOSInternalError) Encode() []byte { +func (msg *MobileInternalError) Encode() []byte { buf := make([]byte, 31+len(msg.Content)) buf[0] = 104 p := 1 @@ -2812,15 +2812,15 @@ func (msg *IOSInternalError) Encode() []byte { return buf[:p] } -func (msg *IOSInternalError) Decode() Message { +func (msg *MobileInternalError) Decode() Message { return msg } -func (msg *IOSInternalError) TypeID() int { +func (msg *MobileInternalError) TypeID() int { return 104 } -type IOSNetworkCall struct { +type MobileNetworkCall struct { message Timestamp uint64 Length uint64 @@ -2833,7 +2833,7 @@ type IOSNetworkCall struct { Duration uint64 } -func (msg *IOSNetworkCall) Encode() []byte { +func (msg *MobileNetworkCall) Encode() []byte { buf := make([]byte, 91+len(msg.Type)+len(msg.Method)+len(msg.URL)+len(msg.Request)+len(msg.Response)) buf[0] = 105 p := 1 @@ -2849,15 +2849,15 @@ func (msg *IOSNetworkCall) Encode() []byte { return buf[:p] } -func (msg *IOSNetworkCall) Decode() Message { +func (msg *MobileNetworkCall) Decode() Message { return msg } -func (msg *IOSNetworkCall) TypeID() int { +func (msg *MobileNetworkCall) TypeID() int { return 105 } -type IOSSwipeEvent struct { +type MobileSwipeEvent struct { message Timestamp uint64 Length uint64 @@ -2867,7 +2867,7 @@ type IOSSwipeEvent struct { Direction string } -func (msg *IOSSwipeEvent) Encode() []byte { +func (msg *MobileSwipeEvent) Encode() []byte { buf := make([]byte, 61+len(msg.Label)+len(msg.Direction)) buf[0] = 106 p := 1 @@ -2880,22 +2880,22 @@ func (msg *IOSSwipeEvent) Encode() []byte { return buf[:p] } -func (msg *IOSSwipeEvent) Decode() Message { +func (msg *MobileSwipeEvent) Decode() Message { return msg } -func (msg *IOSSwipeEvent) TypeID() int { +func (msg *MobileSwipeEvent) TypeID() int { return 106 } -type IOSBatchMeta struct { +type MobileBatchMeta struct { message Timestamp uint64 Length uint64 FirstIndex uint64 } -func (msg *IOSBatchMeta) Encode() []byte { +func (msg *MobileBatchMeta) Encode() []byte { buf := make([]byte, 31) buf[0] = 107 p := 1 @@ -2905,15 +2905,15 @@ func (msg *IOSBatchMeta) Encode() []byte { return buf[:p] } -func (msg *IOSBatchMeta) Decode() Message { +func (msg *MobileBatchMeta) Decode() Message { return msg } -func (msg *IOSBatchMeta) TypeID() int { +func (msg *MobileBatchMeta) TypeID() int { return 107 } -type IOSPerformanceAggregated struct { +type MobilePerformanceAggregated struct { message TimestampStart uint64 TimestampEnd uint64 @@ -2931,7 +2931,7 @@ type IOSPerformanceAggregated struct { MaxBattery uint64 } -func (msg *IOSPerformanceAggregated) Encode() []byte { +func (msg *MobilePerformanceAggregated) Encode() []byte { buf := make([]byte, 141) buf[0] = 110 p := 1 @@ -2952,15 +2952,15 @@ func (msg *IOSPerformanceAggregated) Encode() []byte { return buf[:p] } -func (msg *IOSPerformanceAggregated) Decode() Message { +func (msg *MobilePerformanceAggregated) Decode() Message { return msg } -func (msg *IOSPerformanceAggregated) TypeID() int { +func (msg *MobilePerformanceAggregated) TypeID() int { return 110 } -type IOSIssueEvent struct { +type MobileIssueEvent struct { message Timestamp uint64 Type string @@ -2969,7 +2969,7 @@ type IOSIssueEvent struct { Payload string } -func (msg *IOSIssueEvent) Encode() []byte { +func (msg *MobileIssueEvent) Encode() []byte { buf := make([]byte, 51+len(msg.Type)+len(msg.ContextString)+len(msg.Context)+len(msg.Payload)) buf[0] = 111 p := 1 @@ -2981,10 +2981,10 @@ func (msg *IOSIssueEvent) Encode() []byte { return buf[:p] } -func (msg *IOSIssueEvent) Decode() Message { +func (msg *MobileIssueEvent) Decode() Message { return msg } -func (msg *IOSIssueEvent) TypeID() int { +func (msg *MobileIssueEvent) TypeID() int { return 111 } diff --git a/backend/pkg/messages/read-message.go b/backend/pkg/messages/read-message.go index 5aa8b6f7c..5a9f59f6c 100644 --- a/backend/pkg/messages/read-message.go +++ b/backend/pkg/messages/read-message.go @@ -1479,9 +1479,9 @@ func DecodeSessionSearch(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSSessionStart(reader BytesReader) (Message, error) { +func DecodeMobileSessionStart(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSSessionStart{} + msg := &MobileSessionStart{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1515,18 +1515,18 @@ func DecodeIOSSessionStart(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSSessionEnd(reader BytesReader) (Message, error) { +func DecodeMobileSessionEnd(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSSessionEnd{} + msg := &MobileSessionEnd{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } return msg, err } -func DecodeIOSMetadata(reader BytesReader) (Message, error) { +func DecodeMobileMetadata(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSMetadata{} + msg := &MobileMetadata{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1542,9 +1542,9 @@ func DecodeIOSMetadata(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSEvent(reader BytesReader) (Message, error) { +func DecodeMobileEvent(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSEvent{} + msg := &MobileEvent{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1560,9 +1560,9 @@ func DecodeIOSEvent(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSUserID(reader BytesReader) (Message, error) { +func DecodeMobileUserID(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSUserID{} + msg := &MobileUserID{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1575,9 +1575,9 @@ func DecodeIOSUserID(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSUserAnonymousID(reader BytesReader) (Message, error) { +func DecodeMobileUserAnonymousID(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSUserAnonymousID{} + msg := &MobileUserAnonymousID{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1590,9 +1590,9 @@ func DecodeIOSUserAnonymousID(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSScreenChanges(reader BytesReader) (Message, error) { +func DecodeMobileScreenChanges(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSScreenChanges{} + msg := &MobileScreenChanges{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1614,9 +1614,9 @@ func DecodeIOSScreenChanges(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSCrash(reader BytesReader) (Message, error) { +func DecodeMobileCrash(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSCrash{} + msg := &MobileCrash{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1635,9 +1635,9 @@ func DecodeIOSCrash(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSViewComponentEvent(reader BytesReader) (Message, error) { +func DecodeMobileViewComponentEvent(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSViewComponentEvent{} + msg := &MobileViewComponentEvent{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1656,9 +1656,9 @@ func DecodeIOSViewComponentEvent(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSClickEvent(reader BytesReader) (Message, error) { +func DecodeMobileClickEvent(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSClickEvent{} + msg := &MobileClickEvent{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1677,9 +1677,9 @@ func DecodeIOSClickEvent(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSInputEvent(reader BytesReader) (Message, error) { +func DecodeMobileInputEvent(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSInputEvent{} + msg := &MobileInputEvent{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1698,9 +1698,9 @@ func DecodeIOSInputEvent(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSPerformanceEvent(reader BytesReader) (Message, error) { +func DecodeMobilePerformanceEvent(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSPerformanceEvent{} + msg := &MobilePerformanceEvent{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1716,9 +1716,9 @@ func DecodeIOSPerformanceEvent(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSLog(reader BytesReader) (Message, error) { +func DecodeMobileLog(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSLog{} + msg := &MobileLog{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1734,9 +1734,9 @@ func DecodeIOSLog(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSInternalError(reader BytesReader) (Message, error) { +func DecodeMobileInternalError(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSInternalError{} + msg := &MobileInternalError{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1749,9 +1749,9 @@ func DecodeIOSInternalError(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSNetworkCall(reader BytesReader) (Message, error) { +func DecodeMobileNetworkCall(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSNetworkCall{} + msg := &MobileNetworkCall{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1782,9 +1782,9 @@ func DecodeIOSNetworkCall(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSSwipeEvent(reader BytesReader) (Message, error) { +func DecodeMobileSwipeEvent(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSSwipeEvent{} + msg := &MobileSwipeEvent{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1806,9 +1806,9 @@ func DecodeIOSSwipeEvent(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSBatchMeta(reader BytesReader) (Message, error) { +func DecodeMobileBatchMeta(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSBatchMeta{} + msg := &MobileBatchMeta{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -1821,9 +1821,9 @@ func DecodeIOSBatchMeta(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSPerformanceAggregated(reader BytesReader) (Message, error) { +func DecodeMobilePerformanceAggregated(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSPerformanceAggregated{} + msg := &MobilePerformanceAggregated{} if msg.TimestampStart, err = reader.ReadUint(); err != nil { return nil, err } @@ -1869,9 +1869,9 @@ func DecodeIOSPerformanceAggregated(reader BytesReader) (Message, error) { return msg, err } -func DecodeIOSIssueEvent(reader BytesReader) (Message, error) { +func DecodeMobileIssueEvent(reader BytesReader) (Message, error) { var err error = nil - msg := &IOSIssueEvent{} + msg := &MobileIssueEvent{} if msg.Timestamp, err = reader.ReadUint(); err != nil { return nil, err } @@ -2071,43 +2071,43 @@ func ReadMessage(t uint64, reader BytesReader) (Message, error) { case 127: return DecodeSessionSearch(reader) case 90: - return DecodeIOSSessionStart(reader) + return DecodeMobileSessionStart(reader) case 91: - return DecodeIOSSessionEnd(reader) + return DecodeMobileSessionEnd(reader) case 92: - return DecodeIOSMetadata(reader) + return DecodeMobileMetadata(reader) case 93: - return DecodeIOSEvent(reader) + return DecodeMobileEvent(reader) case 94: - return DecodeIOSUserID(reader) + return DecodeMobileUserID(reader) case 95: - return DecodeIOSUserAnonymousID(reader) + return DecodeMobileUserAnonymousID(reader) case 96: - return DecodeIOSScreenChanges(reader) + return DecodeMobileScreenChanges(reader) case 97: - return DecodeIOSCrash(reader) + return DecodeMobileCrash(reader) case 98: - return DecodeIOSViewComponentEvent(reader) + return DecodeMobileViewComponentEvent(reader) case 100: - return DecodeIOSClickEvent(reader) + return DecodeMobileClickEvent(reader) case 101: - return DecodeIOSInputEvent(reader) + return DecodeMobileInputEvent(reader) case 102: - return DecodeIOSPerformanceEvent(reader) + return DecodeMobilePerformanceEvent(reader) case 103: - return DecodeIOSLog(reader) + return DecodeMobileLog(reader) case 104: - return DecodeIOSInternalError(reader) + return DecodeMobileInternalError(reader) case 105: - return DecodeIOSNetworkCall(reader) + return DecodeMobileNetworkCall(reader) case 106: - return DecodeIOSSwipeEvent(reader) + return DecodeMobileSwipeEvent(reader) case 107: - return DecodeIOSBatchMeta(reader) + return DecodeMobileBatchMeta(reader) case 110: - return DecodeIOSPerformanceAggregated(reader) + return DecodeMobilePerformanceAggregated(reader) case 111: - return DecodeIOSIssueEvent(reader) + return DecodeMobileIssueEvent(reader) } return nil, fmt.Errorf("unknown message code: %v", t) } diff --git a/ee/backend/internal/db/datasaver/methods.go b/ee/backend/internal/db/datasaver/methods.go index ce340e790..b6c1ae34a 100644 --- a/ee/backend/internal/db/datasaver/methods.go +++ b/ee/backend/internal/db/datasaver/methods.go @@ -76,19 +76,19 @@ func (s *saverImpl) handleExtraMessage(msg messages.Message) error { return s.ch.InsertMouseThrashing(session, m) // Mobile messages - case *messages.IOSSessionEnd: + case *messages.MobileSessionEnd: return s.ch.InsertMobileSession(session) - case *messages.IOSEvent: + case *messages.MobileEvent: return s.ch.InsertMobileCustom(session, m) - case *messages.IOSClickEvent: + case *messages.MobileClickEvent: return s.ch.InsertMobileClick(session, m) - case *messages.IOSSwipeEvent: + case *messages.MobileSwipeEvent: return s.ch.InsertMobileSwipe(session, m) - case *messages.IOSInputEvent: + case *messages.MobileInputEvent: return s.ch.InsertMobileInput(session, m) - case *messages.IOSNetworkCall: + case *messages.MobileNetworkCall: return s.ch.InsertMobileRequest(session, m, session.SaveRequestPayload) - case *messages.IOSCrash: + case *messages.MobileCrash: return s.ch.InsertMobileCrash(session, m) } return nil diff --git a/ee/backend/internal/http/router/conditions.go b/ee/backend/internal/http/router/conditions.go index 5be3c0842..94c103c1d 100644 --- a/ee/backend/internal/http/router/conditions.go +++ b/ee/backend/internal/http/router/conditions.go @@ -14,7 +14,7 @@ func (e *Router) getConditions(w http.ResponseWriter, r *http.Request) { // Check authorization _, err := e.services.Tokenizer.ParseFromHTTPRequest(r) if err != nil { - ResponseWithError(w, http.StatusUnauthorized, err, startTime, r.URL.Path, bodySize) + e.ResponseWithError(r.Context(), w, http.StatusUnauthorized, err, startTime, r.URL.Path, bodySize) return } @@ -23,15 +23,15 @@ func (e *Router) getConditions(w http.ResponseWriter, r *http.Request) { projID := vars["project"] projectID, err := strconv.Atoi(projID) if err != nil { - ResponseWithError(w, http.StatusBadRequest, err, startTime, r.URL.Path, bodySize) + e.ResponseWithError(r.Context(), w, http.StatusBadRequest, err, startTime, r.URL.Path, bodySize) return } // Get task info info, err := e.services.Conditions.Get(uint32(projectID)) if err != nil { - ResponseWithError(w, http.StatusInternalServerError, err, startTime, r.URL.Path, bodySize) + e.ResponseWithError(r.Context(), w, http.StatusInternalServerError, err, startTime, r.URL.Path, bodySize) return } - ResponseWithJSON(w, info, startTime, r.URL.Path, bodySize) + e.ResponseWithJSON(r.Context(), w, info, startTime, r.URL.Path, bodySize) } diff --git a/ee/backend/pkg/db/clickhouse/connector.go b/ee/backend/pkg/db/clickhouse/connector.go index bb43e6713..e1c64682d 100644 --- a/ee/backend/pkg/db/clickhouse/connector.go +++ b/ee/backend/pkg/db/clickhouse/connector.go @@ -38,12 +38,12 @@ type Connector interface { InsertMouseThrashing(session *sessions.Session, msg *messages.MouseThrashing) error // Mobile InsertMobileSession(session *sessions.Session) error - InsertMobileCustom(session *sessions.Session, msg *messages.IOSEvent) error - InsertMobileClick(session *sessions.Session, msg *messages.IOSClickEvent) error - InsertMobileSwipe(session *sessions.Session, msg *messages.IOSSwipeEvent) error - InsertMobileInput(session *sessions.Session, msg *messages.IOSInputEvent) error - InsertMobileRequest(session *sessions.Session, msg *messages.IOSNetworkCall, savePayload bool) error - InsertMobileCrash(session *sessions.Session, msg *messages.IOSCrash) error + InsertMobileCustom(session *sessions.Session, msg *messages.MobileEvent) error + InsertMobileClick(session *sessions.Session, msg *messages.MobileClickEvent) error + InsertMobileSwipe(session *sessions.Session, msg *messages.MobileSwipeEvent) error + InsertMobileInput(session *sessions.Session, msg *messages.MobileInputEvent) error + InsertMobileRequest(session *sessions.Session, msg *messages.MobileNetworkCall, savePayload bool) error + InsertMobileCrash(session *sessions.Session, msg *messages.MobileCrash) error } type task struct { @@ -582,7 +582,7 @@ func (c *connectorImpl) InsertMobileSession(session *sessions.Session) error { return nil } -func (c *connectorImpl) InsertMobileCustom(session *sessions.Session, msg *messages.IOSEvent) error { +func (c *connectorImpl) InsertMobileCustom(session *sessions.Session, msg *messages.MobileEvent) error { if err := c.batches["ios_custom"].Append( session.SessionID, uint16(session.ProjectID), @@ -598,7 +598,7 @@ func (c *connectorImpl) InsertMobileCustom(session *sessions.Session, msg *messa return nil } -func (c *connectorImpl) InsertMobileClick(session *sessions.Session, msg *messages.IOSClickEvent) error { +func (c *connectorImpl) InsertMobileClick(session *sessions.Session, msg *messages.MobileClickEvent) error { if msg.Label == "" { return nil } @@ -616,7 +616,7 @@ func (c *connectorImpl) InsertMobileClick(session *sessions.Session, msg *messag return nil } -func (c *connectorImpl) InsertMobileSwipe(session *sessions.Session, msg *messages.IOSSwipeEvent) error { +func (c *connectorImpl) InsertMobileSwipe(session *sessions.Session, msg *messages.MobileSwipeEvent) error { if msg.Label == "" { return nil } @@ -635,7 +635,7 @@ func (c *connectorImpl) InsertMobileSwipe(session *sessions.Session, msg *messag return nil } -func (c *connectorImpl) InsertMobileInput(session *sessions.Session, msg *messages.IOSInputEvent) error { +func (c *connectorImpl) InsertMobileInput(session *sessions.Session, msg *messages.MobileInputEvent) error { if msg.Label == "" { return nil } @@ -653,7 +653,7 @@ func (c *connectorImpl) InsertMobileInput(session *sessions.Session, msg *messag return nil } -func (c *connectorImpl) InsertMobileRequest(session *sessions.Session, msg *messages.IOSNetworkCall, savePayload bool) error { +func (c *connectorImpl) InsertMobileRequest(session *sessions.Session, msg *messages.MobileNetworkCall, savePayload bool) error { urlMethod := url.EnsureMethod(msg.Method) if urlMethod == "" { return fmt.Errorf("can't parse http method. sess: %d, method: %s", session.SessionID, msg.Method) @@ -683,7 +683,7 @@ func (c *connectorImpl) InsertMobileRequest(session *sessions.Session, msg *mess return nil } -func (c *connectorImpl) InsertMobileCrash(session *sessions.Session, msg *messages.IOSCrash) error { +func (c *connectorImpl) InsertMobileCrash(session *sessions.Session, msg *messages.MobileCrash) error { if err := c.batches["ios_crashes"].Append( session.SessionID, uint16(session.ProjectID), diff --git a/mobs/ios_messages.rb b/mobs/mobile_messages.rb similarity index 75% rename from mobs/ios_messages.rb rename to mobs/mobile_messages.rb index e3159d557..932d05bc9 100644 --- a/mobs/ios_messages.rb +++ b/mobs/mobile_messages.rb @@ -1,4 +1,4 @@ -message 90, 'IOSSessionStart', :replayer => false do +message 90, 'MobileSessionStart', :replayer => false do uint 'Timestamp' uint 'ProjectID' string 'TrackerVersion' @@ -11,37 +11,37 @@ message 90, 'IOSSessionStart', :replayer => false do string 'UserCountry' end -message 91, 'IOSSessionEnd' do +message 91, 'MobileSessionEnd' do uint 'Timestamp' end -message 92, 'IOSMetadata' do +message 92, 'MobileMetadata' do uint 'Timestamp' uint 'Length' string 'Key' string 'Value' end -message 93, 'IOSEvent', :replayer => true do +message 93, 'MobileEvent', :replayer => true do uint 'Timestamp' uint 'Length' string 'Name' string 'Payload' end -message 94, 'IOSUserID' do +message 94, 'MobileUserID' do uint 'Timestamp' uint 'Length' string 'ID' end -message 95, 'IOSUserAnonymousID' do +message 95, 'MobileUserAnonymousID' do uint 'Timestamp' uint 'Length' string 'ID' end -message 96, 'IOSScreenChanges', :replayer => true do +message 96, 'MobileScreenChanges', :replayer => true do uint 'Timestamp' uint 'Length' uint 'X' @@ -50,7 +50,7 @@ message 96, 'IOSScreenChanges', :replayer => true do uint 'Height' end -message 97, 'IOSCrash' do +message 97, 'MobileCrash' do uint 'Timestamp' uint 'Length' string 'Name' @@ -58,7 +58,7 @@ message 97, 'IOSCrash' do string 'Stacktrace' end -message 98, 'IOSViewComponentEvent' do +message 98, 'MobileViewComponentEvent' do uint 'Timestamp' uint 'Length' string 'ScreenName' @@ -66,7 +66,7 @@ message 98, 'IOSViewComponentEvent' do boolean 'Visible' end -message 100, 'IOSClickEvent', :replayer => true do +message 100, 'MobileClickEvent', :replayer => true do uint 'Timestamp' uint 'Length' string 'Label' @@ -74,7 +74,7 @@ message 100, 'IOSClickEvent', :replayer => true do uint 'Y' end -message 101, 'IOSInputEvent', :replayer => true do +message 101, 'MobileInputEvent', :replayer => true do uint 'Timestamp' uint 'Length' string 'Value' @@ -97,27 +97,27 @@ Name/Value may be : "memoryUsage": Used memory in bytes "fps": Frames per second =end -message 102, 'IOSPerformanceEvent', :replayer => true do +message 102, 'MobilePerformanceEvent', :replayer => true do uint 'Timestamp' uint 'Length' string 'Name' uint 'Value' end -message 103, 'IOSLog', :replayer => true do +message 103, 'MobileLog', :replayer => true do uint 'Timestamp' uint 'Length' string 'Severity' # Possible values ("info", "error") string 'Content' end -message 104, 'IOSInternalError', :replayer => true do +message 104, 'MobileInternalError', :replayer => true do uint 'Timestamp' uint 'Length' string 'Content' end -message 105, 'IOSNetworkCall', :replayer => true do +message 105, 'MobileNetworkCall', :replayer => true do uint 'Timestamp' uint 'Length' string 'Type' @@ -129,7 +129,7 @@ message 105, 'IOSNetworkCall', :replayer => true do uint 'Duration' end -message 106, 'IOSSwipeEvent', :replayer => true do +message 106, 'MobileSwipeEvent', :replayer => true do uint 'Timestamp' uint 'Length' string 'Label' @@ -138,13 +138,13 @@ message 106, 'IOSSwipeEvent', :replayer => true do string 'Direction' end -message 107, 'IOSBatchMeta' do +message 107, 'MobileBatchMeta' do uint 'Timestamp' uint 'Length' uint 'FirstIndex' end -message 110, 'IOSPerformanceAggregated', :swift => false do +message 110, 'MobilePerformanceAggregated', :swift => false do uint 'TimestampStart' uint 'TimestampEnd' uint 'MinFPS' @@ -161,7 +161,7 @@ message 110, 'IOSPerformanceAggregated', :swift => false do uint 'MaxBattery' end -message 111, 'IOSIssueEvent', :replayer => true do +message 111, 'MobileIssueEvent', :replayer => true do uint 'Timestamp' string 'Type' string 'ContextString' diff --git a/mobs/run.rb b/mobs/run.rb index d26924296..3b3e449f6 100644 --- a/mobs/run.rb +++ b/mobs/run.rb @@ -139,7 +139,7 @@ end require './messages.rb' $context = :ios -require './ios_messages.rb' +require './mobile_messages.rb' Dir["templates/*.erb"].each do |tpl| e = ERB.new(File.read(tpl)) diff --git a/mobs/templates/backend~pkg~messages~filters.go.erb b/mobs/templates/backend~pkg~messages~filters.go.erb index bb43037e8..d322ffc37 100644 --- a/mobs/templates/backend~pkg~messages~filters.go.erb +++ b/mobs/templates/backend~pkg~messages~filters.go.erb @@ -5,7 +5,7 @@ func IsReplayerType(id int) bool { return <%= $messages.select { |msg| msg.replayer == false }.map{ |msg| "#{msg.id} != id" }.join(' && ') %> } -func IsIOSType(id int) bool { +func IsMobileType(id int) bool { return <%= $messages.select { |msg| msg.context == :ios }.map{ |msg| "#{msg.id} == id"}.join(' || ') %> }