analytics icon indicating copy to clipboard operation
analytics copied to clipboard

Process per IP ingestion strategy

Open vinibrsl opened this issue 2 years ago • 3 comments

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

vinibrsl avatar Aug 09 '22 16:08 vinibrsl

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 ➡️


Current branch size history | Target branch size history

bundlemon[bot] avatar Aug 09 '22 16:08 bundlemon[bot]

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.

vinibrsl avatar Aug 16 '22 23:08 vinibrsl

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.

ukutaht avatar Aug 24 '22 12:08 ukutaht

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.

ukutaht avatar Nov 25 '22 10:11 ukutaht

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

vinibrsl avatar Nov 25 '22 12:11 vinibrsl

Ah thanks for the heads up, I had completely forgotten about this, sorry. Let's revisit later.

aerosol avatar Nov 27 '22 12:11 aerosol