diff --git a/lib/foreman_cement/configure_sentry.rb b/lib/foreman_cement/configure_sentry.rb index f0b9d8228e75ce61a6e95b33f9a87e06980fe284..b089a88e813aa4fb1af7118d97b0e8a01eac8e1b 100644 --- a/lib/foreman_cement/configure_sentry.rb +++ b/lib/foreman_cement/configure_sentry.rb @@ -11,11 +11,32 @@ Sentry.init do |config| config.breadcrumbs_logger = %i[active_support_logger http_logger] if SETTINGS.with_indifferent_access['sentry_trace'] - config.traces_sample_rate = if SETTINGS.with_indifferent_access['sentry_trace'].is_a?(Hash) - SETTINGS.with_indifferent_access.dig('sentry_trace', 'rate') || 0.2 - else - 0.2 - end + config.traces_sampler = lambda do |ctx| + next ctx[:parent_sampled] if ctx[:parent_sampled] + + # if SETTINGS.with_indifferent_access['sentry_trace'].is_a?(Hash) + # SETTINGS.with_indifferent_access.dig('sentry_trace', 'rate') || 0.2 + # else + # 0.2 + # end + + tctx = ctx[:transaction_context] + case tctx[:op] + when /http/ + case tctx[:name] + when /api/ + 0.2 + when /hosts/ + 0.5 + else + 0.1 + end + when /sidekiq/ + 0.01 + else + false + end + end end ## FIXME: Filters out required Sentry data if enabled