feat(connector): added new events + fixed schema naming (#2201)

This commit is contained in:
Alexander 2024-05-23 12:34:42 +02:00 committed by GitHub
parent 013e492020
commit 5f021e48b7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 77 additions and 31 deletions

View file

@ -101,6 +101,19 @@ var eventColumns = []string{
"issueevent_url",
"customissue_name",
"customissue_payload",
"mouseclick_label",
"mouseclick_selector",
"mouseclick_url",
"mouseclick_hesitation_time",
"mouseclick_timestamp",
"pageevent_url",
"pageevent_referrer",
"pageevent_speed_index",
"pageevent_timestamp",
"inputevent_label",
"inputevent_hesitation_time",
"inputevent_input_duration",
"inputevent_timestamp",
"mobile_event_name",
"mobile_event_payload",
"mobile_networkcall_type",
@ -129,6 +142,10 @@ var eventColumns = []string{
"mobile_issueevent_context_string",
"mobile_issueevent_context",
"mobile_issueevent_payload",
"mobile_viewcomponentevent_screen_name",
"mobile_viewcomponentevent_view_name",
"mobile_viewcomponentevent_visible",
"mobile_viewcomponentevent_timestamp",
}
var eventInts = []string{
@ -137,6 +154,13 @@ var eventInts = []string{
"networkrequest_duration",
"issueevent_message_id",
"issueevent_timestamp",
"mouseclick_hesitation_time",
"mouseclick_timestamp",
"pageevent_speed_index",
"pageevent_timestamp",
"inputevent_hesitation_time",
"inputevent_input_duration",
"inputevent_timestamp",
"mobile_networkcall_status",
"mobile_networkcall_timestamp",
"mobile_networkcall_duration",
@ -147,6 +171,7 @@ var eventInts = []string{
"mobile_swipeevent_y",
"mobile_swipeevent_timestamp",
"mobile_issueevent_timestamp",
"mobile_viewcomponentevent_timestamp",
}
func QUOTES(s string) string {

View file

@ -99,42 +99,63 @@ func handleEvent(msg messages.Message) map[string]string {
case *messages.CustomIssue:
event["customissue_name"] = QUOTES(m.Name)
event["customissue_payload"] = QUOTES(m.Payload)
// IOS events
case *messages.MouseClick:
event["mouseclick_label"] = QUOTES(m.Label)
event["mouseclick_selector"] = QUOTES(m.Selector)
event["mouseclick_url"] = QUOTES(msg.Meta().Url)
event["mouseclick_hesitation_time"] = fmt.Sprintf("%d", m.HesitationTime)
event["mouseclick_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
case *messages.PageEvent:
event["pageevent_url"] = QUOTES(m.URL)
event["pageevent_referrer"] = QUOTES(m.Referrer)
event["pageevent_speed_index"] = fmt.Sprintf("%d", m.SpeedIndex)
event["pageevent_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
case *messages.InputChange:
event["inputevent_label"] = QUOTES(m.Label)
event["inputevent_hesitation_time"] = fmt.Sprintf("%d", m.HesitationTime)
event["inputevent_input_duration"] = fmt.Sprintf("%d", m.InputDuration)
event["inputevent_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
// Mobile events
case *messages.IOSEvent:
event["IOS_event_name"] = QUOTES(m.Name)
event["IOS_event_payload"] = QUOTES(m.Payload)
event["mobile_event_name"] = QUOTES(m.Name)
event["mobile_event_payload"] = QUOTES(m.Payload)
case *messages.IOSNetworkCall:
event["IOS_networkcall_type"] = QUOTES(m.Type)
event["IOS_networkcall_method"] = QUOTES(m.Method)
event["IOS_networkcall_url"] = QUOTES(m.URL)
event["IOS_networkcall_request"] = QUOTES(m.Request)
event["IOS_networkcall_response"] = QUOTES(m.Response)
event["IOS_networkcall_status"] = fmt.Sprintf("%d", m.Status)
event["IOS_networkcall_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
event["IOS_networkcall_duration"] = fmt.Sprintf("%d", m.Duration)
event["mobile_networkcall_type"] = QUOTES(m.Type)
event["mobile_networkcall_method"] = QUOTES(m.Method)
event["mobile_networkcall_url"] = QUOTES(m.URL)
event["mobile_networkcall_request"] = QUOTES(m.Request)
event["mobile_networkcall_response"] = QUOTES(m.Response)
event["mobile_networkcall_status"] = fmt.Sprintf("%d", m.Status)
event["mobile_networkcall_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
event["mobile_networkcall_duration"] = fmt.Sprintf("%d", m.Duration)
case *messages.IOSClickEvent:
event["IOS_clickevent_x"] = fmt.Sprintf("%d", m.X)
event["IOS_clickevent_y"] = fmt.Sprintf("%d", m.Y)
event["IOS_clickevent_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
event["IOS_clickevent_label"] = QUOTES(m.Label)
event["mobile_clickevent_x"] = fmt.Sprintf("%d", m.X)
event["mobile_clickevent_y"] = fmt.Sprintf("%d", m.Y)
event["mobile_clickevent_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
event["mobile_clickevent_label"] = QUOTES(m.Label)
case *messages.IOSSwipeEvent:
event["IOS_swipeevent_x"] = fmt.Sprintf("%d", m.X)
event["IOS_swipeevent_y"] = fmt.Sprintf("%d", m.Y)
event["IOS_swipeevent_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
event["IOS_swipeevent_label"] = QUOTES(m.Label)
event["mobile_swipeevent_x"] = fmt.Sprintf("%d", m.X)
event["mobile_swipeevent_y"] = fmt.Sprintf("%d", m.Y)
event["mobile_swipeevent_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
event["mobile_swipeevent_label"] = QUOTES(m.Label)
case *messages.IOSInputEvent:
event["IOS_inputevent_label"] = QUOTES(m.Label)
event["IOS_inputevent_value"] = QUOTES(m.Value)
event["mobile_inputevent_label"] = QUOTES(m.Label)
event["mobile_inputevent_value"] = QUOTES(m.Value)
case *messages.IOSCrash:
event["IOS_crash_name"] = QUOTES(m.Name)
event["IOS_crash_reason"] = QUOTES(m.Reason)
event["IOS_crash_stacktrace"] = QUOTES(m.Stacktrace)
event["mobile_crash_name"] = QUOTES(m.Name)
event["mobile_crash_reason"] = QUOTES(m.Reason)
event["mobile_crash_stacktrace"] = QUOTES(m.Stacktrace)
case *messages.IOSIssueEvent:
event["IOS_issueevent_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
event["IOS_issueevent_type"] = QUOTES(m.Type)
event["IOS_issueevent_context_string"] = QUOTES(m.ContextString)
event["IOS_issueevent_context"] = QUOTES(m.Context)
event["IOS_issueevent_payload"] = QUOTES(m.Payload)
event["mobile_issueevent_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
event["mobile_issueevent_type"] = QUOTES(m.Type)
event["mobile_issueevent_context_string"] = QUOTES(m.ContextString)
event["mobile_issueevent_context"] = QUOTES(m.Context)
event["mobile_issueevent_payload"] = QUOTES(m.Payload)
case *messages.IOSViewComponentEvent:
event["mobile_viewcomponentevent_screen_name"] = QUOTES(m.ScreenName)
event["mobile_viewcomponentevent_view_name"] = QUOTES(m.ViewName)
event["mobile_viewcomponentevent_visible"] = fmt.Sprintf("%t", m.Visible)
event["mobile_viewcomponentevent_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
}
if len(event) == 0 {
@ -249,7 +270,7 @@ func (s *Saver) handleSession(msg messages.Message) {
*messages.PageEvent, *messages.PerformanceTrackAggr, *messages.UserID, *messages.UserAnonymousID,
*messages.JSException, *messages.JSExceptionDeprecated, *messages.InputEvent, *messages.MouseClick,
*messages.IssueEvent, *messages.IssueEventDeprecated,
// IOS messages
// Mobile messages
*messages.IOSSessionStart, *messages.IOSSessionEnd, *messages.IOSUserID, *messages.IOSUserAnonymousID,
*messages.IOSMetadata:
default:
@ -371,7 +392,7 @@ func (s *Saver) handleSession(msg messages.Message) {
currIssuesCount = 0
}
sess["issues_count"] = fmt.Sprintf("%d", currIssuesCount+1)
// IOS messages
// Mobile messages
case *messages.IOSSessionStart:
sess["session_start_timestamp"] = fmt.Sprintf("%d", m.Timestamp)
sess["user_uuid"] = QUOTES(m.UserUUID)