elastic-apm 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of elastic-apm might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b045346ff96e6883189cd9f1b50b5b32669cf76f57d85f1191fcc3b4154ae6dc
4
- data.tar.gz: 61b29af6c3cc9e5d41691a2de713b865c77b9d6fc918dbd4b81ac1fe01d4496b
3
+ metadata.gz: 2048d68aba066259b3448d694b4114bc2eb9d28ed089ed1b1ed58315204454ca
4
+ data.tar.gz: 2450babb2527f469cfe7d64ddfae2a9483e6af33a2275ef658b49a59c8107896
5
5
  SHA512:
6
- metadata.gz: 0b5d2126872bd5f371cfee8afcb262738690d629c4fb59466274af02b9c6c2bc45ce01bdf35cc44e5782960bff470abd8e62e18902f607afc0bb5ce382f15c66
7
- data.tar.gz: 45474a91122920e3e5b03da6db1247f402f17d01c20c633dd866788dcb6c4fadac9738be02ab4b3df354023fd0ba9022172ecef20c0ac9b9e8194e5013564c11
6
+ metadata.gz: c4ab0f4a603297e34e2b7d266557f34476c12ab840fa4d4a214315df2ac960977890a7d9125db3c42486abf834ced00a2b1ffce9b76e341034d2cb10e7a83ec1
7
+ data.tar.gz: 69263285fb5c5fc9385666768235ae2a7c06a5824d089e22d3e212fe2d6a331429d5b0f206765cf3c7512aa91327dd15e0512e677e729820f920651f185813bf
@@ -6,7 +6,11 @@ require 'elastic_apm/stacktrace/line_cache'
6
6
  module ElasticAPM
7
7
  # @api private
8
8
  class Stacktrace
9
- GEMS_REGEX = %r{/gems/}
9
+ JAVA_FORMAT = /^(.+)\.([^\.]+)\(([^\:]+)\:(\d+)\)$/
10
+ RUBY_FORMAT = /^(.+?):(\d+)(?::in `(.+?)')?$/
11
+
12
+ RUBY_VERS_REGEX = %r{ruby[-/](\d+\.)+\d}
13
+ JRUBY_ORG_REGEX = %r{org/jruby}
10
14
 
11
15
  def initialize(backtrace)
12
16
  @backtrace = backtrace
@@ -38,9 +42,6 @@ module ElasticAPM
38
42
 
39
43
  private
40
44
 
41
- JAVA_FORMAT = /^(.+)\.([^\.]+)\(([^\:]+)\:(\d+)\)$/
42
- RUBY_FORMAT = /^(.+?):(\d+)(?::in `(.+?)')?$/
43
-
44
45
  def parse_line(line)
45
46
  ruby_match = line.match(RUBY_FORMAT)
46
47
 
@@ -56,24 +57,38 @@ module ElasticAPM
56
57
  [file, number, method, module_name]
57
58
  end
58
59
 
59
- # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
60
+ def library_frame?(config, abs_path)
61
+ return false unless abs_path
62
+
63
+ if abs_path.start_with?(config.root_path)
64
+ return true if abs_path.match(config.root_path + '/vendor')
65
+ return false
66
+ end
67
+
68
+ return true if abs_path.match(RUBY_VERS_REGEX)
69
+ return true if abs_path.match(JRUBY_ORG_REGEX)
70
+
71
+ false
72
+ end
73
+
74
+ # rubocop:disable Metrics/MethodLength
60
75
  def build_frame(config, line, type)
61
76
  abs_path, lineno, function, _module_name = parse_line(line)
62
- library_frame = !(abs_path && abs_path.start_with?(config.root_path))
63
77
 
64
78
  frame = Frame.new
65
79
  frame.abs_path = abs_path
66
80
  frame.filename = strip_load_path(abs_path)
67
81
  frame.function = function
68
82
  frame.lineno = lineno.to_i
69
- frame.library_frame = library_frame
83
+ frame.library_frame = library_frame?(config, abs_path)
70
84
 
71
- line_count = context_lines_for(config, type, library_frame: library_frame)
85
+ line_count =
86
+ context_lines_for(config, type, library_frame: frame.library_frame)
72
87
  frame.build_context line_count
73
88
 
74
89
  frame
75
90
  end
76
- # rubocop:enable Metrics/AbcSize, Metrics/MethodLength
91
+ # rubocop:enable Metrics/MethodLength
77
92
 
78
93
  def strip_load_path(path)
79
94
  return nil unless path
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ElasticAPM
4
- VERSION = '0.4.2'.freeze
4
+ VERSION = '0.4.3'.freeze
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elastic-apm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikkel Malmberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-14 00:00:00.000000000 Z
11
+ date: 2018-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport