fluent-plugin-sentry-ruby 0.3.1 → 0.4.0

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: a476705dd3b8036afc4961481663fffe13a9711229acfc3a559e207dc7f94608
4
- data.tar.gz: 691650a62ff27d233442c424dddafbb5148c336b725152038d0a8805ccd3bf0e
3
+ metadata.gz: 870cfb654369d06c14ec51a6e5dc15e20e12769f0c41e7e595fa7eefec092f9a
4
+ data.tar.gz: 538f91b25e9ea1c0f22eca0b5a5d5f325380d759096ed91ecc4623ba6f056d20
5
5
  SHA512:
6
- metadata.gz: 84767a4153614507883833972e573e113112b536a32d4dc2251cfc1826c7670b029ae9c69b3b53d2bd4b9941209a0820b4b76dac99d8e21e3fa20f437db6482d
7
- data.tar.gz: 4ec9fffa7b595bd4adea296c80650e9ff21211aa6e1432da29a4e3ae6548134256b64706b2eab7501759effc63b7a16c841ea93c294fb2071c443f162bec5e03
6
+ metadata.gz: cda27f7aa76281524775f8702d7e1faa13607fc2c9eafc0ca029f0ae23aba38904b5557fa1ac74664c5c5d480e962aaf755e6f9512256a5418816a6e45ee79aa
7
+ data.tar.gz: ac8fe6be0cc5e6ea7c4d2508d6955022b0876c0dd713549207e81472a0fcc8cf3d16fa68439cb50a175f7bf010e5bf550d122fe1d43e35fca0003633fa488f39
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "fluent-plugin-sentry-ruby"
6
- spec.version = "0.3.1"
6
+ spec.version = "0.4.0"
7
7
  spec.authors = ["buffalo"]
8
8
  spec.email = ["buffalobigboy@gmail.com"]
9
9
 
@@ -14,7 +14,7 @@ module Fluent
14
14
  # for event
15
15
  config_param :user_keys, :array, :default => [], value_type: :string
16
16
  config_param :tag_keys, :array, :default => [], value_type: :string
17
- config_param :keys, :array, :default => [], value_type: :string
17
+ config_param :data_keys, :array, :default => [], value_type: :string
18
18
  # for exception
19
19
  config_param :e_message, :string, :default => 'message'
20
20
  config_param :e_describe, :string, :default => 'describe'
@@ -49,27 +49,55 @@ module Fluent
49
49
  event.environment = record['env'] || @environment
50
50
 
51
51
  if @type === :event
52
- event.message = record['message'] || @title
52
+ event.message = record['message']
53
53
  event.user = record.select{ |key| @user_keys.include?(key) }
54
- event.extra = @keys.length() > 0 ? record.select{ |key| @keys.include?(key) } : record
54
+ event.extra = @data_keys.length() > 0 ? record.select{ |key| @data_keys.include?(key) } : record
55
55
  event.contexts = {'data' => { origin_data: record }}
56
- event.tags = event.tags.merge({ :log_tag => tag })
57
- .merge({ :timestamp => Time.at(time).strftime('%Y-%m-%d %H:%M:%S') })
56
+ event.tags = event.tags.merge({ :tag => tag })
57
+ .merge({ :timestamp => Time.at(time).strftime('%Y-%m-%d %H:%M:%S %Z') })
58
58
  .merge(record.select{ |key| (@tag_keys + @user_keys).include?(key) })
59
+ event = event.to_hash
60
+
61
+ event['logger'] = @title
59
62
  elsif @type === :exception
63
+ event.tags = { :tag => tag }
64
+ .merge({ :timestamp => Time.at(time).strftime('%d-%b-%Y %H:%M:%S %Z') })
65
+ .merge(record.select{ |key| (@tag_keys + @user_keys).include?(key) })
66
+
60
67
  event = event.to_hash
68
+
69
+ event['logger'] = @title
70
+
71
+ frame = Array.new
72
+ if record.include?(@e_stack)
73
+ record[@e_stack].split("\n") do |value|
74
+ match = value.match(/\#(?<no>\d+) (?<filename>.*?)\((?<lineno>\d+)\): (?<context_line>[\s\S]+)/)
75
+ if match != nil
76
+ frame.unshift(Sentry::CustomStacktraceFrame.new(
77
+ filename: match[:filename],
78
+ context_line: match[:context_line],
79
+ pre_context: "//...\n",
80
+ post_context: "//...\n",
81
+ lineno: Integer(match[:lineno]),
82
+ ))
83
+ end
84
+ end
85
+ elsif
86
+ frame.push(Sentry::CustomStacktraceFrame.new(
87
+ filename: record.include?(@e_filename) ? record[@e_filename] : '',
88
+ context_line: record.include?(@e_describe) ? record[@e_describe] : '',
89
+ pre_context: "//...\n",
90
+ post_context: "//...\n",
91
+ lineno: record.include?(@e_line) ? Integer(record[@e_line]) : 1
92
+ ))
93
+ end
94
+
61
95
  event['exception'] = Sentry::CustomExceptionInterface.new(
62
- type: record['message'] || @title,
63
- message: (record[@e_describe] + (record[@e_line] ? (' on line:' + record[@e_line]) : '')) || '',
64
- stacktrace: Sentry::StacktraceInterface.new(frames: [Sentry::CustomStacktraceFrame.new(
65
- filename: record[@e_filename] || '',
66
- context_line: (record[@e_describe] + (record[@e_line] ? (' on line:' + record[@e_line]) : '')) || '',
67
- post_context: record[@e_stack] || (record[@e_describe] || ''),
68
- )])
96
+ type: record['message'] || '',
97
+ message: record.include?(@e_describe) ? record[@e_describe] : '',
98
+ stacktrace: Sentry::StacktraceInterface.new(frames: frame)
69
99
  ).to_hash
70
- event['tags'] = { :log_tag => tag }
71
- .merge({ :timestamp => Time.at(time).strftime('%d-%b-%Y %H:%M:%S %Z') })
72
- .merge(record.select{ |key| (@tag_keys + @user_keys).include?(key) })
100
+ event['message'] = record.include?(@e_describe) ? (record[@e_describe] + ' in ' + record[@e_filename] + ' on line ' + record[@e_line]) : ''
73
101
  end
74
102
 
75
103
  @client.send_event(event)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-sentry-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - buffalo