plain_apm 0.5.3 → 0.5.5

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