periskop-client 0.1.0 → 0.1.4

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: 0d35f32e41d59a38412f7c5a424fe1586c836313c48af76ffa2aadbddd36b15b
4
- data.tar.gz: 6a03127bfa7a1f521d2719557330c8dc9c4d2d4f11f24c8da612ce2249e16302
3
+ metadata.gz: b61d0c35c5c67e1c67aab8772fed198c4d21c6647c67e47e939fa82634a191fe
4
+ data.tar.gz: bf1dc3f8abb7afeedc2fb03e8a182078b8433a64c1e7d6c7631b23b57f4b094d
5
5
  SHA512:
6
- metadata.gz: 1e7fdfa8becf464beba2e157dc5baf55d7a71f23f628b64e43d7f39ec830a67e497fe02bddaff931b37b56279abcbf20fd6144827286a1d1b734ce7b2f6172fb
7
- data.tar.gz: 4c50cdae5ac0f5c619567074ef53470157b730c6005799c365a47decb99ec740beee943a10bad70fcbf322db9e7d293082b1455723802ccd374028d89e8b6ce7
6
+ metadata.gz: ac96694adbc8ed1990727f82696ac155b876073630dc46f3cff16894481cb64618107d8085fe952dbe9a04ab878d77585e77360997493aa628433126a76207f2
7
+ data.tar.gz: a15722d5ea09b54bf757bb651c959eeddbf91eaf6987568560723c75d904c2c722a5c49e88894f1a7107ea54304df2a61805111623ddad6ef26569a009021e0c
@@ -35,12 +35,7 @@ module Periskop
35
35
  private
36
36
 
37
37
  def add_exception(exception, context)
38
- exception_instance = ExceptionInstance.new(
39
- exception.class.name,
40
- exception.message,
41
- exception.backtrace,
42
- get_cause(exception)
43
- )
38
+ exception_instance = ExceptionInstance.from_exception(exception)
44
39
  exception_with_context = ExceptionWithContext.new(
45
40
  exception_instance,
46
41
  context,
@@ -58,14 +53,6 @@ module Periskop
58
53
  aggregated_exception = @aggregated_exceptions_dict[aggregation_key]
59
54
  aggregated_exception.add_exception(exception_with_context)
60
55
  end
61
-
62
- def get_cause(exception)
63
- if RUBY_VERSION > '2.0'
64
- return exception.cause
65
- end
66
-
67
- nil
68
- end
69
56
  end
70
57
  end
71
58
  end
@@ -14,11 +14,13 @@ module Periskop
14
14
  end
15
15
 
16
16
  def push_to_gateway(addr)
17
- uri = URI.parse("#{addr}/errors")
18
- http = Net::HTTP.new(uri.host, uri.port)
19
- request = Net::HTTP::Post.new(uri.request_uri, 'Content-Type' => 'application/json')
20
- request.body = export
21
- http.request(request)
17
+ if !addr.nil? && !addr.empty?
18
+ uri = URI.parse("#{addr}/errors")
19
+ http = Net::HTTP.new(uri.host, uri.port)
20
+ request = Net::HTTP::Post.new(uri.request_uri, 'Content-Type' => 'application/json')
21
+ request.body = export
22
+ http.request(request)
23
+ end
22
24
  end
23
25
  end
24
26
  end
@@ -18,6 +18,33 @@ module Periskop
18
18
  @cause = cause
19
19
  end
20
20
 
21
+ def self.from_exception(exception)
22
+ ExceptionInstance.new(
23
+ exception.class.name,
24
+ exception.message,
25
+ get_backtrace(exception),
26
+ get_cause(exception)
27
+ )
28
+ end
29
+
30
+ def self.get_cause(exception)
31
+ if RUBY_VERSION > '2.0'
32
+ if exception.cause.is_a?(Exception)
33
+ return ExceptionInstance.from_exception(exception.cause)
34
+ end
35
+ end
36
+
37
+ nil
38
+ end
39
+
40
+ def self.get_backtrace(exception)
41
+ if !exception.backtrace.nil?
42
+ exception.backtrace
43
+ else
44
+ caller
45
+ end
46
+ end
47
+
21
48
  def as_json(_options = {})
22
49
  {
23
50
  class: @class,
@@ -9,12 +9,12 @@ module Periskop
9
9
 
10
10
  def initialize(app, options = {})
11
11
  @app = app
12
- @pushgateway_address = options.fetch(:pushgateway_address)
12
+ @pushgateway_address = options.fetch(:pushgateway_address, nil)
13
13
  options[:collector] ||= Periskop::Client::ExceptionCollector.new
14
14
  @collector = options.fetch(:collector)
15
15
 
16
16
  @exporter =
17
- if @pushgateway_address
17
+ unless @pushgateway_address.nil? || @pushgateway_address.empty?
18
18
  @exporter = Periskop::Client::Exporter.new(@collector)
19
19
  end
20
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: periskop-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julio Zynger
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-01-14 00:00:00.000000000 Z
12
+ date: 2022-02-09 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Periskop client for Ruby
15
15
  email: