fluent-plugin-sentry-ruby 0.3.1 → 0.4.0

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