refactor(backend):remove legacy message wrapping (#854)

* refactor(backend):remove legacy message wrapping & few backend-only messages
This commit is contained in:
Alex K 2022-12-06 11:54:36 +01:00 committed by GitHub
parent 76296f65f6
commit e861bd9641
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 450 additions and 796 deletions

View file

@ -62,7 +62,7 @@ func main() {
messages.MsgUserID, messages.MsgUserAnonymousID, messages.MsgClickEvent,
messages.MsgIntegrationEvent, messages.MsgPerformanceTrackAggr,
messages.MsgJSException, messages.MsgResourceTiming,
messages.MsgRawCustomEvent, messages.MsgCustomIssue, messages.MsgFetch, messages.MsgGraphQL,
messages.MsgCustomEvent, messages.MsgCustomIssue, messages.MsgFetch, messages.MsgGraphQL,
messages.MsgStateAction, messages.MsgSetInputTarget, messages.MsgSetInputValue, messages.MsgCreateDocument,
messages.MsgMouseClick, messages.MsgSetPageLocation, messages.MsgPageLoadTiming, messages.MsgPageRenderTiming}

View file

@ -6,7 +6,7 @@ import (
"openreplay/backend/pkg/messages"
)
type FetchEventFTS struct {
type FetchFTS struct {
Method string `json:"method"`
URL string `json:"url"`
Request string `json:"request"`
@ -36,7 +36,7 @@ type PageEventFTS struct {
TimeToInteractive uint64 `json:"time_to_interactive"`
}
type GraphQLEventFTS struct {
type GraphQLFTS struct {
OperationKind string `json:"operation_kind"`
OperationName string `json:"operation_name"`
Variables string `json:"variables"`
@ -57,17 +57,7 @@ func (s *Saver) sendToFTS(msg messages.Message, sessionID uint64) {
switch m := msg.(type) {
// Common
case *messages.Fetch:
event, err = json.Marshal(FetchEventFTS{
Method: m.Method,
URL: m.URL,
Request: m.Request,
Response: m.Response,
Status: m.Status,
Timestamp: m.Timestamp,
Duration: m.Duration,
})
case *messages.FetchEvent:
event, err = json.Marshal(FetchEventFTS{
event, err = json.Marshal(FetchFTS{
Method: m.Method,
URL: m.URL,
Request: m.Request,
@ -97,14 +87,7 @@ func (s *Saver) sendToFTS(msg messages.Message, sessionID uint64) {
TimeToInteractive: m.TimeToInteractive,
})
case *messages.GraphQL:
event, err = json.Marshal(GraphQLEventFTS{
OperationKind: m.OperationKind,
OperationName: m.OperationName,
Variables: m.Variables,
Response: m.Response,
})
case *messages.GraphQLEvent:
event, err = json.Marshal(GraphQLEventFTS{
event, err = json.Marshal(GraphQLFTS{
OperationKind: m.OperationKind,
OperationName: m.OperationName,
Variables: m.Variables,

View file

@ -38,12 +38,12 @@ func (mi *Saver) InsertMessage(msg Message) error {
case *PageEvent:
mi.sendToFTS(msg, sessionID)
return mi.pg.InsertWebPageEvent(sessionID, m)
case *FetchEvent:
case *Fetch:
mi.sendToFTS(msg, sessionID)
return mi.pg.InsertWebFetchEvent(sessionID, m)
case *GraphQLEvent:
return mi.pg.InsertWebFetch(sessionID, m)
case *GraphQL:
mi.sendToFTS(msg, sessionID)
return mi.pg.InsertWebGraphQLEvent(sessionID, m)
return mi.pg.InsertWebGraphQL(sessionID, m)
case *JSException:
return mi.pg.InsertWebJSException(m)
case *IntegrationEvent:

View file

@ -99,7 +99,7 @@ func (c *PGCache) InsertSessionReferrer(sessionID uint64, referrer string) error
return c.Conn.InsertSessionReferrer(sessionID, referrer)
}
func (c *PGCache) InsertWebFetchEvent(sessionID uint64, e *FetchEvent) error {
func (c *PGCache) InsertWebFetch(sessionID uint64, e *Fetch) error {
session, err := c.Cache.GetSession(sessionID)
if err != nil {
return err
@ -108,10 +108,10 @@ func (c *PGCache) InsertWebFetchEvent(sessionID uint64, e *FetchEvent) error {
if err != nil {
return err
}
return c.Conn.InsertWebFetchEvent(sessionID, session.ProjectID, project.SaveRequestPayloads, e)
return c.Conn.InsertWebFetch(sessionID, session.ProjectID, project.SaveRequestPayloads, e)
}
func (c *PGCache) InsertWebGraphQLEvent(sessionID uint64, e *GraphQLEvent) error {
func (c *PGCache) InsertWebGraphQL(sessionID uint64, e *GraphQL) error {
session, err := c.Cache.GetSession(sessionID)
if err != nil {
return err
@ -120,7 +120,7 @@ func (c *PGCache) InsertWebGraphQLEvent(sessionID uint64, e *GraphQLEvent) error
if err != nil {
return err
}
return c.Conn.InsertWebGraphQLEvent(sessionID, session.ProjectID, project.SaveRequestPayloads, e)
return c.Conn.InsertWebGraphQL(sessionID, session.ProjectID, project.SaveRequestPayloads, e)
}
func (c *PGCache) InsertWebCustomEvent(sessionID uint64, e *CustomEvent) error {

View file

@ -34,7 +34,7 @@ type Conn struct {
customEvents Bulk
webPageEvents Bulk
webInputEvents Bulk
webGraphQLEvents Bulk
webGraphQL Bulk
sessionUpdates map[uint64]*sessionUpdates
batchQueueLimit int
batchSizeLimit int
@ -144,7 +144,7 @@ func (conn *Conn) initBulks() {
if err != nil {
log.Fatalf("can't create webPageEvents bulk")
}
conn.webGraphQLEvents, err = NewBulk(conn.c,
conn.webGraphQL, err = NewBulk(conn.c,
"events.graphql",
"(session_id, timestamp, message_id, name, request_body, response_body)",
"($%d, $%d, $%d, left($%d, 2700), $%d, $%d)",
@ -214,8 +214,8 @@ func (conn *Conn) sendBulks() {
if err := conn.webInputEvents.Send(); err != nil {
log.Printf("webInputEvents bulk send err: %s", err)
}
if err := conn.webGraphQLEvents.Send(); err != nil {
log.Printf("webGraphQLEvents bulk send err: %s", err)
if err := conn.webGraphQL.Send(); err != nil {
log.Printf("webGraphQL bulk send err: %s", err)
}
}

View file

@ -9,9 +9,13 @@ import (
)
func (conn *Conn) InsertWebCustomEvent(sessionID uint64, projectID uint32, e *CustomEvent) error {
err := conn.InsertCustomEvent(sessionID, e.Timestamp,
truncSqIdx(e.MessageID),
e.Name, e.Payload)
err := conn.InsertCustomEvent(
sessionID,
uint64(e.Meta().Timestamp),
truncSqIdx(e.Meta().Index),
e.Name,
e.Payload,
)
if err == nil {
conn.insertAutocompleteValue(sessionID, projectID, "CUSTOM", e.Name)
}
@ -144,7 +148,7 @@ func (conn *Conn) InsertWebErrorEvent(sessionID uint64, projectID uint32, e *typ
return
}
func (conn *Conn) InsertWebFetchEvent(sessionID uint64, projectID uint32, savePayload bool, e *FetchEvent) error {
func (conn *Conn) InsertWebFetch(sessionID uint64, projectID uint32, savePayload bool, e *Fetch) error {
var request, response *string
if savePayload {
request = &e.Request
@ -169,7 +173,7 @@ func (conn *Conn) InsertWebFetchEvent(sessionID uint64, projectID uint32, savePa
$12, $13
) ON CONFLICT DO NOTHING`
conn.batchQueue(sessionID, sqlRequest,
sessionID, e.Timestamp, truncSqIdx(e.MessageID),
sessionID, e.Meta().Timestamp, truncSqIdx(e.Meta().Index),
e.URL, host, path, query,
request, response, e.Status, url.EnsureMethod(e.Method),
e.Duration, e.Status < 400,
@ -181,13 +185,13 @@ func (conn *Conn) InsertWebFetchEvent(sessionID uint64, projectID uint32, savePa
return nil
}
func (conn *Conn) InsertWebGraphQLEvent(sessionID uint64, projectID uint32, savePayload bool, e *GraphQLEvent) error {
func (conn *Conn) InsertWebGraphQL(sessionID uint64, projectID uint32, savePayload bool, e *GraphQL) error {
var request, response *string
if savePayload {
request = &e.Variables
response = &e.Response
}
if err := conn.webGraphQLEvents.Append(sessionID, e.Timestamp, truncSqIdx(e.MessageID), e.OperationName, request, response); err != nil {
if err := conn.webGraphQL.Append(sessionID, e.Meta().Timestamp, truncSqIdx(e.Meta().Index), e.OperationName, request, response); err != nil {
log.Printf("insert web graphQL event err: %s", err)
}
conn.insertAutocompleteValue(sessionID, projectID, "GRAPHQL", e.OperationName)

View file

@ -69,13 +69,6 @@ func (b *EventMapper) Handle(message Message, messageID uint64, timestamp uint64
Type: getResourceType(msg.Initiator, msg.URL),
Success: msg.Duration != 0,
}
case *RawCustomEvent:
return &CustomEvent{
MessageID: messageID,
Timestamp: timestamp,
Name: msg.Name,
Payload: msg.Payload,
}
case *CustomIssue:
return &IssueEvent{
Type: "custom",
@ -84,32 +77,6 @@ func (b *EventMapper) Handle(message Message, messageID uint64, timestamp uint64
ContextString: msg.Name,
Payload: msg.Payload,
}
case *Fetch:
return &FetchEvent{
MessageID: messageID,
Timestamp: msg.Timestamp,
Method: msg.Method,
URL: msg.URL,
Request: msg.Request,
Response: msg.Response,
Status: msg.Status,
Duration: msg.Duration,
}
case *GraphQL:
return &GraphQLEvent{
MessageID: messageID,
Timestamp: timestamp,
OperationKind: msg.OperationKind,
OperationName: msg.OperationName,
Variables: msg.Variables,
Response: msg.Response,
}
case *StateAction:
return &StateActionEvent{
MessageID: messageID,
Timestamp: timestamp,
Type: msg.Type,
}
}
return nil
}

View file

@ -2,7 +2,7 @@
package messages
func IsReplayerType(id int) bool {
return 80 != id && 81 != id && 82 != id && 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 && 33 != id && 35 != id && 36 != id && 42 != id && 43 != id && 50 != id && 51 != id && 52 != id && 53 != id && 56 != id && 62 != id && 63 != id && 64 != id && 66 != id && 78 != id && 126 != id && 127 != id && 107 != id && 91 != id && 92 != id && 94 != id && 95 != id && 97 != id && 98 != id && 99 != id && 101 != id && 104 != id && 110 != id && 111 != id
return 80 != id && 81 != id && 82 != id && 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 && 33 != id && 35 != id && 42 != id && 52 != id && 53 != id && 56 != id && 62 != id && 63 != id && 64 != id && 66 != id && 78 != id && 126 != id && 127 != id && 107 != id && 91 != id && 92 != id && 94 != id && 95 != id && 97 != id && 98 != id && 99 != id && 101 != id && 104 != id && 110 != id && 111 != id
}
func IsIOSType(id int) bool {

File diff suppressed because it is too large Load diff

View file

@ -444,9 +444,9 @@ func DecodeIntegrationEvent(reader BytesReader) (Message, error) {
return msg, err
}
func DecodeRawCustomEvent(reader BytesReader) (Message, error) {
func DecodeCustomEvent(reader BytesReader) (Message, error) {
var err error = nil
msg := &RawCustomEvent{}
msg := &CustomEvent{}
if msg.Name, err = reader.ReadString(); err != nil {
return nil, err
}
@ -627,24 +627,6 @@ func DecodeResourceEvent(reader BytesReader) (Message, error) {
return msg, err
}
func DecodeCustomEvent(reader BytesReader) (Message, error) {
var err error = nil
msg := &CustomEvent{}
if msg.MessageID, err = reader.ReadUint(); err != nil {
return nil, err
}
if msg.Timestamp, err = reader.ReadUint(); err != nil {
return nil, err
}
if msg.Name, err = reader.ReadString(); err != nil {
return nil, err
}
if msg.Payload, err = reader.ReadString(); err != nil {
return nil, err
}
return msg, err
}
func DecodeCSSInsertRule(reader BytesReader) (Message, error) {
var err error = nil
msg := &CSSInsertRule{}
@ -738,21 +720,6 @@ func DecodeStateAction(reader BytesReader) (Message, error) {
return msg, err
}
func DecodeStateActionEvent(reader BytesReader) (Message, error) {
var err error = nil
msg := &StateActionEvent{}
if msg.MessageID, err = reader.ReadUint(); err != nil {
return nil, err
}
if msg.Timestamp, err = reader.ReadUint(); err != nil {
return nil, err
}
if msg.Type, err = reader.ReadString(); err != nil {
return nil, err
}
return msg, err
}
func DecodeRedux(reader BytesReader) (Message, error) {
var err error = nil
msg := &Redux{}
@ -843,60 +810,6 @@ func DecodePerformanceTrack(reader BytesReader) (Message, error) {
return msg, err
}
func DecodeGraphQLEvent(reader BytesReader) (Message, error) {
var err error = nil
msg := &GraphQLEvent{}
if msg.MessageID, err = reader.ReadUint(); err != nil {
return nil, err
}
if msg.Timestamp, err = reader.ReadUint(); err != nil {
return nil, err
}
if msg.OperationKind, err = reader.ReadString(); err != nil {
return nil, err
}
if msg.OperationName, err = reader.ReadString(); err != nil {
return nil, err
}
if msg.Variables, err = reader.ReadString(); err != nil {
return nil, err
}
if msg.Response, err = reader.ReadString(); err != nil {
return nil, err
}
return msg, err
}
func DecodeFetchEvent(reader BytesReader) (Message, error) {
var err error = nil
msg := &FetchEvent{}
if msg.MessageID, err = reader.ReadUint(); err != nil {
return nil, err
}
if msg.Timestamp, err = reader.ReadUint(); err != nil {
return nil, err
}
if msg.Method, err = reader.ReadString(); err != nil {
return nil, err
}
if msg.URL, err = reader.ReadString(); err != nil {
return nil, err
}
if msg.Request, err = reader.ReadString(); err != nil {
return nil, err
}
if msg.Response, err = reader.ReadString(); err != nil {
return nil, err
}
if msg.Status, err = reader.ReadUint(); err != nil {
return nil, err
}
if msg.Duration, err = reader.ReadUint(); err != nil {
return nil, err
}
return msg, err
}
func DecodeDOMDrop(reader BytesReader) (Message, error) {
var err error = nil
msg := &DOMDrop{}
@ -1808,7 +1721,7 @@ func ReadMessage(t uint64, reader BytesReader) (Message, error) {
case 26:
return DecodeIntegrationEvent(reader)
case 27:
return DecodeRawCustomEvent(reader)
return DecodeCustomEvent(reader)
case 28:
return DecodeUserID(reader)
case 29:
@ -1823,8 +1736,6 @@ func ReadMessage(t uint64, reader BytesReader) (Message, error) {
return DecodeClickEvent(reader)
case 35:
return DecodeResourceEvent(reader)
case 36:
return DecodeCustomEvent(reader)
case 37:
return DecodeCSSInsertRule(reader)
case 38:
@ -1837,8 +1748,6 @@ func ReadMessage(t uint64, reader BytesReader) (Message, error) {
return DecodeOTable(reader)
case 42:
return DecodeStateAction(reader)
case 43:
return DecodeStateActionEvent(reader)
case 44:
return DecodeRedux(reader)
case 45:
@ -1851,10 +1760,6 @@ func ReadMessage(t uint64, reader BytesReader) (Message, error) {
return DecodeGraphQL(reader)
case 49:
return DecodePerformanceTrack(reader)
case 50:
return DecodeGraphQLEvent(reader)
case 51:
return DecodeFetchEvent(reader)
case 52:
return DecodeDOMDrop(reader)
case 53:

View file

@ -58,7 +58,7 @@ func (mi *Saver) InsertMessage(msg Message) error {
return mi.pg.InsertWebJSException(m)
case *IntegrationEvent:
return mi.pg.InsertWebIntegrationEvent(m)
case *FetchEvent:
case *Fetch:
session, err := mi.pg.GetSession(sessionID)
if err != nil {
log.Printf("can't get session info for CH: %s", err)
@ -72,8 +72,8 @@ func (mi *Saver) InsertMessage(msg Message) error {
}
}
}
return mi.pg.InsertWebFetchEvent(sessionID, m)
case *GraphQLEvent:
return mi.pg.InsertWebFetch(sessionID, m)
case *GraphQL:
session, err := mi.pg.GetSession(sessionID)
if err != nil {
log.Printf("can't get session info for CH: %s", err)
@ -82,7 +82,7 @@ func (mi *Saver) InsertMessage(msg Message) error {
log.Printf("can't insert graphQL event into clickhouse: %s", err)
}
}
return mi.pg.InsertWebGraphQLEvent(sessionID, m)
return mi.pg.InsertWebGraphQL(sessionID, m)
case *SetPageLocation:
return mi.pg.InsertSessionReferrer(sessionID, m.Referrer)

View file

@ -27,9 +27,9 @@ type Connector interface {
InsertWebErrorEvent(session *types.Session, msg *types.ErrorEvent) error
InsertWebPerformanceTrackAggr(session *types.Session, msg *messages.PerformanceTrackAggr) error
InsertAutocomplete(session *types.Session, msgType, msgValue string) error
InsertRequest(session *types.Session, msg *messages.FetchEvent, savePayload bool) error
InsertRequest(session *types.Session, msg *messages.Fetch, savePayload bool) error
InsertCustom(session *types.Session, msg *messages.CustomEvent) error
InsertGraphQL(session *types.Session, msg *messages.GraphQLEvent) error
InsertGraphQL(session *types.Session, msg *messages.GraphQL) error
InsertIssue(session *types.Session, msg *messages.IssueEvent) error
}
@ -352,7 +352,7 @@ func (c *connectorImpl) InsertAutocomplete(session *types.Session, msgType, msgV
return nil
}
func (c *connectorImpl) InsertRequest(session *types.Session, msg *messages.FetchEvent, savePayload bool) error {
func (c *connectorImpl) InsertRequest(session *types.Session, msg *messages.Fetch, 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)
@ -365,8 +365,8 @@ func (c *connectorImpl) InsertRequest(session *types.Session, msg *messages.Fetc
if err := c.batches["requests"].Append(
session.SessionID,
uint16(session.ProjectID),
msg.MessageID,
datetime(msg.Timestamp),
msg.Meta().Index,
datetime(uint64(msg.Meta().Timestamp)),
msg.URL,
request,
response,
@ -386,8 +386,8 @@ func (c *connectorImpl) InsertCustom(session *types.Session, msg *messages.Custo
if err := c.batches["custom"].Append(
session.SessionID,
uint16(session.ProjectID),
msg.MessageID,
datetime(msg.Timestamp),
msg.Meta().Index,
datetime(uint64(msg.Meta().Timestamp)),
msg.Name,
msg.Payload,
"CUSTOM",
@ -398,12 +398,12 @@ func (c *connectorImpl) InsertCustom(session *types.Session, msg *messages.Custo
return nil
}
func (c *connectorImpl) InsertGraphQL(session *types.Session, msg *messages.GraphQLEvent) error {
func (c *connectorImpl) InsertGraphQL(session *types.Session, msg *messages.GraphQL) error {
if err := c.batches["graphql"].Append(
session.SessionID,
uint16(session.ProjectID),
msg.MessageID,
datetime(msg.Timestamp),
msg.Meta().Index,
datetime(uint64(msg.Meta().Timestamp)),
msg.OperationName,
nullableString(msg.Variables),
nullableString(msg.Response),

View file

@ -265,7 +265,7 @@ class IntegrationEvent(Message):
self.payload = payload
class RawCustomEvent(Message):
class CustomEvent(Message):
__id__ = 27
def __init__(self, name, payload):
@ -358,16 +358,6 @@ class ResourceEvent(Message):
self.status = status
class CustomEvent(Message):
__id__ = 36
def __init__(self, message_id, timestamp, name, payload):
self.message_id = message_id
self.timestamp = timestamp
self.name = name
self.payload = payload
class CSSInsertRule(Message):
__id__ = 37
@ -423,15 +413,6 @@ class StateAction(Message):
self.type = type
class StateActionEvent(Message):
__id__ = 43
def __init__(self, message_id, timestamp, type):
self.message_id = message_id
self.timestamp = timestamp
self.type = type
class Redux(Message):
__id__ = 44
@ -486,32 +467,6 @@ class PerformanceTrack(Message):
self.used_js_heap_size = used_js_heap_size
class GraphQLEvent(Message):
__id__ = 50
def __init__(self, message_id, timestamp, operation_kind, operation_name, variables, response):
self.message_id = message_id
self.timestamp = timestamp
self.operation_kind = operation_kind
self.operation_name = operation_name
self.variables = variables
self.response = response
class FetchEvent(Message):
__id__ = 51
def __init__(self, message_id, timestamp, method, url, request, response, status, duration):
self.message_id = message_id
self.timestamp = timestamp
self.method = method
self.url = url
self.request = request
self.response = response
self.status = status
self.duration = duration
class DOMDrop(Message):
__id__ = 52

View file

@ -280,7 +280,7 @@ class MessageCodec(Codec):
)
if message_id == 27:
return RawCustomEvent(
return CustomEvent(
name=self.read_string(reader),
payload=self.read_string(reader)
)
@ -356,14 +356,6 @@ class MessageCodec(Codec):
status=self.read_uint(reader)
)
if message_id == 36:
return CustomEvent(
message_id=self.read_uint(reader),
timestamp=self.read_uint(reader),
name=self.read_string(reader),
payload=self.read_string(reader)
)
if message_id == 37:
return CSSInsertRule(
id=self.read_uint(reader),
@ -407,13 +399,6 @@ class MessageCodec(Codec):
type=self.read_string(reader)
)
if message_id == 43:
return StateActionEvent(
message_id=self.read_uint(reader),
timestamp=self.read_uint(reader),
type=self.read_string(reader)
)
if message_id == 44:
return Redux(
action=self.read_string(reader),
@ -456,28 +441,6 @@ class MessageCodec(Codec):
used_js_heap_size=self.read_uint(reader)
)
if message_id == 50:
return GraphQLEvent(
message_id=self.read_uint(reader),
timestamp=self.read_uint(reader),
operation_kind=self.read_string(reader),
operation_name=self.read_string(reader),
variables=self.read_string(reader),
response=self.read_string(reader)
)
if message_id == 51:
return FetchEvent(
message_id=self.read_uint(reader),
timestamp=self.read_uint(reader),
method=self.read_string(reader),
url=self.read_string(reader),
request=self.read_string(reader),
response=self.read_string(reader),
status=self.read_uint(reader),
duration=self.read_uint(reader)
)
if message_id == 52:
return DOMDrop(
timestamp=self.read_uint(reader)

View file

@ -161,7 +161,7 @@ type TrJSExceptionDeprecated = [
payload: string,
]
type TrRawCustomEvent = [
type TrCustomEvent = [
type: 27,
name: string,
payload: string,
@ -412,7 +412,7 @@ type TrJSException = [
]
export type TrackerMessage = TrBatchMetadata | TrPartitionedMessage | TrTimestamp | TrSetPageLocation | TrSetViewportSize | TrSetViewportScroll | TrCreateDocument | TrCreateElementNode | TrCreateTextNode | TrMoveNode | TrRemoveNode | TrSetNodeAttribute | TrRemoveNodeAttribute | TrSetNodeData | TrSetNodeScroll | TrSetInputTarget | TrSetInputValue | TrSetInputChecked | TrMouseMove | TrConsoleLog | TrPageLoadTiming | TrPageRenderTiming | TrJSExceptionDeprecated | TrRawCustomEvent | TrUserID | TrUserAnonymousID | TrMetadata | TrCSSInsertRule | TrCSSDeleteRule | TrFetch | TrProfiler | TrOTable | TrStateAction | TrRedux | TrVuex | TrMobX | TrNgRx | TrGraphQL | TrPerformanceTrack | TrResourceTiming | TrConnectionInformation | TrSetPageVisibility | TrLoadFontFace | TrSetNodeFocus | TrLongTask | TrSetNodeAttributeURLBased | TrSetCSSDataURLBased | TrTechnicalInfo | TrCustomIssue | TrCSSInsertRuleURLBased | TrMouseClick | TrCreateIFrameDocument | TrAdoptedSSReplaceURLBased | TrAdoptedSSInsertRuleURLBased | TrAdoptedSSDeleteRule | TrAdoptedSSAddOwner | TrAdoptedSSRemoveOwner | TrZustand | TrJSException
export type TrackerMessage = TrBatchMetadata | TrPartitionedMessage | TrTimestamp | TrSetPageLocation | TrSetViewportSize | TrSetViewportScroll | TrCreateDocument | TrCreateElementNode | TrCreateTextNode | TrMoveNode | TrRemoveNode | TrSetNodeAttribute | TrRemoveNodeAttribute | TrSetNodeData | TrSetNodeScroll | TrSetInputTarget | TrSetInputValue | TrSetInputChecked | TrMouseMove | TrConsoleLog | TrPageLoadTiming | TrPageRenderTiming | TrJSExceptionDeprecated | TrCustomEvent | TrUserID | TrUserAnonymousID | TrMetadata | TrCSSInsertRule | TrCSSDeleteRule | TrFetch | TrProfiler | TrOTable | TrStateAction | TrRedux | TrVuex | TrMobX | TrNgRx | TrGraphQL | TrPerformanceTrack | TrResourceTiming | TrConnectionInformation | TrSetPageVisibility | TrLoadFontFace | TrSetNodeFocus | TrLongTask | TrSetNodeAttributeURLBased | TrSetCSSDataURLBased | TrTechnicalInfo | TrCustomIssue | TrCSSInsertRuleURLBased | TrMouseClick | TrCreateIFrameDocument | TrAdoptedSSReplaceURLBased | TrAdoptedSSInsertRuleURLBased | TrAdoptedSSDeleteRule | TrAdoptedSSAddOwner | TrAdoptedSSRemoveOwner | TrZustand | TrJSException
export default function translate(tMsg: TrackerMessage): RawMessage | null {
switch(tMsg[0]) {

View file

@ -1,6 +1,6 @@
# Special one for Batch Metadata. Message id could define the version
# Depricated since tracker 3.6.0 in favor of BatchMetadata
# Deprecated since tracker 3.6.0 in favor of BatchMetadata
message 80, 'BatchMeta', :replayer => false, :tracker => false do
uint 'PageNo'
uint 'FirstIndex'
@ -62,7 +62,7 @@ message 6, 'SetViewportScroll' do
int 'X'
int 'Y'
end
# (should be) Depricated sinse tracker ?.?.? in favor of CreateDocument(id=2)
# (should be) Deprecated sinse tracker ?.?.? in favor of CreateDocument(id=2)
# in order to use Document as a default root node instead of the documentElement
message 7, 'CreateDocument' do
end
@ -159,7 +159,7 @@ message 26, 'IntegrationEvent', :tracker => false, :replayer => false do
string 'Message'
string 'Payload'
end
message 27, 'RawCustomEvent', :replayer => false do
message 27, 'CustomEvent', :replayer => false do
string 'Name'
string 'Payload'
end
@ -206,6 +206,7 @@ message 33, 'ClickEvent', :tracker => false, :replayer => false do
string 'Label'
string 'Selector'
end
# removed (backend-only)
# message 34, 'ErrorEvent', :tracker => false, :replayer => false do
# uint 'MessageID'
# uint 'Timestamp'
@ -228,12 +229,13 @@ message 35, 'ResourceEvent', :tracker => false, :replayer => false do
string 'Method'
uint 'Status'
end
message 36, 'CustomEvent', :tracker => false, :replayer => false do
uint 'MessageID'
uint 'Timestamp'
string 'Name'
string 'Payload'
end
# removed (backend-only)
# message 36, 'CustomEvent', :tracker => false, :replayer => false do
# uint 'MessageID'
# uint 'Timestamp'
# string 'Name'
# string 'Payload'
# end
# deprecated since 4.0.2 in favor of AdoptedSSInsertRule + AdoptedSSAddOwner
message 37, 'CSSInsertRule' do
uint 'ID'
@ -265,15 +267,15 @@ message 41, 'OTable', :replayer => :devtools do
string 'Key'
string 'Value'
end
# Do we use that?
message 42, 'StateAction', :replayer => false do
string 'Type'
end
message 43, 'StateActionEvent', :tracker => false, :replayer => false do
uint 'MessageID'
uint 'Timestamp'
string 'Type'
end
# removed (backend-only)
# message 43, 'StateActionEvent', :tracker => false, :replayer => false do
# uint 'MessageID'
# uint 'Timestamp'
# string 'Type'
# end
message 44, 'Redux', :replayer => :devtools do
string 'Action'
string 'State'
@ -304,25 +306,26 @@ message 49, 'PerformanceTrack' do #, :replayer => :devtools --> requires player
uint 'TotalJSHeapSize'
uint 'UsedJSHeapSize'
end
# next 2 should be removed after refactoring backend/pkg/handlers/custom/eventMapper.go (move "wrapping" logic to pg connector insertion)
message 50, 'GraphQLEvent', :tracker => false, :replayer => false do
uint 'MessageID'
uint 'Timestamp'
string 'OperationKind'
string 'OperationName'
string 'Variables'
string 'Response'
end
message 51, 'FetchEvent', :tracker => false, :replayer => false do
uint 'MessageID'
uint 'Timestamp'
string 'Method'
string 'URL'
string 'Request'
string 'Response'
uint 'Status'
uint 'Duration'
end
# removed (backend-only)
# message 50, 'GraphQLEvent', :tracker => false, :replayer => false do
# uint 'MessageID'
# uint 'Timestamp'
# string 'OperationKind'
# string 'OperationName'
# string 'Variables'
# string 'Response'
# end
# removed (backend-only)
# message 51, 'FetchEvent', :tracker => false, :replayer => false do
# uint 'MessageID'
# uint 'Timestamp'
# string 'Method'
# string 'URL'
# string 'Request'
# string 'Response'
# uint 'Status'
# uint 'Duration'
# end
message 52, 'DOMDrop', :tracker => false, :replayer => false do
uint 'Timestamp'
end
@ -372,7 +375,7 @@ message 58, 'SetNodeFocus' do
int 'ID'
end
#Depricated (since 3.0.?)
#Deprecated (since 3.0.?)
message 59, 'LongTask' do
uint 'Timestamp'
uint 'Duration'

View file

@ -3,7 +3,6 @@ package messages
import (
"fmt"
"io"
)
<% $messages.each do |msg| %>
func Decode<%= msg.name %>(reader BytesReader) (Message, error) {

View file

@ -25,7 +25,7 @@ export declare const enum Type {
PageLoadTiming = 23,
PageRenderTiming = 24,
JSExceptionDeprecated = 25,
RawCustomEvent = 27,
CustomEvent = 27,
UserID = 28,
UserAnonymousID = 29,
Metadata = 30,
@ -220,8 +220,8 @@ export type JSExceptionDeprecated = [
/*payload:*/ string,
]
export type RawCustomEvent = [
/*type:*/ Type.RawCustomEvent,
export type CustomEvent = [
/*type:*/ Type.CustomEvent,
/*name:*/ string,
/*payload:*/ string,
]
@ -471,5 +471,5 @@ export type JSException = [
]
type Message = BatchMetadata | PartitionedMessage | Timestamp | SetPageLocation | SetViewportSize | SetViewportScroll | CreateDocument | CreateElementNode | CreateTextNode | MoveNode | RemoveNode | SetNodeAttribute | RemoveNodeAttribute | SetNodeData | SetNodeScroll | SetInputTarget | SetInputValue | SetInputChecked | MouseMove | ConsoleLog | PageLoadTiming | PageRenderTiming | JSExceptionDeprecated | RawCustomEvent | UserID | UserAnonymousID | Metadata | CSSInsertRule | CSSDeleteRule | Fetch | Profiler | OTable | StateAction | Redux | Vuex | MobX | NgRx | GraphQL | PerformanceTrack | ResourceTiming | ConnectionInformation | SetPageVisibility | LoadFontFace | SetNodeFocus | LongTask | SetNodeAttributeURLBased | SetCSSDataURLBased | TechnicalInfo | CustomIssue | CSSInsertRuleURLBased | MouseClick | CreateIFrameDocument | AdoptedSSReplaceURLBased | AdoptedSSInsertRuleURLBased | AdoptedSSDeleteRule | AdoptedSSAddOwner | AdoptedSSRemoveOwner | Zustand | JSException
type Message = BatchMetadata | PartitionedMessage | Timestamp | SetPageLocation | SetViewportSize | SetViewportScroll | CreateDocument | CreateElementNode | CreateTextNode | MoveNode | RemoveNode | SetNodeAttribute | RemoveNodeAttribute | SetNodeData | SetNodeScroll | SetInputTarget | SetInputValue | SetInputChecked | MouseMove | ConsoleLog | PageLoadTiming | PageRenderTiming | JSExceptionDeprecated | CustomEvent | UserID | UserAnonymousID | Metadata | CSSInsertRule | CSSDeleteRule | Fetch | Profiler | OTable | StateAction | Redux | Vuex | MobX | NgRx | GraphQL | PerformanceTrack | ResourceTiming | ConnectionInformation | SetPageVisibility | LoadFontFace | SetNodeFocus | LongTask | SetNodeAttributeURLBased | SetCSSDataURLBased | TechnicalInfo | CustomIssue | CSSInsertRuleURLBased | MouseClick | CreateIFrameDocument | AdoptedSSReplaceURLBased | AdoptedSSInsertRuleURLBased | AdoptedSSDeleteRule | AdoptedSSAddOwner | AdoptedSSRemoveOwner | Zustand | JSException
export default Message

View file

@ -294,12 +294,12 @@ export function JSExceptionDeprecated(
]
}
export function RawCustomEvent(
export function CustomEvent(
name: string,
payload: string,
): Messages.RawCustomEvent {
): Messages.CustomEvent {
return [
Messages.Type.RawCustomEvent,
Messages.Type.CustomEvent,
name,
payload,
]

View file

@ -102,7 +102,7 @@ export default class MessageEncoder extends PrimitiveEncoder {
return this.string(msg[1]) && this.string(msg[2]) && this.string(msg[3])
break
case Messages.Type.RawCustomEvent:
case Messages.Type.CustomEvent:
return this.string(msg[1]) && this.string(msg[2])
break