plain_apm 0.5.5 → 0.5.6

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: 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