ach-fluent-plugin-sentry 0.0.8 → 0.0.12

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: 835455e2d0665befda05b4a9d7860794640327ea8ec9b74b82fb5127e0b879cc
4
- data.tar.gz: f2f1a97f1d668de02c43a0c5f7a3006d590541988f1efe4e11c0659e8674791d
3
+ metadata.gz: 0aff9ca9fa6de5b7d882fa769df71133580d7f4df6d01105e61c8f834ce47f78
4
+ data.tar.gz: ffa221398919720d1c36f49ff311e5c87d423773fab4755c711c36c21dbf7444
5
5
  SHA512:
6
- metadata.gz: 4d533a6b4f8c5f0d399702261e8fdd634e94f7ee56bde803a25c6a831c9d457c6ccb07ecda313df32d1dd8aff5d209c3601047ece91bcf866cef9ef52ababc75
7
- data.tar.gz: f9392791e432b8868d3b37b86b7b5f60cdaf99a0f5c177095ac9aa1f5de516286a2e16942a878e973c1ac8c0dd5556a4f6bee631d618b384d495244d0da5b4b3
6
+ metadata.gz: ae217a992cc6122c50f4a061981fcbbb0aefd005d1a56057447ae1b4434e839834f68df99eaa5fab94e4b3d1d417afadeb3fed50e0a0a7a5976b45abcdd852d2
7
+ data.tar.gz: e0a23f26bf7206acd41a8e04136c50e024e70726bd68ea8fc9dab09e11f33510e1ad7826843eb4386adf37bdb636536c47fc19a3b7ea3d27b3f7be7566076395
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "ach-fluent-plugin-sentry"
7
- spec.version = "0.0.8"
7
+ spec.version = "0.0.12"
8
8
  spec.authors = ["Kentaro Yoshida"]
9
9
  spec.email = ["y.ken.studio@gmail.com"]
10
10
  spec.summary = %q{Fluentd output plugin that sends aggregated errors/exception events to Sentry. Sentry is a event logging and aggregation platform.}
@@ -15,6 +15,7 @@ class Fluent::SentryOutput < Fluent::BufferedOutput
15
15
 
16
16
  def initialize
17
17
  require 'time'
18
+ require 'json'
18
19
  require 'sentry-ruby'
19
20
 
20
21
  super
@@ -35,6 +36,8 @@ class Fluent::SentryOutput < Fluent::BufferedOutput
35
36
  @hostname = `#{hostname_command}`.chomp
36
37
 
37
38
  @configuration = Sentry::Configuration.new
39
+ @configuration.send_modules = false
40
+ @configuration.debug = true
38
41
  @configuration.dsn = @endpoint_url
39
42
  @configuration.server_name = @hostname
40
43
  @client = Sentry::Client.new(@configuration)
@@ -63,18 +66,19 @@ class Fluent::SentryOutput < Fluent::BufferedOutput
63
66
  end
64
67
 
65
68
  def notify_sentry(tag, time, record)
69
+ #$log.warning("Message: ",:error => record['message'])
66
70
  event = Sentry::Event.new(
67
71
  :configuration => @configuration,
68
- :message => record['message']
72
+ :message => record.to_json
69
73
  )
70
74
  event.timestamp = record['timestamp'] || Time.at(time).utc.strftime('%Y-%m-%dT%H:%M:%S')
71
75
  event.level = record['level'] || @default_level
72
- event.logger = record['logger'] || @default_logger
73
- event.culprit = record['culprit'] || nil
74
- event.server_name = record['server_name'] || @hostname
75
- event.release = record['release'] if record['release']
76
+ #event.logger = record['logger'] || @default_logger
77
+ #event.culprit = record['culprit'] || nil
78
+ #event.server_name = record['server_name'] || @hostname
79
+ #event.release = record['release'] if record['release']
76
80
  event.tags = event.tags.merge({ :tag => tag }.merge(record['tags'] || {}))
77
- event.extra = record.reject{ |key| EVENT_KEYS.include?(key) }
81
+ #event.extra = record.reject{ |key| EVENT_KEYS.include?(key) }
78
82
  @client.send_event(event)
79
83
  end
80
84
  end
@@ -25,6 +25,20 @@ class SentryOutputTest < Test::Unit::TestCase
25
25
  end
26
26
  end
27
27
 
28
+ def stub_1(url="https://app.getsentry.com/api/12345/envelope/")
29
+ stub_request(:post, "https://app.getsentry.com/api/12345/envelope/").
30
+ with(
31
+ body: "{\"event_id\":\"2aa1f0210fc04c89a8febda09d3e4a5f\",\"dsn\":\"https://user:password@app.getsentry.com/12345\",\"sdk\":{\"name\":\"sentry.ruby\",\"version\":\"4.6.5\"},\"sent_at\":\"2021-09-01T12:00:23Z\"}\n{\"type\":\"event\",\"content_type\":\"application/json\"}\n{\"event_id\":\"2aa1f0210fc04c89a8febda09d3e4a5f\",\"level\":\"warning\",\"timestamp\":\"2021-09-01T12:00:23\",\"environment\":\"default\",\"server_name\":\"reisei-workspace\",\"modules\":{\"rake\":\"13.0.6\",\"bundler\":\"2.2.26\",\"cool.io\":\"1.7.1\",\"http_parser.rb\":\"0.7.0\",\"msgpack\":\"1.4.2\",\"sigdump\":\"0.2.4\",\"serverengine\":\"2.2.4\",\"strptime\":\"0.2.5\",\"concurrent-ruby\":\"1.1.9\",\"tzinfo\":\"2.0.4\",\"tzinfo-data\":\"1.2021.1\",\"webrick\":\"1.7.0\",\"yajl-ruby\":\"1.4.1\",\"fluentd\":\"1.14.0\",\"faraday-em_http\":\"1.0.0\",\"faraday-em_synchrony\":\"1.0.0\",\"faraday-excon\":\"1.1.0\",\"faraday-httpclient\":\"1.0.1\",\"faraday-net_http\":\"1.0.1\",\"faraday-net_http_persistent\":\"1.2.0\",\"faraday-patron\":\"1.0.0\",\"faraday-rack\":\"1.0.0\",\"multipart-post\":\"2.1.1\",\"ruby2_keywords\":\"0.0.5\",\"faraday\":\"1.7.0\",\"sentry-ruby-core\":\"4.6.5\",\"sentry-ruby\":\"4.6.5\",\"ach-fluent-plugin-sentry\":\"0.0.9\",\"public_suffix\":\"4.0.6\",\"addressable\":\"2.8.0\",\"thor\":\"1.1.0\",\"appraisal\":\"2.4.1\",\"rexml\":\"3.2.5\",\"crack\":\"0.4.5\",\"hashdiff\":\"1.0.1\",\"power_assert\":\"2.0.1\",\"test-unit\":\"3.4.4\",\"webmock\":\"3.14.0\"},\"message\":\"error has occoured.\",\"user\":{},\"tags\":{\"tag\":\"app1_error\"},\"contexts\":{},\"extra\":{},\"fingerprint\":[],\"platform\":\"ruby\",\"sdk\":{\"name\":\"sentry.ruby\",\"version\":\"4.6.5\"}}\n",
32
+ headers: {
33
+ 'Accept'=>'*/*',
34
+ 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
35
+ 'Content-Encoding'=>'',
36
+ 'Content-Type'=>'application/x-sentry-envelope',
37
+ 'User-Agent'=>'sentry-ruby/4.6.5',
38
+ 'X-Sentry-Auth'=>'Sentry sentry_version=7, sentry_client=sentry-ruby/4.6.5, sentry_timestamp=1630497623, sentry_key=user, sentry_secret=password'
39
+ }).to_return(status: 200, body: "", headers: {})
40
+ end
41
+
28
42
  def stub_post(url="https://app.getsentry.com/api/12345/store/")
29
43
  parser = Yajl::Parser.new
30
44
  stub_request(:post, url).with do |req|
@@ -34,7 +48,7 @@ class SentryOutputTest < Test::Unit::TestCase
34
48
  end
35
49
  end
36
50
 
37
- def stub_response(url="https://app.getsentry.com/api/12345/store/")
51
+ def stub_response(url="https://app.getsentry.com/api/12345/envelope/")
38
52
  stub_request(:post, url).with do |req|
39
53
  @content_type = req.headers["Content-Type"]
40
54
  message = Zlib::Inflate.inflate(Base64.decode64(req.body))
@@ -51,7 +65,17 @@ class SentryOutputTest < Test::Unit::TestCase
51
65
  end
52
66
 
53
67
  def test_emit
54
- stub_post
68
+ stub_request(:post, "https://app.getsentry.com/api/12345/envelope/").
69
+ with(
70
+ body: "{\"event_id\":\"2aa1f0210fc04c89a8febda09d3e4a5f\",\"dsn\":\"https://user:password@app.getsentry.com/12345\",\"sdk\":{\"name\":\"sentry.ruby\",\"version\":\"4.6.5\"},\"sent_at\":\"2021-09-01T12:00:23Z\"}\n{\"type\":\"event\",\"content_type\":\"application/json\"}\n{\"event_id\":\"2aa1f0210fc04c89a8febda09d3e4a5f\",\"level\":\"warning\",\"timestamp\":\"2021-09-01T12:00:23\",\"environment\":\"default\",\"server_name\":\"reisei-workspace\",\"modules\":{\"rake\":\"13.0.6\",\"bundler\":\"2.2.26\",\"cool.io\":\"1.7.1\",\"http_parser.rb\":\"0.7.0\",\"msgpack\":\"1.4.2\",\"sigdump\":\"0.2.4\",\"serverengine\":\"2.2.4\",\"strptime\":\"0.2.5\",\"concurrent-ruby\":\"1.1.9\",\"tzinfo\":\"2.0.4\",\"tzinfo-data\":\"1.2021.1\",\"webrick\":\"1.7.0\",\"yajl-ruby\":\"1.4.1\",\"fluentd\":\"1.14.0\",\"faraday-em_http\":\"1.0.0\",\"faraday-em_synchrony\":\"1.0.0\",\"faraday-excon\":\"1.1.0\",\"faraday-httpclient\":\"1.0.1\",\"faraday-net_http\":\"1.0.1\",\"faraday-net_http_persistent\":\"1.2.0\",\"faraday-patron\":\"1.0.0\",\"faraday-rack\":\"1.0.0\",\"multipart-post\":\"2.1.1\",\"ruby2_keywords\":\"0.0.5\",\"faraday\":\"1.7.0\",\"sentry-ruby-core\":\"4.6.5\",\"sentry-ruby\":\"4.6.5\",\"ach-fluent-plugin-sentry\":\"0.0.9\",\"public_suffix\":\"4.0.6\",\"addressable\":\"2.8.0\",\"thor\":\"1.1.0\",\"appraisal\":\"2.4.1\",\"rexml\":\"3.2.5\",\"crack\":\"0.4.5\",\"hashdiff\":\"1.0.1\",\"power_assert\":\"2.0.1\",\"test-unit\":\"3.4.4\",\"webmock\":\"3.14.0\"},\"message\":\"error has occoured.\",\"user\":{},\"tags\":{\"tag\":\"app1_error\"},\"contexts\":{},\"extra\":{},\"fingerprint\":[],\"platform\":\"ruby\",\"sdk\":{\"name\":\"sentry.ruby\",\"version\":\"4.6.5\"}}\n",
71
+ headers: {
72
+ 'Accept'=>'*/*',
73
+ 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
74
+ 'Content-Encoding'=>'',
75
+ 'Content-Type'=>'application/x-sentry-envelope',
76
+ 'User-Agent'=>'sentry-ruby/4.6.5',
77
+ 'X-Sentry-Auth'=>'Sentry sentry_version=7, sentry_client=sentry-ruby/4.6.5, sentry_timestamp=1630497623, sentry_key=user, sentry_secret=password'}).to_return(status: 200, body: "", headers: {})
78
+ #stub_post
55
79
  d1 = create_driver(CONFIG, 'input.app1_error')
56
80
  emit_level = 'warning'
57
81
  emit_message = 'error has occoured.'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ach-fluent-plugin-sentry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kentaro Yoshida
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-31 00:00:00.000000000 Z
11
+ date: 2021-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler