docs(self-hosted): rework for troubleshooting redis page#17702
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
| Most Redis keys are expected to have a prefix (e.g., `span-buf:`). Therefore, to delete the affected keys, you can run the following command: | ||
|
|
||
| ```bash | ||
| docker compose exec redis sh -c "redis-cli --scan --pattern 'span-buf:*' | xargs redis-cli del" |
There was a problem hiding this comment.
Bug: The xargs redis-cli del command will fail with a confusing error if no keys match the pattern because xargs is used without the -r flag.
Severity: LOW
Suggested Fix
Add the -r (or --no-run-if-empty) flag to the xargs command. This will prevent xargs from executing redis-cli del if the standard input from the redis-cli --scan command is empty, thus avoiding the error.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location: develop-docs/self-hosted/troubleshooting/redis.mdx#L46
Potential issue: The troubleshooting command `redis-cli --scan --pattern 'span-buf:*' |
xargs redis-cli del` will fail if no keys match the given pattern. The `xargs` command,
when it receives no input, will still execute `redis-cli del` but with no arguments.
This causes Redis to return a `(error) ERR wrong number of arguments for 'del' command`,
which could mislead a user into thinking the command is incorrect or their Redis
instance has a problem, when in fact no keys needed to be deleted.
Did we get this right? 👍 / 👎 to inform future reviews.
|
|
||
| 1. A communication channel between `sentry` and `relay` for storing project configurations and AI model pricing data, so `relay` can validate an incoming DSN public key and its corresponding project ID. The `taskworker` container is responsible for seeding project configurations to Redis. | ||
| 2. Locks for various Kafka consumer workers (snuba containers and sentry consumers) to prevent multiple workers from processing the same event at the same time. | ||
| 3. An authentication session store for the web UI and various transactional data stores. |
There was a problem hiding this comment.
We don't store authentication sessions in Redis though. Our sessions are cookie only. We do store data in the session during SSO provider setup flows though. If you're looking to enumerate the other ways we use Redis, you might want to include:
- Rate limiter for requests to Sentry, and Snuba.
- As a buffer for events during error & transaction processing.
- As a buffer for span ingestion.
Co-authored-by: Mark Story <mark@mark-story.com>
DESCRIBE YOUR PR
Current "Troubleshooting Redis" documentation for documentation is outdated and no longer relevant. Due to changes with Taskbroker and recent issues with how Redis is being used in the whole self-hosted Sentry stack, it makes sense to make the documentation more proper.
IS YOUR CHANGE URGENT?
Help us prioritize incoming PRs by letting us know when the change needs to go live.
SLA
Thanks in advance for your help!
PRE-MERGE CHECKLIST
Make sure you've checked the following before merging your changes:
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