Skip to content

Commit 485d3ff

Browse files
Add errors only self-hosted infrastructure (#3190)
1 parent ca5f35c commit 485d3ff

File tree

3 files changed

+91
-36
lines changed

3 files changed

+91
-36
lines changed

.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
COMPOSE_PROJECT_NAME=sentry-self-hosted
2+
COMPOSE_PROFILES=feature-complete
23
SENTRY_EVENT_RETENTION_DAYS=90
34
# You can either use a port number or an IP:PORT combo for SENTRY_BIND
45
# See https://docs.docker.com/compose/compose-file/#ports for more

docker-compose.yml

Lines changed: 87 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -36,24 +36,8 @@ x-sentry-defaults: &sentry_defaults
3636
<<: *depends_on-default
3737
snuba-api:
3838
<<: *depends_on-default
39-
snuba-errors-consumer:
40-
<<: *depends_on-default
41-
snuba-outcomes-consumer:
42-
<<: *depends_on-default
43-
snuba-outcomes-billing-consumer:
44-
<<: *depends_on-default
45-
snuba-transactions-consumer:
46-
<<: *depends_on-default
47-
snuba-subscription-consumer-events:
48-
<<: *depends_on-default
49-
snuba-subscription-consumer-transactions:
50-
<<: *depends_on-default
51-
snuba-replacer:
52-
<<: *depends_on-default
5339
symbolicator:
5440
<<: *depends_on-default
55-
vroom:
56-
<<: *depends_on-default
5741
entrypoint: "/etc/sentry/entrypoint.sh"
5842
command: ["run", "web"]
5943
environment:
@@ -71,6 +55,7 @@ x-sentry-defaults: &sentry_defaults
7155
GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR: *ca_bundle
7256
# Leaving the value empty to just pass whatever is set
7357
# on the host system (or in the .env file)
58+
COMPOSE_PROFILES:
7459
SENTRY_EVENT_RETENTION_DAYS:
7560
SENTRY_MAIL_HOST:
7661
SENTRY_MAX_EXTERNAL_SOURCEMAP_SIZE:
@@ -268,55 +253,84 @@ services:
268253
snuba-outcomes-billing-consumer:
269254
<<: *snuba_defaults
270255
command: rust-consumer --storage outcomes_raw --consumer-group snuba-consumers --auto-offset-reset=earliest --max-batch-time-ms 750 --no-strict-offset-reset --raw-events-topic outcomes-billing
256+
snuba-group-attributes-consumer:
257+
<<: *snuba_defaults
258+
command: rust-consumer --storage group_attributes --consumer-group snuba-group-attributes-consumers --auto-offset-reset=latest --max-batch-time-ms 750 --no-strict-offset-reset
259+
snuba-replacer:
260+
<<: *snuba_defaults
261+
command: replacer --storage errors --auto-offset-reset=latest --no-strict-offset-reset
262+
snuba-subscription-consumer-events:
263+
<<: *snuba_defaults
264+
command: subscriptions-scheduler-executor --dataset events --entity events --auto-offset-reset=latest --no-strict-offset-reset --consumer-group=snuba-events-subscriptions-consumers --followed-consumer-group=snuba-consumers --schedule-ttl=60 --stale-threshold-seconds=900
265+
#############################################
266+
## Feature Complete Sentry Snuba Consumers ##
267+
#############################################
271268
# Kafka consumer responsible for feeding transactions data into Clickhouse
272269
snuba-transactions-consumer:
273270
<<: *snuba_defaults
274271
command: rust-consumer --storage transactions --consumer-group transactions_group --auto-offset-reset=latest --max-batch-time-ms 750 --no-strict-offset-reset
272+
profiles:
273+
- feature-complete
275274
snuba-replays-consumer:
276275
<<: *snuba_defaults
277276
command: rust-consumer --storage replays --consumer-group snuba-consumers --auto-offset-reset=latest --max-batch-time-ms 750 --no-strict-offset-reset
277+
profiles:
278+
- feature-complete
278279
snuba-issue-occurrence-consumer:
279280
<<: *snuba_defaults
280281
command: rust-consumer --storage search_issues --consumer-group generic_events_group --auto-offset-reset=latest --max-batch-time-ms 750 --no-strict-offset-reset
282+
profiles:
283+
- feature-complete
281284
snuba-metrics-consumer:
282285
<<: *snuba_defaults
283286
command: rust-consumer --storage metrics_raw --consumer-group snuba-metrics-consumers --auto-offset-reset=latest --max-batch-time-ms 750 --no-strict-offset-reset
284-
snuba-group-attributes-consumer:
287+
profiles:
288+
- feature-complete
289+
snuba-subscription-consumer-transactions:
285290
<<: *snuba_defaults
286-
command: rust-consumer --storage group_attributes --consumer-group snuba-group-attributes-consumers --auto-offset-reset=latest --max-batch-time-ms 750 --no-strict-offset-reset
291+
command: subscriptions-scheduler-executor --dataset transactions --entity transactions --auto-offset-reset=latest --no-strict-offset-reset --consumer-group=snuba-transactions-subscriptions-consumers --followed-consumer-group=transactions_group --schedule-ttl=60 --stale-threshold-seconds=900
292+
profiles:
293+
- feature-complete
294+
snuba-subscription-consumer-metrics:
295+
<<: *snuba_defaults
296+
command: subscriptions-scheduler-executor --dataset metrics --entity metrics_sets --entity metrics_counters --auto-offset-reset=latest --no-strict-offset-reset --consumer-group=snuba-metrics-subscriptions-consumers --followed-consumer-group=snuba-metrics-consumers --schedule-ttl=60 --stale-threshold-seconds=900
297+
profiles:
298+
- feature-complete
287299
snuba-generic-metrics-distributions-consumer:
288300
<<: *snuba_defaults
289301
command: rust-consumer --storage generic_metrics_distributions_raw --consumer-group snuba-gen-metrics-distributions-consumers --auto-offset-reset=latest --max-batch-time-ms 750 --no-strict-offset-reset
302+
profiles:
303+
- feature-complete
290304
snuba-generic-metrics-sets-consumer:
291305
<<: *snuba_defaults
292306
command: rust-consumer --storage generic_metrics_sets_raw --consumer-group snuba-gen-metrics-sets-consumers --auto-offset-reset=latest --max-batch-time-ms 750 --no-strict-offset-reset
307+
profiles:
308+
- feature-complete
293309
snuba-generic-metrics-counters-consumer:
294310
<<: *snuba_defaults
295311
command: rust-consumer --storage generic_metrics_counters_raw --consumer-group snuba-gen-metrics-counters-consumers --auto-offset-reset=latest --max-batch-time-ms 750 --no-strict-offset-reset
312+
profiles:
313+
- feature-complete
296314
snuba-generic-metrics-gauges-consumer:
297315
<<: *snuba_defaults
298316
command: rust-consumer --storage generic_metrics_gauges_raw --consumer-group snuba-gen-metrics-gauges-consumers --auto-offset-reset=latest --max-batch-time-ms 750 --no-strict-offset-reset
299-
snuba-replacer:
300-
<<: *snuba_defaults
301-
command: replacer --storage errors --auto-offset-reset=latest --no-strict-offset-reset
302-
snuba-subscription-consumer-events:
303-
<<: *snuba_defaults
304-
command: subscriptions-scheduler-executor --dataset events --entity events --auto-offset-reset=latest --no-strict-offset-reset --consumer-group=snuba-events-subscriptions-consumers --followed-consumer-group=snuba-consumers --schedule-ttl=60 --stale-threshold-seconds=900
305-
snuba-subscription-consumer-transactions:
306-
<<: *snuba_defaults
307-
command: subscriptions-scheduler-executor --dataset transactions --entity transactions --auto-offset-reset=latest --no-strict-offset-reset --consumer-group=snuba-transactions-subscriptions-consumers --followed-consumer-group=transactions_group --schedule-ttl=60 --stale-threshold-seconds=900
308-
snuba-subscription-consumer-metrics:
309-
<<: *snuba_defaults
310-
command: subscriptions-scheduler-executor --dataset metrics --entity metrics_sets --entity metrics_counters --auto-offset-reset=latest --no-strict-offset-reset --consumer-group=snuba-metrics-subscriptions-consumers --followed-consumer-group=snuba-metrics-consumers --schedule-ttl=60 --stale-threshold-seconds=900
317+
profiles:
318+
- feature-complete
311319
snuba-profiling-profiles-consumer:
312320
<<: *snuba_defaults
313321
command: rust-consumer --storage profiles --consumer-group snuba-consumers --auto-offset-reset=latest --max-batch-time-ms 1000 --no-strict-offset-reset
322+
profiles:
323+
- feature-complete
314324
snuba-profiling-functions-consumer:
315325
<<: *snuba_defaults
316326
command: rust-consumer --storage functions_raw --consumer-group snuba-consumers --auto-offset-reset=latest --max-batch-time-ms 1000 --no-strict-offset-reset
327+
profiles:
328+
- feature-complete
317329
snuba-spans-consumer:
318330
<<: *snuba_defaults
319331
command: rust-consumer --storage spans --consumer-group snuba-spans-consumers --auto-offset-reset=latest --max-batch-time-ms 1000 --no-strict-offset-reset
332+
profiles:
333+
- feature-complete
320334
symbolicator:
321335
<<: *restart_policy
322336
image: "$SYMBOLICATOR_IMAGE"
@@ -363,57 +377,90 @@ services:
363377
attachments-consumer:
364378
<<: *sentry_defaults
365379
command: run consumer ingest-attachments --consumer-group ingest-consumer
380+
post-process-forwarder-errors:
381+
<<: *sentry_defaults
382+
command: run consumer --no-strict-offset-reset post-process-forwarder-errors --consumer-group post-process-forwarder --synchronize-commit-log-topic=snuba-commit-log --synchronize-commit-group=snuba-consumers
383+
subscription-consumer-events:
384+
<<: *sentry_defaults
385+
command: run consumer events-subscription-results --consumer-group query-subscription-consumer
386+
##############################################
387+
## Feature Complete Sentry Ingest Consumers ##
388+
##############################################
366389
transactions-consumer:
367390
<<: *sentry_defaults
368391
command: run consumer ingest-transactions --consumer-group ingest-consumer
392+
profiles:
393+
- feature-complete
369394
metrics-consumer:
370395
<<: *sentry_defaults
371396
command: run consumer ingest-metrics --consumer-group metrics-consumer
397+
profiles:
398+
- feature-complete
372399
generic-metrics-consumer:
373400
<<: *sentry_defaults
374401
command: run consumer ingest-generic-metrics --consumer-group generic-metrics-consumer
402+
profiles:
403+
- feature-complete
375404
billing-metrics-consumer:
376405
<<: *sentry_defaults
377406
command: run consumer billing-metrics-consumer --consumer-group billing-metrics-consumer
407+
profiles:
408+
- feature-complete
378409
ingest-replay-recordings:
379410
<<: *sentry_defaults
380411
command: run consumer ingest-replay-recordings --consumer-group ingest-replay-recordings
412+
profiles:
413+
- feature-complete
381414
ingest-occurrences:
382415
<<: *sentry_defaults
383416
command: run consumer ingest-occurrences --consumer-group ingest-occurrences
417+
profiles:
418+
- feature-complete
384419
ingest-profiles:
385420
<<: *sentry_defaults
386421
command: run consumer ingest-profiles --consumer-group ingest-profiles
422+
profiles:
423+
- feature-complete
387424
ingest-monitors:
388425
<<: *sentry_defaults
389426
command: run consumer ingest-monitors --consumer-group ingest-monitors
427+
profiles:
428+
- feature-complete
390429
monitors-clock-tick:
391430
<<: *sentry_defaults
392431
command: run consumer monitors-clock-tick --consumer-group monitors-clock-tick
432+
profiles:
433+
- feature-complete
393434
monitors-clock-tasks:
394435
<<: *sentry_defaults
395436
command: run consumer monitors-clock-tasks --consumer-group monitors-clock-tasks
396-
post-process-forwarder-errors:
397-
<<: *sentry_defaults
398-
command: run consumer --no-strict-offset-reset post-process-forwarder-errors --consumer-group post-process-forwarder --synchronize-commit-log-topic=snuba-commit-log --synchronize-commit-group=snuba-consumers
437+
profiles:
438+
- feature-complete
399439
post-process-forwarder-transactions:
400440
<<: *sentry_defaults
401441
command: run consumer --no-strict-offset-reset post-process-forwarder-transactions --consumer-group post-process-forwarder --synchronize-commit-log-topic=snuba-transactions-commit-log --synchronize-commit-group transactions_group
442+
profiles:
443+
- feature-complete
402444
post-process-forwarder-issue-platform:
403445
<<: *sentry_defaults
404446
command: run consumer --no-strict-offset-reset post-process-forwarder-issue-platform --consumer-group post-process-forwarder --synchronize-commit-log-topic=snuba-generic-events-commit-log --synchronize-commit-group generic_events_group
405-
subscription-consumer-events:
406-
<<: *sentry_defaults
407-
command: run consumer events-subscription-results --consumer-group query-subscription-consumer
447+
profiles:
448+
- feature-complete
408449
subscription-consumer-transactions:
409450
<<: *sentry_defaults
410451
command: run consumer transactions-subscription-results --consumer-group query-subscription-consumer
452+
profiles:
453+
- feature-complete
411454
subscription-consumer-metrics:
412455
<<: *sentry_defaults
413456
command: run consumer metrics-subscription-results --consumer-group query-subscription-consumer
457+
profiles:
458+
- feature-complete
414459
subscription-consumer-generic-metrics:
415460
<<: *sentry_defaults
416461
command: run consumer generic-metrics-subscription-results --consumer-group query-subscription-consumer
462+
profiles:
463+
- feature-complete
417464
sentry-cleanup:
418465
<<: *sentry_defaults
419466
image: sentry-cleanup-self-hosted-local
@@ -469,6 +516,8 @@ services:
469516
depends_on:
470517
kafka:
471518
<<: *depends_on-healthy
519+
profiles:
520+
- feature-complete
472521
vroom-cleanup:
473522
<<: *restart_policy
474523
image: vroom-cleanup-self-hosted-local
@@ -484,6 +533,8 @@ services:
484533
command: '"0 0 * * * find /var/lib/sentry-profiles -type f -mtime +$SENTRY_EVENT_RETENTION_DAYS -delete"'
485534
volumes:
486535
- sentry-vroom:/var/lib/sentry-profiles
536+
profiles:
537+
- feature-complete
487538

488539
volumes:
489540
# These store application data that should persist across restarts.

sentry/sentry.conf.example.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,3 +363,6 @@ def get_internal_network():
363363
# https://docs.djangoproject.com/en/4.2/ref/settings/#std-setting-CSRF_TRUSTED_ORIGINS
364364

365365
# CSRF_TRUSTED_ORIGINS = ["https://example.com", "http://127.0.0.1:9000"]
366+
367+
# If you would like to use self-hosted Sentry with only errors enabled, please set this
368+
SENTRY_SELF_HOSTED_ERRORS_ONLY = env("COMPOSE_PROFILES") == "feature-complete"

0 commit comments

Comments
 (0)