snowplow / snowplow/snowplow-javascript-tracker
Add a ping-lite feature
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 590
- Forks
- 232
- Avg merge
- 2h 22m
- Merged PRs (30d)
- 3
Description
Is your feature request related to a problem?
I aggregate pings because I feel I must, not that I want to. If the average user spends 3 mins on a page and heartbeat is 10, 10 then thats 17 ping records plus the page_view record. A lot of the information within the ping is unnecessary, it's already within the page_view, for example user_agent, Geo, mediums, referrer etc. 50 million page_views easily become 850 million additional records with pings on 10, 10. Aggregation has already causes me issues associated to this feature request
Describe the solution you'd like
A 'ping-lite' option, which is heartbeat-lite with the exact same functionality but this instructs that I solely want only the following:
event id
page id
X and Y min/max offsets
all timestamps
domain_userid
domain_sessionidx
domain_userid
The enricher validates but then passes through, nothing is added, only pure ping information for a minimum record for its intended purpose. Or take the enricher out of equation and allow a collector to send via 3 streams; good enricher, bad stream and ping lite to s3.
Describe alternatives you've considered
It's catch 22 to aggregate or turn pings on, even with adjusted ping timings, it'll never be exactly what I need no matter how I look at it.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the existing heartbeat-lite implementation and tracing how ping records move through the tracker, collector, and enricher. Compare the requested minimal fields with the current payload and identify where a ping-lite option would be selected. Done means the option preserves the requested event, page, offset, timestamp, user, and session fields without extra enrichment.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- analytics, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100