Skip to content

Conversation

@aldy505
Copy link
Collaborator

@aldy505 aldy505 commented Nov 22, 2025

DESCRIBE YOUR PR

Whenever self-hosted users has delay on their notifications or alert, I would recommend them to do this first. Previously there's no clear documentation on how to implement this.

IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs to go live.

  • Urgent deadline (GA date, etc.):
  • Other deadline:
  • None: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've added an urgent due date to it.
    Thanks in advance for your help!

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

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.

EXTRA RESOURCES

@vercel
Copy link

vercel bot commented Nov 22, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
develop-docs Ready Ready Preview Comment Nov 25, 2025 0:48am
sentry-docs Ready Ready Preview Comment Nov 25, 2025 0:48am

@aldy505 aldy505 requested review from Copilot and markstory November 22, 2025 04:12
Copilot finished reviewing on behalf of aldy505 November 22, 2025 04:14
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds detailed documentation on how to separate ingest taskbrokers in self-hosted Sentry installations, addressing a common recommendation for users experiencing delays in notifications or alerts.

Key Changes:

  • Added hyperlinks to referenced source code files for easier navigation
  • Added a new "Separate Ingest Workers" section with concrete implementation examples
  • Provided complete docker-compose and configuration examples for setting up dedicated ingest task processing

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

environment:
TASKBROKER_KAFKA_CLUSTER: "kafka:9092"
TASKBROKER_KAFKA_DEADLETTER_CLUSTER: "kafka:9092"
TASKBROKER_DB_PATH: "/opt/sqlite/taskbroker-activations.sqlite"
Copy link

Copilot AI Nov 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The TASKBROKER_DB_PATH uses the same filename "taskbroker-activations.sqlite" as might be used by the default taskbroker. Based on the earlier example in the file (lines 76 and 87), each taskbroker replica should have a unique SQLite database file to prevent contention and locks. Consider using "taskbroker-activations-ingest.sqlite" instead.

Suggested change
TASKBROKER_DB_PATH: "/opt/sqlite/taskbroker-activations.sqlite"
TASKBROKER_DB_PATH: "/opt/sqlite/taskbroker-activations-ingest.sqlite"

Copilot uses AI. Check for mistakes.
Comment on lines 159 to 169
taskbroker-ingest:
restart: "unless-stopped"
image: "$TASKBROKER_IMAGE"
environment:
TASKBROKER_KAFKA_CLUSTER: "kafka:9092"
TASKBROKER_KAFKA_DEADLETTER_CLUSTER: "kafka:9092"
TASKBROKER_DB_PATH: "/opt/sqlite/taskbroker-activations.sqlite"
volumes:
- sentry-taskbroker-ingest:/opt/sqlite
depends_on:
- kafka
Copy link

Copilot AI Nov 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The TASKBROKER_KAFKA_TOPIC environment variable is missing from the taskbroker-ingest configuration. According to step 2 in the instructions above (line 133), you need to use this environment variable to define which topic a taskbroker consumes from. Without this, the ingest taskbroker will consume from the default topic instead of "taskworker-ingest".

Copilot uses AI. Check for mistakes.
Comment on lines 147 to 152
### Separate Ingest Workers

Having separate ingest `taskbroker` and `taskworker` is useful for high-throughput
installation, therefore you can receive timely alerts and not having to wait for
ingest-related tasks to finish. As an implementation of the above steps,
you need to add a few new containers on your `docker-compose.override.yml` file:
Copy link

Copilot AI Nov 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation is missing step 1 from the "Isolate Workload Separation" section: provisioning the additional Kafka topic. Users need to know how to create the "taskworker-ingest" topic in Kafka before deploying the taskbroker that will consume from it. Consider adding a note about this prerequisite step.

Copilot uses AI. Check for mistakes.
### Separate Ingest Workers

Having separate ingest `taskbroker` and `taskworker` is useful for high-throughput
installation, therefore you can receive timely alerts and not having to wait for
Copy link

Copilot AI Nov 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase "therefore you can receive timely alerts and not having to wait" has a grammatical issue with mixed verb forms. It should be "without having to wait" or "and not have to wait" to maintain parallel structure.

Suggested change
installation, therefore you can receive timely alerts and not having to wait for
installation, therefore you can receive timely alerts and not have to wait for

Copilot uses AI. Check for mistakes.
@aldy505 aldy505 requested a review from Copilot November 22, 2025 05:16
Copilot finished reviewing on behalf of aldy505 November 22, 2025 05:17
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Member

@markstory markstory left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks correct to me.

aldy505 and others added 2 commits November 25, 2025 07:38
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@aldy505 aldy505 enabled auto-merge (squash) November 25, 2025 00:38
@aldy505 aldy505 merged commit 292469f into master Nov 25, 2025
14 checks passed
@aldy505 aldy505 deleted the aldy505/self-hosted-separate-taskbroker-ingest branch November 25, 2025 00:48
@codecov
Copy link

codecov bot commented Nov 25, 2025

Bundle Report

Changes will increase total bundle size by 1.74kB (0.01%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
sentry-docs-server-cjs 13.27MB 1.75kB (0.01%) ⬆️
sentry-docs-client-array-push 10.18MB -6 bytes (-0.0%) ⬇️

Affected Assets, Files, and Routes:

view changes for bundle: sentry-docs-server-cjs

Assets Changed:

Asset Name Size Change Total Size Change (%)
1729.js -3 bytes 1.74MB -0.0%
../instrumentation.js -3 bytes 1.07MB -0.0%
9523.js -3 bytes 1.04MB -0.0%
../app/[[...path]]/page.js.nft.json 585 bytes 982.49kB 0.06%
../app/platform-redirect/page.js.nft.json 585 bytes 982.41kB 0.06%
../app/sitemap.xml/route.js.nft.json 585 bytes 979.64kB 0.06%
view changes for bundle: sentry-docs-client-array-push

Assets Changed:

Asset Name Size Change Total Size Change (%)
static/chunks/pages/_app-*.js -3 bytes 882.71kB -0.0%
static/chunks/8321-*.js -3 bytes 425.87kB -0.0%
static/huZA3XWtHVmbDl7oIBcb9/_buildManifest.js (New) 684 bytes 684 bytes 100.0% 🚀
static/huZA3XWtHVmbDl7oIBcb9/_ssgManifest.js (New) 77 bytes 77 bytes 100.0% 🚀
static/_o3JeOlFBJ8xRj7Wdv9VL/_buildManifest.js (Deleted) -684 bytes 0 bytes -100.0% 🗑️
static/_o3JeOlFBJ8xRj7Wdv9VL/_ssgManifest.js (Deleted) -77 bytes 0 bytes -100.0% 🗑️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants