You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(self-hosted): provide a detailed example on how to separate ingest taskbroker (#15601)
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.
To achieve this work separation we need to make a few changes:
129
129
130
130
1. Provision any additional topics. Topic names need to come from one of the
131
-
predefined topics in `src/sentry/conf/types/kafka_definition.py`
131
+
predefined topics in [`src/sentry/conf/types/kafka_definition.py`](https://github.com/getsentry/sentry/blob/master/src/sentry/conf/types/kafka_definition.py).
132
+
By default, any topics will automatically be created during `./install.sh`
133
+
process.
132
134
2. Deploy the additional broker replicas. You can use the
133
135
`TASKBROKER_KAFKA_TOPIC`environment variable to define the topic a
134
136
taskbroker consumes from.
135
137
3. Deploy additional workers that use the new brokers in their `rpc-host-list`
136
138
CLI flag.
137
139
4. Find the list of namespaces you want to shift to the new topic. The list of
138
-
task namespaces can be found in the `sentry.taskworker.namespaces` module.
140
+
task namespaces can be found in the [`sentry.taskworker.namespaces`](https://github.com/getsentry/sentry/blob/master/src/sentry/taskworker/namespaces.py) module.
139
141
5. Update task routing option, defining the namespace -> topic mappings. e.g.
140
142
```yaml
141
143
# in sentry/config.yml
142
144
taskworker.route.overrides:
143
145
"ingest.errors": "taskworker-ingest"
144
146
"ingest.transactions": "taskworker-ingest"
145
147
```
148
+
149
+
### Separate Ingest Workers
150
+
151
+
Having separate ingest `taskbroker` and `taskworker` is useful for high-throughput
152
+
installations, therefore you can receive timely alerts and not have to wait for
153
+
ingest-related tasks to finish. As an implementation of the above steps,
154
+
you need to add a few new containers on your `docker-compose.override.yml` file:
155
+
156
+
```yaml
157
+
# Copy `x-sentry_defaults` and `file_healthcheck_defaults` section from
158
+
# `docker-compose.yml` to `docker-compose.override.yml` first. Put it on the
0 commit comments