-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Checking all possible sequence matches #15
Comments
Sorry, that is not currently supported. If I understand you correctly you want to: |
Exactly, where segments will most often, if not always, be all users found in data source. I was able to make a quick prototype by adding cardinality to sequence (something regex like, *, +, ?, 1). To do this I had to:
This works correctly but the next feature that I miss is, I want to detect if there is any uncomplete funnels, ie I want to match event1 -> event2 -> event3, but also if there is partial funnel like event2 -> event3 in data source which is invalid. I am very interested to see your exact use case at King. Do you use this with automated tests? Do you use this with exploratory testing (this was my idea, getting data from a bunch of testers and checking if there are any invalid event patterns)? It looks to me I am trying to adapt this to use cases that were not intended to be covered. Thanks |
The current use case is to verify that a certain action is generating an expected Event. In the early days of Tratt, it was used for funnel analysis (See Story Of The Tratt). There used to be a way to specify something called "SequenceInvariants" where you could specify event fields. All events containing these fields with the same data would be placed in a segment. Perhaps something similar could be added? In current implementation there is a CONTAINER sequence type (which accepts events in an un-ordered way). Internally at King we also have a sequence type named FUNNEL, which takes event order into account. The current plan is to add FUNNEL to tratt-api sometimes next year (during first half). Ps. I'm on xmas leave. Let's talk more in early/mid Januray. |
Hi @korhner I've been giving this some thoughts. How about
{
"comment": "Comment describing the purpose of this TDL",
"sequenceInvariants": ["userId"],
"sequences": [{
"type": "CONTAINER",
"name": "SequenceA",
"sequenceMaxTime": "PT60S",
"checkPoints": [{
"eventType": "GameStart",
"validate": "level==2 && timestamp>=0",
"set": ["GS_level=level", "GS_timestamp=timestamp"]
}, {
"eventType": "GameEnd",
"validate": "level==GS_level && timestamp>=GS_timestamp && score==123 && endReason=='some-reason'"
}]
}]
}
/Alex |
Hi,
Lets say this is my event stream:
(User1, event1)
(User1, event2)
(User1, event1)
(User2, event2)
I want to check that any user that has event1 has also event2 (any user can have many such groups). Also, I don't want to specify a specific user, I want to check them all. I tried creating a sequence that matches this:
The problem is checkpoint only matches first event it finds, so in this case, only first 2 events will be checked, failing to report that User1 does not have event2 for all event1. Is it possible for a sequence to search through all possible matches?
The text was updated successfully, but these errors were encountered: