Module: Appsignal::Hooks::ActiveJobHook::ActiveJobHelpers Private
- Defined in:
- lib/appsignal/hooks/active_job.rb
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Constant Summary collapse
- ACTION_MAILER_CLASSES =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
[ "ActionMailer::DeliveryJob", "ActionMailer::Parameterized::DeliveryJob", "ActionMailer::MailDeliveryJob" ].freeze
Class Method Summary collapse
- .action_name(job) ⇒ Object private
- .increment_counter(key, value, tags = {}) ⇒ Object private
-
.metrics_for(job) ⇒ Array
private
Returns an array of metrics with tags used to report the job metrics.
- .transaction_tags_for(job) ⇒ Object private
Class Method Details
.action_name(job) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
117 118 119 120 121 122 123 124 |
# File 'lib/appsignal/hooks/active_job.rb', line 117 def self.action_name(job) case job["job_class"] when *ACTION_MAILER_CLASSES job["arguments"][0..1].join("#") else "#{job["job_class"]}#perform" end end |
.increment_counter(key, value, tags = {}) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
172 173 174 |
# File 'lib/appsignal/hooks/active_job.rb', line 172 def self.increment_counter(key, value, = {}) Appsignal.increment_counter "active_job_#{key}", value, end |
.metrics_for(job) ⇒ Array
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns an array of metrics with tags used to report the job metrics
If job ONLY has a queue, it will return ‘queue_job_count` with tags. If job has a queue AND priority, it will ALSO return `queue_priority_job_count` with tags.
133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/appsignal/hooks/active_job.rb', line 133 def self.metrics_for(job) = { :queue => job["queue_name"] } metrics = [["queue_job_count", ]] priority = job["priority"] if priority metrics << [ "queue_priority_job_count", .merge(:priority => priority) ] end metrics end |
.transaction_tags_for(job) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/appsignal/hooks/active_job.rb', line 148 def self.(job) = {} queue = job["queue_name"] [:queue] = queue if queue priority = job["priority"] [:priority] = priority if priority executions = job["executions"] [:executions] = executions.to_i + 1 if executions job_id = job["job_id"] [:active_job_id] = job_id provider_job_id = job["provider_job_id"] [:provider_job_id] = provider_job_id if provider_job_id request_id = provider_job_id || job_id [:request_id] = request_id if request_id end |