logstash-output-sumologic 1.1.4 → 1.1.9

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.
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ require "socket"
3
+
4
+ class TestServer
5
+
6
+ PORT = 5678
7
+ CRLF = "\r\n"
8
+ RESPONSE_200 = "HTTP/1.1 200 OK#{CRLF}" +
9
+ "Content-Type: text/plain#{CRLF}" +
10
+ "Content-Length: 0#{CRLF}" +
11
+ "Connection: close#{CRLF}" +
12
+ "#{CRLF}"
13
+
14
+ RESPONSE_429 = "HTTP/1.1 429 Too Many Requests#{CRLF}" +
15
+ "Content-Type: text/plain#{CRLF}" +
16
+ "Retry-After: 3600#{CRLF}" +
17
+ "#{CRLF}"
18
+
19
+ attr_reader :queue
20
+ attr_writer :response
21
+
22
+ def initialize(response = RESPONSE_200)
23
+ @requests = Queue.new()
24
+ @response = response
25
+ @server = TCPServer.new PORT
26
+ end # def initialize
27
+
28
+ def start()
29
+ @thread = Thread.new {
30
+ while session = @server.accept
31
+ request = session.gets
32
+ @requests << request
33
+ session.print @response
34
+ session.close
35
+ end
36
+ }
37
+ @thread
38
+ end # def start
39
+
40
+ def stop()
41
+ @thread.kill()
42
+ @thread.join()
43
+ end # def stop
44
+
45
+ def drain()
46
+ @requests.size.times.map { @requests.deq() }
47
+ end
48
+
49
+ end # class
metadata CHANGED
@@ -1,83 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-sumologic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sumo Logic
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-24 00:00:00.000000000 Z
11
+ date: 2018-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: manticore
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
- - - "~>"
17
+ - - ">="
17
18
  - !ruby/object:Gem::Version
18
- version: '2.0'
19
- name: logstash-core-plugin-api
19
+ version: 0.5.4
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.0
23
+ type: :runtime
20
24
  prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.5.4
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: logstash-core-plugin-api
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '1.60'
40
+ - - "<="
41
+ - !ruby/object:Gem::Version
42
+ version: '2.99'
21
43
  type: :runtime
44
+ prerelease: false
22
45
  version_requirements: !ruby/object:Gem::Requirement
23
46
  requirements:
24
- - - "~>"
47
+ - - ">="
25
48
  - !ruby/object:Gem::Version
26
- version: '2.0'
49
+ version: '1.60'
50
+ - - "<="
51
+ - !ruby/object:Gem::Version
52
+ version: '2.99'
27
53
  - !ruby/object:Gem::Dependency
54
+ name: logstash-codec-plain
28
55
  requirement: !ruby/object:Gem::Requirement
29
56
  requirements:
30
57
  - - ">="
31
58
  - !ruby/object:Gem::Version
32
59
  version: '0'
33
- name: logstash-codec-plain
34
- prerelease: false
35
60
  type: :runtime
61
+ prerelease: false
36
62
  version_requirements: !ruby/object:Gem::Requirement
37
63
  requirements:
38
64
  - - ">="
39
65
  - !ruby/object:Gem::Version
40
66
  version: '0'
41
67
  - !ruby/object:Gem::Dependency
68
+ name: logstash-mixin-http_client
42
69
  requirement: !ruby/object:Gem::Requirement
43
70
  requirements:
44
71
  - - ">="
45
72
  - !ruby/object:Gem::Version
46
- version: 6.0.0
47
- - - "<"
48
- - !ruby/object:Gem::Version
49
- version: 7.0.0
50
- name: logstash-mixin-http_client
51
- prerelease: false
73
+ version: '0'
52
74
  type: :runtime
75
+ prerelease: false
53
76
  version_requirements: !ruby/object:Gem::Requirement
54
77
  requirements:
55
78
  - - ">="
56
79
  - !ruby/object:Gem::Version
57
- version: 6.0.0
58
- - - "<"
59
- - !ruby/object:Gem::Version
60
- version: 7.0.0
80
+ version: '0'
61
81
  - !ruby/object:Gem::Dependency
82
+ name: logstash-devutils
62
83
  requirement: !ruby/object:Gem::Requirement
63
84
  requirements:
64
- - - "~>"
65
- - !ruby/object:Gem::Version
66
- version: '1.3'
67
85
  - - ">="
68
86
  - !ruby/object:Gem::Version
69
- version: 1.3.1
70
- name: logstash-devutils
71
- prerelease: false
87
+ version: '0'
72
88
  type: :development
89
+ prerelease: false
73
90
  version_requirements: !ruby/object:Gem::Requirement
74
91
  requirements:
75
- - - "~>"
76
- - !ruby/object:Gem::Version
77
- version: '1.3'
78
92
  - - ">="
79
93
  - !ruby/object:Gem::Version
80
- version: 1.3.1
94
+ version: '0'
81
95
  description: This gem is a Logstash output plugin to deliver the log or metrics to
82
96
  Sumo Logic cloud service. Go to https://github.com/SumoLogic/logstash-output-sumologic
83
97
  for getting help, reporting issues, etc.
@@ -87,22 +101,36 @@ extensions: []
87
101
  extra_rdoc_files: []
88
102
  files:
89
103
  - CHANGELOG.md
90
- - CONTRIBUTORS
91
104
  - DEVELOPER.md
92
105
  - Gemfile
93
106
  - LICENSE
94
107
  - README.md
95
108
  - lib/logstash/outputs/sumologic.rb
109
+ - lib/logstash/outputs/sumologic/common.rb
110
+ - lib/logstash/outputs/sumologic/compressor.rb
111
+ - lib/logstash/outputs/sumologic/header_builder.rb
112
+ - lib/logstash/outputs/sumologic/message_queue.rb
113
+ - lib/logstash/outputs/sumologic/monitor.rb
114
+ - lib/logstash/outputs/sumologic/payload_builder.rb
115
+ - lib/logstash/outputs/sumologic/piler.rb
116
+ - lib/logstash/outputs/sumologic/sender.rb
117
+ - lib/logstash/outputs/sumologic/statistics.rb
96
118
  - logstash-output-sumologic.gemspec
119
+ - spec/outputs/sumologic/compressor_spec.rb
120
+ - spec/outputs/sumologic/header_builder_spec.rb
121
+ - spec/outputs/sumologic/message_queue_spec.rb
122
+ - spec/outputs/sumologic/payload_builder_spec.rb
123
+ - spec/outputs/sumologic/piler_spec.rb
124
+ - spec/outputs/sumologic/sender_spec.rb
97
125
  - spec/outputs/sumologic_spec.rb
98
- - spec/spec_helper.rb
126
+ - spec/test_server.rb
99
127
  homepage: https://github.com/SumoLogic/logstash-output-sumologic
100
128
  licenses:
101
129
  - Apache-2.0
102
130
  metadata:
103
131
  logstash_plugin: 'true'
104
132
  logstash_group: output
105
- post_install_message:
133
+ post_install_message:
106
134
  rdoc_options: []
107
135
  require_paths:
108
136
  - lib
@@ -117,11 +145,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
145
  - !ruby/object:Gem::Version
118
146
  version: '0'
119
147
  requirements: []
120
- rubyforge_project:
121
- rubygems_version: 2.6.14.1
122
- signing_key:
148
+ rubyforge_project:
149
+ rubygems_version: 2.7.7
150
+ signing_key:
123
151
  specification_version: 4
124
152
  summary: Deliever the log to Sumo Logic cloud service.
125
153
  test_files:
154
+ - spec/outputs/sumologic/compressor_spec.rb
155
+ - spec/outputs/sumologic/header_builder_spec.rb
156
+ - spec/outputs/sumologic/message_queue_spec.rb
157
+ - spec/outputs/sumologic/payload_builder_spec.rb
158
+ - spec/outputs/sumologic/piler_spec.rb
159
+ - spec/outputs/sumologic/sender_spec.rb
126
160
  - spec/outputs/sumologic_spec.rb
127
- - spec/spec_helper.rb
161
+ - spec/test_server.rb
@@ -1,13 +0,0 @@
1
- The following is a list of people who have contributed ideas, code, bug
2
- reports, or in general have helped Sumo Logic plug-in along its way.
3
-
4
- Contributors:
5
- * Bin Yi (bin3377)
6
- * Brian Goleno (bgoleno)
7
- * Jacek Migdal (jakozaur)
8
- * Chris Dessonville (cddude229)
9
-
10
- Note: If you've sent us patches, bug reports, or otherwise contributed to
11
- Sumo Logic plug-in, and you aren't on the list above and want to be, please let us know
12
- and we'll make sure you're here. Contributions from folks like you are what make
13
- open source awesome.
@@ -1,61 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require "logstash/devutils/rspec/spec_helper"
4
- require "logstash/outputs/sumologic"
5
-
6
- class Server
7
-
8
- def initialize
9
- @queue = Queue.new
10
- @header = {}
11
- end
12
-
13
- def size
14
- @queue.length
15
- end
16
-
17
- def all
18
- @queue.size.times.map { @queue.pop }
19
- end
20
-
21
- def all_sorted
22
- all.sort { |x, y| y <=> x }
23
- end
24
-
25
- def pop
26
- if !@queue.empty?
27
- @queue.pop
28
- else
29
- puts "EMPTY"
30
- end
31
- end
32
-
33
- def header
34
- @header
35
- end
36
-
37
- def empty?
38
- @queue.empty?
39
- end
40
-
41
- def push(data, header)
42
- @header = header
43
- data.split("\n").each do |line|
44
- @queue << line
45
- end
46
- end
47
-
48
- end
49
-
50
- class LogStash::Outputs::SumoLogic
51
- attr_reader :server
52
-
53
- def connect
54
- @server = Server.new
55
- end
56
-
57
- def send_request(content)
58
- @server.push(content, get_headers())
59
- end
60
-
61
- end