plain_apm 0.5.4 → 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: 3a8f0536583fe9d0f9e7f99214a9d79cffe852317716627d358e5b94fd786ab3
4
- data.tar.gz: d118718d929c8ef6de1d1a746c6061b744a37fd08ee49bff5c917556af611860
3
+ metadata.gz: ae9d484b8cae829dc9a8159030fb3075493b7a164fc007c2f7a4688e5f0e7657
4
+ data.tar.gz: 5c0e75c7ed7c549c13de43d44e8ff3733bda46d38994b77af93d48782a2855a3
5
5
  SHA512:
6
- metadata.gz: 853aac9cc8a7bc97041fa2462e200153878c2e7ab703dcc25543d8b059f18f494e7b795b865d93c49a418fa3b1203bfc7d84f86f55d6792b0abc35aad075a30f
7
- data.tar.gz: 8d446a123c4a66f6bc99a9586f414a0e135177266603795b09cc8ab131f6925a44d3606ad27707971eb349fc91f51d541b5e167a01d5e1236fccb3ebf6ccbd3a
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
@@ -34,17 +34,25 @@ module PlainApm
34
34
  #
35
35
  # Also, we might not be in the app root.
36
36
  def git_revision
37
- return nil unless File.exist?(".git")
37
+ return unless File.exist?(".git")
38
38
 
39
- ["git", `git rev-parse --short HEAD`.strip]
39
+ rev = `git rev-parse --short=8 HEAD`.strip
40
+
41
+ return if rev.empty?
42
+
43
+ ["git", rev]
40
44
  rescue Error::ENOENT # No git installed
41
45
  nil
42
46
  end
43
47
 
44
48
  def hg_revision
45
- return nil unless File.exist?(".hg")
49
+ return unless File.exist?(".hg")
50
+
51
+ rev = `hg log -l 1 -r . -T '{node}'`.strip
52
+
53
+ return if rev.empty?
46
54
 
47
- ["hg", `hg log -l 1 -r . -T '{node}'`]
55
+ ["hg", rev]
48
56
  rescue Error::ENOENT # No mercurial installed
49
57
  nil
50
58
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PlainApm
4
- VERSION = "0.5.4"
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.4
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-17 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