Description
Note
READ THIS!
This is just a idea that is floating around. Will this get implemented? I don't know. Since I need to actually find real users for this.
I don't get notifications if you add reactions to this issue (thumbs up, like, eyes, etc), so if you are interested, please just leave a comment.
An idea from Discord https://discord.com/channels/621778831602221064/796028405833007104/1344862372283678752
Another thing just crossed my mind: for self-hosted users who have native-ish project that requires symbol servers (so C++, C#, Swift, Kotlin, anything), how hard it is to actually setup and integrate your own HTTP symbol server into the self-hosted Sentry instance?
I found this old forum post (which contains messages from @BYK), and I'm thinking of making this the default (if the existing experience on setting up HTTP symbol server is painful) https://forum.sentry.io/t/symbolicator-as-symbol-server/13335
Below are the messages from the forum in case it got shutdown and nobody can see it anymore:
I’ve read the symbolicator documentation, but that doesn’t really state if the looked up symbols will be pulled from sentry.
Specifically, if a symbol is uploaded to sentry, that specific symbol will then be available in the symbol server proxy?
-- aesir
Correct, this should possible, although using Symbolicator as a proxy in front of Sentry requires a bit of configuration:
- You have to create an API token as linked here. This can either be a user-based API token or an integration token.
- Add a Sentry source to Symbolicator’s config.yml. Please verify under which URL Sentry is reachable by Symbolicator – I’m assuming http://web/. Replace the organization and project slugs in the URL:
sources: [ { "type": "sentry", "id": "sentry:internal", "url": "http://web/api/0/<org>/<project>/files/dsyms/", "token": "<API TOKEN HERE>" } ]
- Enable the Proxy in config.yml:
symstore_proxy: true
- Symbolicator should now serve your uploaded files under /symbols/ compatible with MS Symbol Server.
Disclaimer: I did not try this configuration myself yet. Please let me know if it’s working for you, and If I have some more time I’ll try to verify myself.
-- jauer
Thank you for the reply!
I’ve succeeded in setting up Symbolicator as a symbol server, since i wanted to serve symbolicator from a different subdomain than sentry’s one i’ve done the following:
- Configured docker-compose.yml to bind port 81:3021 for the nginx service
- Exposed the sentry nginx on the port 81 and replicated in the new vserver the same configuration used for web and relay pointing the upstream to http://symbolicator/
- Added the various sources to symbolicator’s config.yml
That worked perfectly fine.
Should point although that this procedure took quite a long time to figure out, documentations about sentry & symbolicator do not really explain this properly.Thank you for the help and for bring those nice toolsets!
-- aesir
Thanks for letting us know, glad it worked. As a final remark, I would suggest you to create a dedicated container just for proxying with its own caches, so that the symbolserver requests do not interfere with symbolication.
The symstore proxy is just an experimental endpoint built into symbolicator, and we have thought about making it a fully fledged web service at some point with more documentation. Knowing that it works now, we will definitely consider adding more information.
-- jauer
Further questions
- Do we have anyone that is interested on this idea? If so, do they previously have any experience with HTTP symbol servers? How hard it is to actually install one?
- What platform/programming language are they using? .NET? C++? Rust? Swift?
- If we ever implement this, is this going to be a bottleneck on Docker's networking, since we will move lots of big files frequently.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
No status