Comment by krashidov
Comment by krashidov 3 days ago
It's so easy in node. I miss node.
Setting this up in the mess that is Python/Gunicorn/asgi/wsgi/celery/Django has not been as easy
Comment by krashidov 3 days ago
It's so easy in node. I miss node.
Setting this up in the mess that is Python/Gunicorn/asgi/wsgi/celery/Django has not been as easy
> I do not know what unholy monkey patching they do
A year ago I had to patch its package for an internal use case. Their codebase is fairly well-written I thought (at least the JS SDK).
e.g. this is where they add the `fetch` breadcrumb https://github.com/getsentry/sentry-javascript/blob/develop/...
e.g. where the actual monkey patching happens https://github.com/getsentry/sentry-javascript/blob/e1783a65...
My experience in principally in python and the number of integrations that are auto used on common dependent libs and frameworks is long https://docs.sentry.io/platforms/python/integrations/
The python problems with opentelemetry are mostly due to python being a bit of a mess. Yes, the async model is weird and that in turn makes it harder to instrument compared to something like .NET. But then the combination of libraries and environments change out from under you, you update your autoinstrumentation agent, and now the app crashes. And you find some GitHub issue saying that flask brings in this new dependency that somehow breaks something else and so now you can't instrument flask apps.
^^^ most of the above is just what I've dealt with as a maintainer in OTel, and it's maddening. FWIW that's all been finally dealt with, but python just feels like something ready to keel over at a moment's notice to me. Far more fragile a language and ecosystem than anything else.
You can do almost 1:1 the same thing (compared to the post) in Python and use it as a wsgi/whatever middleware. It's really not any different. The callback changes to a resource manager, but that's about it.