plain_apm 0.5.3 → 0.5.5

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: 01732eb28831a79bda84629911827630f98d10e7650de6c19c99c652e86c7841
4
- data.tar.gz: b6823be6751d685b6b3d8669d6eba23581586bcbfe1957a5d0b169bacea130b3
3
+ metadata.gz: 73fd2b68ac333b85c9447cf1bfab720a5c292a325dc13eb4ba5775c2381aa9b3
4
+ data.tar.gz: 3cdd0a76f806988f0687e121087837fdf91d4743858c322a8e18501908434a5f
5
5
  SHA512:
6
- metadata.gz: d1167958c799e9df78f1d906773cba2b63a17f07ed7a4412bbc27f4aaf65a594868cc76dde86e704311d312efb3ee4b68338ca8c4ee107e2a96a00a445ece115
7
- data.tar.gz: '0857d37547502f6db950edbde4d1b3c10855cfaaa02bab04c17e2cde9a904f2f9df4bb22e85fb0a23aef8b52925df98e1a9eef88a86d7b9ce761005b12fe874f'
6
+ metadata.gz: b6de14e0c3e97da869110bf7e56daac8c7b25beeb54c862c33a99f98007d887964eaa4e435d284ecb095c972d2be028905235429ab20d02074872600545ecf8d
7
+ data.tar.gz: dc49c1a0d76013fe00dd66b12db07558fc86b06904846d7b138ab79721d1ccc5925af4da72d009140d98d8f4ad2569cb3f41ee038dc0d5292d79efa5d4038fb0
@@ -4,6 +4,12 @@ module PlainApm
4
4
  module Extensions
5
5
  module Exceptions
6
6
  class Rack
7
+ # FIXME: This is duplicated for ErrorReporter
8
+ IGNORED_EXCEPTIONS = [
9
+ "Sidekiq::JobRetry::Skip", # Sidekiq uses exceptions for control flow.
10
+ "ActionController::RoutingError" # Rails unmapped route, raised before the request hits the app.
11
+ ].freeze
12
+
7
13
  def initialize(app)
8
14
  @app = app
9
15
  end
@@ -23,6 +29,8 @@ module PlainApm
23
29
  private
24
30
 
25
31
  def report_exception(e, env)
32
+ return if IGNORED_EXCEPTIONS.include?(e.class.name)
33
+
26
34
  event = {
27
35
  "source" => "rack_exceptions",
28
36
  "name" => "exception",
@@ -32,6 +40,14 @@ module PlainApm
32
40
  "params" => env["action_dispatch.request.parameters"]
33
41
  }
34
42
 
43
+ if e.cause
44
+ event.merge!({
45
+ "cause_class" => e.cause.class.name,
46
+ "cause_message" => e.cause.message,
47
+ "cause_backtrace" => e.cause.backtrace
48
+ })
49
+ end
50
+
35
51
  PlainApm::Agent.collect(event)
36
52
  end
37
53
  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.3"
4
+ VERSION = "0.5.5"
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.3
4
+ version: 0.5.5
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-16 00:00:00.000000000 Z
11
+ date: 2022-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest