analytics
analytics copied to clipboard
Process per IP ingestion strategy
Changes
This commit creates a GenServer spawned for each incoming event IP. It caches event information to be used in subsequent events from the same IP. This makes the processing asynchronous, therefore, tests were changed accordingly. This is a breaking change as validation errors are no longer returned, returning HTTP 202 instead.
This is work in progress and feedback is more than welcome. After feedback I'll jump into writing tests for the new GenServer.
Tests
- [ ] Automated tests have been added
- [ ] This PR does not require tests
Changelog
- [ ] Entry has been added to changelog
- [ ] This PR does not make a user-facing change
Documentation
- [ ] Docs have been updated
- [ ] This change does not need a documentation update
Dark mode
- [ ] The UI has been tested both in dark and light mode
- [ ] This PR does not change the UI
BundleMon
Unchanged files (7)
| Status | Path | Size | Limits |
|---|---|---|---|
| :white_check_mark: | static/css/app.css |
515.1KB | - |
| :white_check_mark: | static/js/dashboard.js |
287.69KB | - |
| :white_check_mark: | static/js/app.js |
12.13KB | - |
| :white_check_mark: | static/js/embed.host.js |
5.58KB | - |
| :white_check_mark: | static/js/embed.content.js |
5.06KB | - |
| :white_check_mark: | tracker/js/plausible.js |
748B | - |
| :white_check_mark: | static/js/applyTheme.js |
314B | - |
No change in files bundle size
Final result: :white_check_mark:
View report in BundleMon website ➡️
Checkpoint: I updated this branch with the ExternalController refactoring that is in master, and implemented a process per session strategy, removing Plausible.Session.CacheStore. I still have plenty of tests to fix as I deleted the CacheStore module. However, ExternalController tests are passing and that is a good thing :)
I'll work on making tests green and writing tests for the new Session actor.
Just an overall observation: I really like all the naming here and the way you've factored the code, plus docs. Love seeing everything get cleaner and cleaner 🙏 Much appreciated.
I think the changes are quite significant and I would like to review this on a video call when we get a chance.
Can we close this to reduce the amount of open PRs? Can always refer back to the code or reopen in but it has many conflicts with the ongoing ingestion pipeline work.
Can we close this to reduce the amount of open PRs? Can always refer back to the code or reopen in but it has many conflicts with the ongoing ingestion pipeline work.
Fine by me! I'll leave the branch in the remote /cc @aerosol
Ah thanks for the heads up, I had completely forgotten about this, sorry. Let's revisit later.