plain_apm 0.5.5 → 0.5.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73fd2b68ac333b85c9447cf1bfab720a5c292a325dc13eb4ba5775c2381aa9b3
4
- data.tar.gz: 3cdd0a76f806988f0687e121087837fdf91d4743858c322a8e18501908434a5f
3
+ metadata.gz: 7eb6f9ae78ba81ff4559c68a7657c4531d00b1f9c45081b22740812932587676
4
+ data.tar.gz: 6b782946d81a1eca54d7b07ea28c066aaab207ebc6aa4e3379395c85c67376ef
5
5
  SHA512:
6
- metadata.gz: b6de14e0c3e97da869110bf7e56daac8c7b25beeb54c862c33a99f98007d887964eaa4e435d284ecb095c972d2be028905235429ab20d02074872600545ecf8d
7
- data.tar.gz: dc49c1a0d76013fe00dd66b12db07558fc86b06904846d7b138ab79721d1ccc5925af4da72d009140d98d8f4ad2569cb3f41ee038dc0d5292d79efa5d4038fb0
6
+ metadata.gz: f385e2ebb77259a98dda1c20e98a21d30c6a36da2a94c14f00cc86f981ca2880a22f20f4602a42ed4aee363c420e1e56c1ac0ddcad45ddc1ad0dad7ec9d98981
7
+ data.tar.gz: d7022c6dbec8d25c5de73fc5c2817969a9c911dcfa6ecf5d22103263741417c5a4dcadc9d77f880511adc97cd0797371d0d700e611d0335c3acfc2b243693c8c
@@ -4,16 +4,23 @@ module PlainApm
4
4
  module Extensions
5
5
  module Context
6
6
  module ActiveJob
7
+ # Timestamp when job was deserialized (popped off of the queue).
8
+ attr_accessor :dequeued_at
9
+
7
10
  # TODO: would it be useful to de-serialize the whole context (e.g. user
8
11
  # IDs, subscriptions, etc?)
9
12
  def serialize
10
13
  trace_id = PlainApm::Extensions::Context.trace_id || SecureRandom.uuid
11
- super.update("trace_id" => trace_id)
14
+ # Rails wasn't preserving the nano-time, this has now been fixed
15
+ # upstream in #39698 and scheduled for Rails 7.1.
16
+ super.update("trace_id" => trace_id, "enqueued_at" => Time.now.utc.iso8601(9))
12
17
  end
13
18
 
14
19
  def deserialize(job)
15
20
  PlainApm::Extensions::Context.trace_id = job["trace_id"]
16
21
 
22
+ self.dequeued_at = Time.now.utc.iso8601(9)
23
+
17
24
  super(job)
18
25
  end
19
26
  end
@@ -29,6 +29,8 @@ module PlainApm
29
29
  "job_class" => job.class.name,
30
30
  "job_arguments" => job.arguments,
31
31
  "executions" => job.executions,
32
+ "enqueued_at" => enqueued_at(job),
33
+ "dequeued_at" => dequeued_at(job),
32
34
  "scheduled_at" => job.scheduled_at,
33
35
  "adapter" => payload[:adapter].class.name,
34
36
  "aborted" => payload[:aborted]
@@ -50,6 +52,16 @@ module PlainApm
50
52
  nil
51
53
  end
52
54
  end
55
+
56
+ private
57
+
58
+ def enqueued_at(job)
59
+ Time.parse(job.enqueued_at).to_f if job.enqueued_at
60
+ end
61
+
62
+ def dequeued_at(job)
63
+ Time.parse(job.dequeued_at).to_f if job.respond_to?(:dequeued_at) && job.dequeued_at
64
+ end
53
65
  end
54
66
  end
55
67
  end
@@ -36,6 +36,13 @@ module PlainApm
36
36
  "context" => context
37
37
  }
38
38
 
39
+ if context[:job] && context[:job].is_a?(ActiveJob::Base)
40
+ event.merge!({
41
+ "job_class" => context[:job].class.name,
42
+ "queue_name" => context[:job].queue_name
43
+ })
44
+ end
45
+
39
46
  if e.cause
40
47
  event.merge!({
41
48
  "cause_class" => e.cause.class.name,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PlainApm
4
- VERSION = "0.5.5"
4
+ VERSION = "0.5.7"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plain_apm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.5.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - PlainAPM Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-24 00:00:00.000000000 Z
11
+ date: 2022-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0'
145
145
  requirements: []
146
- rubygems_version: 3.3.7
146
+ rubygems_version: 3.3.26
147
147
  signing_key:
148
148
  specification_version: 4
149
149
  summary: PlainAPM agent