Page MenuHomeDevCentral

Refresh Sentry installation
Closed, ResolvedPublic

Description

Sentry was installed in 2016 as Docker containers.

Notifications Center uses it to report exceptions, and there are plans for:

  • Zed: report exceptions (old code with Raven lib proof of concept to modernize)
  • Auth Grove: same configuration than Notifications Center (but see T1771 moratoire on Auth Grove dev)
  • Wearg / Dæghrefn: check for new errorInfo content (see T1790)

It's especially important for Wearg, Dæghrefn and Notifications Center as humans don't have access to the errors when it's automatically processed.

We've some Gb of data of repeating errors from Notifications Center in pgsql, a db schema not compatible with 9.1.2 version (the stop before switching to CalVer). Interest of those are dubious, as Dorian updated the code to modern Laravel, and as I've hunted and solved Notifications Center / Phabricator main issues.

Meanwhile, Sentry codebase evolved. The old image seems to be stucked to 9.1.2 3 years ago

Instead of upgrading, I suggest to reinstall it from scratch, especially as we don't have any used history or applications reporting.

Then setup reporting for the applications needing this service the most.

Revisions and Commits

rDSENTRY Docker image for Sentry
D2901
rDPGSENTRY PostgreSQL Docker image for Sentry
D2867
D2866
D2864
rOPS Nasqueron Operations
D2945
D2944
D2908
D2888
D2885
D2886
D2882
D2881
D2875
D2874
D2873
D2872
D2871
D2865
D2861
D2859
D2858
D2857
rNOTIF Notifications center
D2935

Event Timeline

dereckson triaged this task as Normal priority.Mar 7 2023, 17:47
dereckson created this task.
dereckson renamed this task from Refresh Sentry installation to CalVer modern releases to Refresh Sentry installation.Mar 7 2023, 17:51
dereckson updated the task description. (Show Details)

PostgreSQL for Sentry requires a custom extension, wal2json.

Created new repository rDPGSENTRY to host nasqueron/postgres-sentry Docker image.

Current status

Next steps

  • Deploy Sentry new container
  • Import the logic in getsentry/self-hosted install/ in rOPS (Kafka topics and wal2json parts done)

A test exception has been sent from Notifications Center to Sentry successfully:
https://sentry.nasqueron.org/organizations/nasqueron/issues/1

Without login, it can be shown at https://sentry.nasqueron.org/share/issue/24e8af88fdf04636a37aeffccf78c4eb/

T1796 has been created from Sentry UI, so the Sentry/Phabricator integration works.
Alken-Orin account description has been accordingly updated.

Current status

Front-end seems to work fine and receive payloads from Notifications Center.

T1802 shows it can be upgraded.

Still to check and configure

  • What about CDC? According https://github.com/getsentry/cdc we should have a cdc process somewhere. Work has been prepared at https://github.com/getsentry/self-hosted/commit/8dc84600c5ceb7063813d18657011fa53a659d3f for PostgreSQL, but cdc process doesn't run.
    • It needs replication access, self-hosted used a blind trust, we require regular authentication, so container must have PostgreSQL credentials too in CDC_POSTGRES_DSN_TEMPLATE environment variable. Reference cdc docker-compose uses postgres://postgres:password@postgres:5432/{database}. We should add to credentials mod a postgres_get_dsn(hostname="localhost", database=None) returning postgres://...:...@sentry_db:5432/ and append {database} (hence the "template" variable name).