0
0
mirror of https://github.com/PostHog/posthog.git synced 2024-11-22 08:40:03 +01:00
Commit Graph

77 Commits

Author SHA1 Message Date
Oliver Browne
de4213e871
feat(err): Store symbol sets (#25904)
Co-authored-by: David Newell <d.newell1@outlook.com>
2024-11-05 15:50:33 +01:00
Michael Matloka
456466b59c
feat(max): Use new "Product description" project setting (#25937)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-11-04 16:34:24 +00:00
Ben White
ad32fafad2
feat: Encrypted fields rework (#24966) 2024-09-19 14:32:35 +02:00
Ben White
560e96e0be
fix: Revert plugin server test skipping logic (#24945) 2024-09-12 16:39:37 +02:00
Ben White
7fd0fbb207
feat(cdp): Use cyclotron part 2 (#24746) 2024-09-10 09:05:30 +02:00
Dylan Martin
6bc3eb52e0
chore(CI): only run "Calculate running time" on our repo, not on forks (#24320)
Co-authored-by: Michael Matloka <michael@posthog.com>
2024-08-13 12:50:38 -04:00
Neil Kakkar
50adf3b4ae
feat(flags): Fetch flags and team from database (#23120)
Co-authored-by: Dylan Martin <dylan@posthog.com>
Co-authored-by: James Greenhill <fuziontech@gmail.com>
2024-07-24 08:40:09 -07:00
ted kaemming
1ed9426eb7
refactor: Remove legacy overrides handling from plugin-server (#23616) 2024-07-11 08:24:54 -07:00
Xavier Vello
14bf5a8d06
chore(CI): add heathcheck to kafka & redis container, wait before tests (#23639) 2024-07-11 15:11:55 +02:00
Sandy Spicer
eac199d24a
chore: upgrade python to 3.11 (#23206) 2024-06-27 14:16:27 -07:00
Sandy Spicer
6c23c9bd89
revert: "chore: upgrade python to 3.11 🐍" (#23198)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-24 11:50:48 -07:00
Sandy Spicer
23a789d9fe
chore: upgrade python to 3.11 🐍 (#22932)
🐍
2024-06-21 16:45:42 +00:00
dependabot[bot]
18ee601998
chore(deps): bump pnpm/action-setup from 2 to 4 (#22269)
* chore(deps): bump pnpm/action-setup from 2 to 4

Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 2 to 4.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](https://github.com/pnpm/action-setup/compare/v2...v4)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Use pnpm version from package.json engines

* Fix a couple of workflows

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Michael Matloka <michal@matloka.com>
2024-05-20 20:03:04 +00:00
Paul D'Ambra
f33f3db069
chore: switch back to GH runners (#21600) 2024-04-17 11:51:56 +01:00
Paul D'Ambra
2190c51888
revert: "chore(CI): revert "chore: syphar is deprecated. fangle python actions"" (#21389)
* Revert "chore(CI): revert "chore: syphar is deprecated. fangle python actions…"

This reverts commit 1f2ff4ac32.

* not on depot?

* was missing a syphar removal :/

* was missing a syphar removal :/

* Update query snapshots

* back to depot

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-04-08 09:54:08 +00:00
Xavier Vello
1f2ff4ac32
chore(CI): revert "chore: syphar is deprecated. fangle python actions" (#21267)
Revert "chore: syphar is deprecated. fangle python actions (#21249)"

This reverts commit ea522d89d4.
2024-04-02 10:25:49 +00:00
Paul D'Ambra
ea522d89d4
chore: syphar is deprecated. fangle python actions (#21249) 2024-04-01 13:02:12 +01:00
Paul D'Ambra
597144ddf3
chore(ci): switch some workflows entirely to depot (#21187)
* chore(ci): switch some workflows entirely to depot

* yolo
2024-03-28 09:16:14 +00:00
dependabot[bot]
84db745fb2
chore(deps): bump actions/setup-node from 3 to 4 (#20809)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-11 17:07:43 +01:00
Paul D'Ambra
9af89cd98f
fix: remove deprecated pip cache action (#19552)
* fix: remove deprecated pip cache action

* with wildcard

* fix
2024-01-02 15:02:29 +00:00
Brett Hoerner
a9acc10cbe
fix: pin CI node version to the version we use in prod (#19221) 2023-12-08 15:32:25 -07:00
Brett Hoerner
efd71ec821
fix(plugin-server): jitter and retry reloadPlugins (#18108) 2023-10-20 06:58:16 -06:00
Xavier Vello
4a0796dac5
chore(plugins-server): remove eachBatchLegacyIngestion (#17894) 2023-10-12 10:55:43 +02:00
Xavier Vello
37c592495b
chore(ci): remove recording-ingestion-load-test step (#17277) 2023-09-01 10:53:50 +02:00
Xavier Vello
f43fe29ec4
fix: break circular references in hub to reduce jest memory usage (#17210) 2023-08-28 11:44:49 +02:00
James Greenhill
bc05c1b8cd
fix: Move to RE2 for chainToElements (#17198)
* fix: Move to RE2 for chainToElements

* update actual plugin-server chainToElements

* sort imports

* pull RE2 regex definitions into the module

* Update ci-plugin-server.yml

* bump

* bump re2 version

* moar mem

* update pnpm lock

---------

Co-authored-by: Xavier Vello <xavier.vello@gmail.com>
Co-authored-by: Xavier Vello <xavier@posthog.com>
2023-08-25 10:05:33 -07:00
Ben White
219e865dfa
fix: Check for plugin server tests (#16547) 2023-07-13 10:34:46 +02:00
Paul D'Ambra
7d12439734
chore: plugin server test skipping (#16522) 2023-07-12 16:26:22 +01:00
Paul D'Ambra
f975ac2a7c
chore: setup plugin server CI so it can be conditional and have required tests (#16515) 2023-07-12 13:06:41 +01:00
Paul D'Ambra
1621ad956c
feat: allow disabling high water mark processing (#16399)
Problem
We're not able to play back all of the recordings captured by the blob ingester, the offset high water mark processing is new and if it isn't working correctly would lead to us skipping data we should not have

Changes
Allow us to set an environment variable that uses a no-op high-water mark processor
sneaks in removal of the no-longer-used SESSION_RECORDING_BLOB_PROCESSING_TEAMS env var
2023-07-06 10:37:06 +01:00
Xavier Vello
3414f8ebbc
chore(ingestion): re-introduce rdkafka consumer alongside kafkajs (#16048) 2023-06-20 14:29:26 +02:00
James Greenhill
81d8c2134e
chore: revert back to default runners for GitHub Actions (#15950) 2023-06-07 16:14:58 -07:00
James Greenhill
cb7b1082be
chore: split tests onto their own dedicated GitHub runners (#15919) 2023-06-06 10:01:49 -07:00
Xavier Vello
d389cf0ead
chore(ingestion): remove old batching code (#15689) 2023-05-25 09:58:55 +02:00
Xavier Vello
2f27f43406
perf(ingestion): port overflow logic into eachBatchParallelIngestion (#15621) 2023-05-19 16:37:27 +02:00
Xavier Vello
c4cd48b403
chore: upgrade pnpm to 8.3.1 (#15273) 2023-04-28 11:35:58 +02:00
Paul D'Ambra
b75d560a55
fix: SESSION_RECORDING_BLOB_PROCESSING_TEAMS config handling (#15247)
* correct comment

* correct usage of enabled teams config

* turn on SESSION_RECORDING_BLOB_PROCESSING_TEAMS for all teams in CI

* skip failing tests
2023-04-26 13:23:31 +01:00
Ben White
fdb2c71a39
feat: S3 backed recording ingestion (take 2) (#14864) 2023-04-25 09:43:07 +00:00
Harry Waye
2e4c4d4bb3
chore: print session messages as we go, save memory (#14671)
* chore: print session messages as we go, save memory

Wanted to make sure we're not getting close to any memory limits when
generating, stream to Kafka asap

* wip

* wip
2023-03-10 10:52:48 +00:00
Harry Waye
a26a87cf40
chore: add profiler to session recordings load test (#14649)
chore: add profiler to session recordings load test
2023-03-09 14:07:54 +00:00
Harry Waye
9609d0bf59
chore(recordings): fix no team found on load test (#14626)
* chore(recordings): fix no team found on load test

For some reason it's not picking up the team from the token. I assume
there's some env var difference because it seems to work fine locally.

* wip

* wip

* fix ci

* increase session count

* no need for test data

* reduce session count
2023-03-08 14:22:04 +00:00
Harry Waye
a29e137069
chore(recordings): add command to generate session recording events (#14496)
* chore(recordings): add command to generate session recording events

The intention of this is to be able to generate somewhat realistic
session recording events to test the ingestion pipeline performance,
such that we don't need to rely on pushing to production.

This command just outputs for stdout a single JSON encoded line per
event, which can then e.g. be piped into kafkacat or
kafka-console-producer, or put to a file to then be used by vegeta to
perform load testing on the capture endpoint.
2023-03-08 11:46:56 +00:00
Frank Hamand
0dfc549f96
chore: Python 3.10 (#14360)
* Python 3.10

Performance gains go brrr

* Add missing SAML deps

* Add missing dep to dockerfile

* Update mypy to 0.981 for 3.10.7 compatibility

Needed this bug to be fixed: https://github.com/python/mypy/issues/13627

This also incidentally fixed the mypy bug in csv_exporter.py

* bump to 3.10.10
2023-02-24 09:14:09 +00:00
Frank Hamand
1d7afd3352
chore: Python 3.9 (#14336)
* Update to python 3.9

* Update pytest

6.2.2 doesn't support python 3.9+

* Add missing saml dependencies

* Update snapshots

* Update snapshots

* Update snapshots

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-22 09:23:22 +00:00
Tomás Farías Santana
1703ee5c7c
fix(ci): Bump Ubuntu to fix GH runner in CI Plugin Server (#14312)
fix(ci): Bump Ubuntu in Plugin Server CI
2023-02-20 16:43:55 +01:00
Michael Matloka
b4b3453525
ci: Use POSTHOG_BOT_GITHUB_TOKEN for actions/setup-python (#14033) 2023-02-06 12:36:00 +01:00
Tiina Turban
3cdad732fd
feat: PoE placeholder for ingestion and testing enabling (#13881) 2023-01-26 15:18:25 +01:00
Harry Waye
c693c8484f
chore(person-merges): add person merges ClickHouse table (#13753)
* chore(person-merges): add person merges ClickHouse table

To enable speeding up queries we want to include a person merges table
which we can use to join on to be able to "correct" event person_ids
that may be needed due to person merges happening.

The specific difference from this implementation and the distinct_id
lookup is the cardinality of the table should be :fingerscrossed: much
lower, with the majority of events already having the correct person_id
associated with them.

The distinct_id joining is particularly problematic in that the join key
on the right hand side of a join needs to be loaded into memory as a
Hash map, for the purposes of ClickHouse performing a HashJoin.

 1. distinct_ids are arbitrary length strings
 2. every event needed to be joined via a distinct_id. With the
    person_id join we can use an left outer join making the right hand
    side much smaller if we simply omit person ids we think are the
    "canonical" id.

* add some todos

* empty __init__

* wip

* Add Kafka and Materialized views

* add some comments

* exclude created_at field

* duplicate materialized view schema from kafka table

* fix default now

* whitespace

* remove EMPTY AS

* Use EMPTY AS

* Update schema snapshots

* update name extract

* fix table name escaping

* update snapshots

* fix escaping

* create kafka tables late

* Add posthog clickhouse migrations to github actions change list

* Add tombstone flag

* add missing comma

* update snapshots

* partition by oldest_event

* make kafka table names consistent with others

* Update posthog/models/person_overrides/sql.py

Co-authored-by: Xavier Vello <xavier@posthog.com>

* Align naming with existing variables and add a test

* add missing override changes

* Update test

* Update snapshots

* delete kafka and mv tables at end of tests

* fix date formatting issue

* assert results is list

* Update snapshots

* Update snapshots

* Add comment re. using EMPTY AS SELECT

* Add comment about where version will come from

* Update posthog/clickhouse/test/test_person_overrides.py

Co-authored-by: James Greenhill <fuziontech@gmail.com>

* Update snapshots

Co-authored-by: Xavier Vello <xavier@posthog.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: James Greenhill <fuziontech@gmail.com>
2023-01-24 09:20:14 +00:00
Harry Waye
a27d452171
feat(person-on-events): add option to delay all events (#13505)
* feat(person-on-events): add option to delay all events

This change implements the option outlined in
https://github.com/PostHog/product-internal/pull/405

Here I do not try to do any large structural changes to the code, I'll
leave that for later although it does mean the code has a few loose
couplings between pipeline steps that probably should be strongly
coupled. I've tried to comment these to try to make it clear about the
couplings.

I've also added a workflow to run the functional tests against both
configurations, which we can remove once we're happy with the new
implementation.

Things of note:

 1. We can't enable this for all users yet, not without the live events
    view and not without verifying that the buffer size is sufficiently
    large. We can however enable this for the test team and verify that
    it functions as expected.
 2. I have not handled the case mentioned in the above PR regarding
    guarding against processing the delayed events before all events in
    the delay window have been processed.

wip

test(person-on-events): add currently failing test for person on events

This test doesn't work with the previous behaviour of the
person-on-events implementation, but should pass with the new delay all
events behaviour.

* add test for KafkaJSError behaviour

* add comment re delay

* add test for create_alias

* chore: increase exports timeout

It seems to fail in CI, but only for the delayed events enabled tests.
I'm not sure why, but I'm guessing it's because the events are further
delayed by the new implementation.

* chore: fix test

* add test for ordering of person properties

* use ubuntu-latest-8-cores runner

* add tests for plugin processEvent

* chore: ensure plugin processEvent isn't run multiple times

* expand on person properties ordering test

* wip

* wip

* add additional test

* change fullyProcessEvent to onlyUpdatePersonIdAssociations

* update test

* add test to ensure person properties do not propagate backwards in time

* simplicfy person property tests

* weaken guarantee in test

* chore: make sure we don't update properties on the first parse

We should only be updating person_id and asociated distinct_ids on first
parse.

* add tests for dropping events

* increase export timeout

* increase historical exports timeout

* increase default waitForExpect interval to 1 second
2023-01-05 16:38:43 +00:00
Guido Iaquinti
9acbb57623
chore(NodeJS): use Node.js v18 (#12650) 2022-12-12 15:02:33 +01:00