-
-
Notifications
You must be signed in to change notification settings - Fork 505
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tag queue name and jid on sidekiq events #1258
Conversation
st0012
commented
Jan 31, 2021
•
edited
Loading
edited
* Add ThreadsInterface (#1178) * Add ThreadsInterface * Update changelog * Inspect exception cause by default & don't exclude ActiveJob::DeserializationError (#1180) * Turn on inspect_exception_causes_for_exclusion by default With this config turned on, we can avoid matching the surface exceptions in integrations, which could cause issues like #1071. Solves #642. * Remove ActiveJob::DeserializationError from ignored list Since the previous commit solves #642, this commit can remove ActiveJob::DeserializationError from the ignored exceptions list. Solves #1071. * Update async document * Update changelog * Make sentry-rails a Rails engine and provide default job class for async (#1181) * Make sentry-rails a Rails engine too * Add Sentry::SendEventJob Instead of letting users defining their SentryJob class, we should provide a default job class for them. * Update document and example for the new job class * Update changelog * Add configuration option for trusted proxies (#1126) * Add configuration option for trusted proxies * Add `trusted_proxies` configuration option to sentry-ruby * Add existing ActionDispatch `trusted_proxies` values * Address some PR feedback * Isolate trusted proxy test configuration * Add comments to explain why we reverse the forwarded_for ip list * Call `uniq` on the trusted proxy list * Rename `filter_local_addresses(ips) to filter_trusted_proxy_addresses(ips) * Remove duplicated hash entry * Update some tests after PR feedback * retrigger checks Co-authored-by: Stan Lo <stan001212@gmail.com> * Only define SendEventJob when ActiveJob is defined * Allow users to configure ActiveJob adapters to ignore (#1256) * Allow users to configure ActiveJob adapters to ignore * Update changelog * Add sidekiq adapter to sentry-rails' ignored adapters list (#1257) * Add sidekiq adapter to sentry-rails' ignored adapters list * Update changelog * Tag queue name and jid on sidekiq events (#1258) * Add queue name and jid to event tags * Update changelog * Tag job_id and provider_job_id on ActiveJob events (#1259) * Refactor/test ActiveJob's context data * Tag job_id and provider_job_id on ActiveJob events * Update changelog * Add ability to have many post initialization callbacks (#1261) * Add ability to have many post initialization callbacks * Revert version bumping, fix codestyle and rewrite rspec test * Remove dependenciy bumping from sentry-sidekiq * Add entries to CHANGELOG * Support config.before_breadcrumb (#1253) * Support config.before_breadcrumb Example: ``` config.before_breadcrumb = lambda do |breadcrumb, hint| breadcrumb.message = "foo" breadcrumb end ``` * Update changelog * Update sentry-ruby's changelog * Update sentry-rails' changelog * Update sentry-sidekiq's changelog * Rename ignored_active_job_adapters to skippable_job_adapters (#1264) * Update sentry-ruby's changelog Co-authored-by: Jon-Erik Schneiderhan <45184220+jeschneiderhan@users.noreply.github.com> Co-authored-by: Valentine Kiselev <mrexox@outlook.com>
* Add queue name and jid to event tags * Update changelog
Hey @st0012 Can you clarify one thing – why did you guys decide to add jid to tags and not to the context? From Sentry docs: Tags:
Contexts:
We have 128,741,632 jobs processed by Sidekiq, that means 128,741,632 unique tag values. And I'm sure there are much much bigger numbers out there for systems processing millions of jobs per day. Is there even a difference between |
@ivanovv using tags doesn't affect billing. and the purpose is to help search events associated with particular jobs easier. we've been tagging the job id is still present in the |
@st0012 thanks a lot for the clarification. It looks like Sentry own documentation is a bit confusing – the docs imply that tags are somewhat expensive from the perf point of view and for random (mostly uniq) values that we don't need search on it is better to use custom contexts. But then in your own integrations you put things like That's just my 2c, maybe I'm overthinking it too much |
you're welcome 🙂 |
This is the usual Sidekiq log
Knowing the At least that's my personal perspective from the last 2-3 years of using Sidekiq. |
Also, one thing I was wrong about – we only send Finally, for retries, the |
Just gotten started with Sentry. Overall very happy! But JID and request ID as tags doesn't make sense to me, at least not in some views (two examples below). Perhaps you should introduce a third category, or a property on tags, to distinguish high cardinality properties? In short, for any high cardinality tab, skip them in these two views (examples below) and probably a few more places. These two can be marked high-cardinality in your SDK, and you could also allow custom-added tags to be marked as |