200 Commits

Author SHA1 Message Date
Reinaldy Rafli
976e06525b
fix: remove snuba uptime results consumer (#4027)
Saw this error on the self-hosted e2e tests:
```
snuba-uptime-results-consumer-1 | Error: Invalid value for '--storage': 'uptime_monitor_checks' is not one of 'spans', 'metrics_raw', 'errors', 'search_issues', 'generic_metrics_distributions_raw', 'generic_metrics_counters_raw', 'generic_metrics_sets_raw', 'generic_metrics_gauges_raw', 'eap_items', 'groupassignees', 'outcomes_raw', 'querylog', 'functions_raw', 'transactions', 'replays', 'profile_chunks', 'profiles', 'groupedmessages', 'group_attributes'.
```

Seems like we don't need that consumer anymore, since it's moved to EAP.
2025-11-08 02:29:17 +00:00
Reinaldy Rafli
c55b93bfa1
fix: missing -dir flag for seaweedfs (#3991) 2025-10-15 05:01:10 +07:00
Amin Vakil
e1f003313e
Remove symbolicator external volume (#3992)
* Remove symbolicator volume creation command

* Remove symbolicator volume

* Create sentry-symbolicator on docker compose up

* Pass volume name to remove_command

* Remove sentry-symbolicator from unit test
2025-10-10 09:14:41 +07:00
Joris Bayer
b77c5a8097
chore(spans): Remove old snuba-spans consumer (#3989) 2025-10-09 18:43:40 +07:00
Amin Vakil
0ed356938b
Bump redis 6.2.20-alpine (#3988)
https://redis.io/blog/security-advisory-cve-2025-49844/
2025-10-07 14:20:07 -07:00
Reinaldy Rafli
143f58579f
ref: use dedicated healthcheck command for symbolicator & remove cron for symbolicator-cleanup (#3979) 2025-10-01 09:14:32 +00:00
Javan Eskander
1640300332
fix: Unset the proxy when performing the seaweedfs health check (#3959) 2025-09-26 14:16:45 +00:00
Amin Vakil
18b7a4d1cc
Respect uppercase proxy variables (#3949)
* Respect uppercase proxy variables

* Put http_proxy first
2025-09-23 21:01:30 +07:00
Mark Story
b4723a0c6f
chore(tasks): Remove the worker and cron containers (#3946)
These are replaced by the `taskworker` and `taskscheduler` containers

Refs STREAM-433
2025-09-19 21:47:41 +07:00
Burak Yigit Kaya
84f904f7a1
feat: Use S3 node store with seaweedfs (#3498)
* feat: Use S3 node store with garage

* lol, fix bash

* moar bash

* lol

* hate bash

* fix moar bash

* Add healthcheck to garage service

Co-authored-by: Reinaldy Rafli <aldy505@proton.me>

* revert +x

* fix healthcheck, fix config

* add env var for garage size

* use better compression level

* simpler garage config

* add migration support

* feat: use seaweedfs as nodestore backend (#3842)

* feat: seaweedfs as s3 nodestore backend

* fix: 'server' was missing for seaweed

* feat: remove minimum volume free space

* feat: specify hostname on ip

* fix: grpc port on seaweed should be `-{service}.port.grpc` instead of `-{service}.grpcPort`

* fix: wrong access key & secret key; use localhost for internal comms

* fix: create index directory

* test: add sentry-seaweedfs volume into expected volumes

* debug: aaaaaaaaaaaaaaaaaaaaaaarrrrggggggghhhhhhhhhhhhhhh

* test: correct ordering for expected volumes

* chore: seaweedfs healthcheck to multiple urls

See https://stackoverflow.com/a/14578575/3153224

* chore: add swap for arm64 runners

* ci: debug memory issues for arm64 runners

* ci: turn off swapfile first

Turns out the arm64 runners already have 3GB of swap

* feat: nodestore config update behind a prompt/flag

* feat: set s3 lifecycle policy

* fix: seaweed is a busybox

* fix: try xml policy

* fix: go back to simplified json

* Revert "fix: go back to simplified json"

This reverts commit 2f1575dfe33db6f781b09d09b01f5382716b8826.

* chore: reword debug lifecycle policy

* fix: don't pollute APPLY_AUTOMATIC_CONFIG_UPDATES variable

---------

Co-authored-by: Reinaldy Rafli <github@reinaldyrafli.com>
2025-09-13 07:48:56 +07:00
Mark Story
440b6585fd
feat(tasks): Remove taskworker option override and add worker healthcheck (#3933)
feat(tasks) Remove taskworker option override and add worker healthcheck

Along with getsentry/sentry#99374 and this change taskworkers will be
enabled by default in self-hosted. I've left the celery workers active
to smooth over any tasks that are in-flight during an upgrade.

Add a worker healtcheck as we have one now.

Refs STREAM-450
2025-09-13 07:24:31 +07:00
Reinaldy Rafli
ce45294491
chore(deps): bump clickhouse to 25.3 (#3878)
* chore(deps): bump clickhouse to 25.3

* fix: wrong volume path for clickhouse default password:
2025-09-12 07:39:27 +07:00
Frederik Spang
53004dcbc0
Add restart policy to pgbouncer service (#3925) 2025-09-06 05:32:00 +00:00
Amin Vakil
85365f1149
Improve nginx depends_on policy (#3914) 2025-09-03 06:06:43 +07:00
Reinaldy Rafli
67c32e883d
chore(deps): bump patches version (#3879)
Except nginx, they don't seem to have any breaking change. See https://nginx.org/en/CHANGES

Other than nginx, patches version are available.
2025-08-23 14:15:07 +00:00
Amin Vakil
b7bb06470e
Revert "increase postgres max_connections above 100 connections (#2740)" (#3899)
This reverts commit 7691addcb631fee42389896cf4eead0794f11a9d.
2025-08-23 13:36:20 +00:00
Frederik Spang
2862432828
Add pgbouncer (#3884)
* Add patch for pgbouncer

* pgcat over pgbouncer

* Add patch for .env file

* Apply patches and add initial pgcat tolm file

* feat: hardcode pgcat image

* Fixes from review

* Align usernames defaults

* Remove postgres from default depends_on; Covered by pgcat by extension

* Set user and password - pgcat maybe doesnt support host auth trust

* Pool name maybe has to match, for some reason

* Use healthcheck from pgcat PR

* Reduce pool size, leave some for healthchecks and other clients running

* Start pgcat for bash scripts with postgres

* Update docker-compose.yml

* Use pgbouncer

* Revert to TRUST method
2025-08-23 20:18:13 +07:00
Reinaldy Rafli
e4d311bb5d
feat: Relay healthcheck (#3875) 2025-08-14 08:26:18 -07:00
mzglinski
43d4c5df0e
feat: healthchecks for sentry components (#3859)
* feat: add snuba healthcheck

* fix: snuba healthchecks

* fix: remove healthcheck from replacer

* feat: add healthchecks to sentry

* fix: small changes to sentry healthchecks

* fix: worker healthcheck

* feat: vroom healthcheck

* feat: symbolicator healthcheck

* feat: add nginx healthcheck

* fix: typo in .env

* fix: typo in docker-compose.yml

* test: increase docker compose --wait-timeout

* Revert "test: increase docker compose --wait-timeout"

This reverts commit fc43389793017f8041fc1cdae0a5cb5e2fb759f2.

* fix: do not use healthcheck: [disabled: true], since it breaks docker compose wait command

---------

Co-authored-by: Reinaldy Rafli <github@reinaldyrafli.com>
2025-08-13 03:51:56 +00:00
mzglinski
29000f157c
fix: add schedulers for generic metrics subscriptions (#3847) 2025-08-06 05:35:30 +07:00
Daniel Bunte
abe34d09ed
feat(install): Adds support for podman(compose) (#3673) 2025-07-22 13:58:07 +00:00
Reinaldy Rafli
e2ad04d564
feat: run EAP-related containers (#3778)
* feat: run snuba-items consumer

* feat: remove process-spans as it turns out relay does not publish to that topic yet

* feat: try re-adding process-spans

* feat: add snuba subscriptions-scheduler-executor for eap_items

* feat: run process-segment sentry consumer

---------

Co-authored-by: Burak Yigit Kaya <byk@sentry.io>
2025-07-08 01:42:50 +00:00
Evan Purkhiser
06d0fb1715
feat(uptime): Enable uptime in self-hosted (#3787) 2025-07-07 16:23:50 +00:00
Mark Story
d80a7d9c86
fix(taskworker) Remove num-brokers (#3769)
The num-brokers option generates broker host names that don't exist in
self-hosted.
2025-06-19 20:56:46 +07:00
Hubert Deng
019d372df2
Revert "fix(vroom): Explicitly set PROFILES_DIR for upcoming change" (#3760)
* Revert "fix(vroom): Explicitly set PROFILES_DIR for upcoming change (#3759)"

This reverts commit e07445d6be41793165316a3e077ebec343740530.

It also very importantly changes where we mount the profiles volume which fixes the issue. Our theory is as follows:

1. Vroom Dockerfile had a line doing `mkdirp /var/lib/sentry-profiles` at image build time. This makes the directory owned by `root`
2. When we mount over that directory, and change permissions we can store the permissions changes _in_ the directory but not the directory itself
3. So when we start the vroom image with the new mount, the contents are owned by `vroom` but the main directory is still owned by `root`. This is also why [this approach](a23a4e3952) worked as the entrypoint script did this at the start of every container instance.

---------

Co-authored-by: Burak Yigit Kaya <byk@sentry.io>
2025-06-17 21:26:01 +01:00
Burak Yigit Kaya
e07445d6be
fix(vroom): Explicitly set PROFILES_DIR for upcoming change (#3759)
PROFILES_DIR was defaulting to `/var/lib/sentry-profiles` which requires root access. When Vroom image decided to go with non-root default user, this started causing permission issues. Now the image is being refactored and it will not use `/var/lib/sentry-profiles` as the default path so we need to explicitly pass it.
2025-06-17 13:00:04 +00:00
Vita Chumakova
2b6bd5f9e8
feat: migrate to arm64-compatible smtp image (#3746) 2025-06-14 06:49:46 +07:00
Mark Story
c8ee02de19
feat: Add taskbroker + worker + scheduler (#3738) 2025-06-11 21:57:24 +07:00
Pierre Massat
1217f469ec
fix(profiles): Run the profile chunks consumer (#3739) 2025-06-07 07:07:49 +07:00
Reinaldy Rafli
9486a832eb
feat: provide monitoring-related configurations (#3611)
In accordance with https://github.com/getsentry/sentry-docs/pull/12660
2025-03-10 20:44:40 +00:00
Burak Yigit Kaya
ad39dabdf0
ref(geoip): Remove geoipupdate from compose (#3490)
`geoipupdate` is not used by any other service nor it is needed for any
service to run. Moreover, it is a one-shot command, causing
`docker compose up --wait` to fail when it exits with a non-zero status.
This happens when one has not yet set up their credentials and they may
choose to never do this.

This PR removes `geoipupdate` from the `docker-compose.yml` file and
moves the command directly into the geoip related script. One may run
this whenever they want to update their GeoIP database.

This PR needs an accompanying docs change.
2024-12-23 14:32:17 -08:00
Burak Yigit Kaya
3834ca7a61
fix(redis): Actually use custom config (#3459)
Follow up to https://github.com/getsentry/self-hosted/pull/3427#issuecomment-2518128717 where we created and mounted a custom Redis config only to not use it 🤦
2024-12-06 10:55:11 +00:00
Reinaldy Rafli
817fde205f
ref: remove suggested fix (#3446) 2024-11-27 09:53:07 -08:00
Sajjad hassanzadeh
c3814f0807
feat: add Redis configuration for improved memory management (#3427)
As Sentry continues to evolve, effective resource management becomes crucial for maintaining performance and stability. This update includes configurations that will help optimize Redis's memory usage, ensuring that the system runs efficiently under varying loads.

**Key Changes:**

- **Added `maxmemory` Directive**: Configured Redis to limit its memory usage to a specified size. This prevents excessive memory consumption and helps maintain system stability.
- **Set `maxmemory-policy` to `allkeys-lru`**: This policy allows Redis to evict the least recently used keys when it reaches the memory limit, ensuring that frequently accessed data remains available while older, less-used data is removed.
2024-11-19 11:43:58 +00:00
Hubert Deng
6a8c3a4758
feat(healthcheck): Improve redis healthcheck (#3422)
improve redis healthcheck
2024-11-11 15:47:07 -08:00
Reinaldy Rafli
98f6cf0a5d
fix: missing mime types and turning off autoindex for js-sdk endpoint (#3395)
Things weren't as smooth as I thought it would be.

### Legal Boilerplate

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.
2024-11-07 13:25:50 +00:00
Reinaldy Rafli
5910c02cc4
ref: allow hosted js sdk bundles (#3365)
* ref: allow hosted js sdk bundles


---------

Co-authored-by: Burak Yigit Kaya <ben@byk.im>
2024-10-07 16:03:28 -07:00
Hubert Deng
0ce7b00b2a
Migrate to zookeeper-less kafka (#3263)
* migrate to kraft

* fix syntax error

* move zookeeper volume removal to end of installation
2024-08-13 14:14:11 -07:00
Michal Kuffa
534a874c0b
Remove cdc and wal2json and use the default postgres entrypoint (#3260)
* Remove cdc and wal2json and use the default postgres entrypoint

* Remove the last bits of wal2json install

* Remove read-only postgres volume bind
2024-08-12 09:12:37 -07:00
Reinaldy Rafli
0b11564e36
feat: enable user feedback feature (#3193)
* feat: enable user feedback feature
2024-08-01 12:01:17 -07:00
Hubert Deng
485d3ffd2f
Add errors only self-hosted infrastructure (#3190) 2024-07-22 10:23:05 -07:00
Riya Chakraborty
ca5f35c94f
feat(generic-metrics): Add gauges to docker compose, re-try (#3177)
* add gauges

* use rust consumer instead
2024-07-16 09:59:57 -07:00
Hubert Deng
419d6ccf4e
Use non-alpine postgres (#3116)
use non-alpine postgres
2024-06-07 09:49:58 -07:00
Hubert Deng
3455a33a4c
Update consumer flags (#3112)
update consumer flags
2024-06-04 19:07:35 +00:00
Dan Fuller
f8e95ec868
feat: Add crons task consumers (#3106)
We now process tasks via Kafka consumers instead of celerybeat. This needs to be added to self-hosted as well
2024-06-04 10:35:30 -07:00
John
40eed10dbb
remove ref to skip writes (#3041) 2024-05-10 21:05:19 +00:00
Hubert Deng
67382fd2ab
Upgrade clickhouse to 23.8 (#3009)
* upgrade clickhouse
2024-05-06 09:22:03 -07:00
Hubert Deng
6db528d71a
Bump kafka and zookeeper versions (#2988)
* bump kafka and zookeeper versions
2024-04-30 12:32:22 -07:00
Matthew T
082903c84a
Upgrade postgres to 14.11 (#2975)
chore(deps): bump postgres to latest 14 alpine version
2024-04-19 10:45:47 -05:00
Matthew T
d80e62d9c7
chore(deps): bump memcached and redis to latest patch versions (#2973) 2024-04-18 12:29:16 -05:00