plain_apm 0.5.5 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73fd2b68ac333b85c9447cf1bfab720a5c292a325dc13eb4ba5775c2381aa9b3
4
- data.tar.gz: 3cdd0a76f806988f0687e121087837fdf91d4743858c322a8e18501908434a5f
3
+ metadata.gz: ae9d484b8cae829dc9a8159030fb3075493b7a164fc007c2f7a4688e5f0e7657
4
+ data.tar.gz: 5c0e75c7ed7c549c13de43d44e8ff3733bda46d38994b77af93d48782a2855a3
5
5
  SHA512:
6
- metadata.gz: b6de14e0c3e97da869110bf7e56daac8c7b25beeb54c862c33a99f98007d887964eaa4e435d284ecb095c972d2be028905235429ab20d02074872600545ecf8d
7
- data.tar.gz: dc49c1a0d76013fe00dd66b12db07558fc86b06904846d7b138ab79721d1ccc5925af4da72d009140d98d8f4ad2569cb3f41ee038dc0d5292d79efa5d4038fb0
6
+ metadata.gz: 74432ea0610f7d525e77aa2173de4adba0f723d713b5870d4a5dfdda1bf3fdb8e812b4b7b08b55d7c3729415d98890d2dd491bb0e94922cb8e8fa6d8a98916a1
7
+ data.tar.gz: b5d84121648c14f64dbb76c4c7a9e040283465f0d9a9263dcf48292e6c2e3a604714e00a480f323b40fce13e80047890b4c6f7c7b269e0edaac7b3c0645f0fd9
@@ -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
@@ -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.6"
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.6
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-12 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