logstash-output-lmlogs 1.0.1 → 1.1.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 +4 -4
- data/lib/logstash/outputs/lmlogs.rb +27 -12
- data/logstash-output-lmlogs.gemspec +3 -3
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0215e007f329ca2c6538f6ec2d65932fe43d87c1396772e03c98ca132bc932e
|
4
|
+
data.tar.gz: 288bf0b9b00ab06c19a02d4f540daed77d50a797fcaaa4c96912b2ca1cc59140
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7703c1da2e96bb1fbf1f55e72c04f8d3c22c0fe164f07496d70535b7eb358f67064b0021c3857b551e46419a6a1a62f5a26a88efed83c4b3135be1a48da943be
|
7
|
+
data.tar.gz: a49bbfa5e88c5dc18d72d7d37f5141da160ee020802a2812680b5433c343cab5a70d11a5af94f2ecde638455efc836d8b47aca798411dba648b369322b8cb25d
|
@@ -98,12 +98,17 @@ class LogStash::Outputs::LMLogs < LogStash::Outputs::Base
|
|
98
98
|
|
99
99
|
@@MAX_PAYLOAD_SIZE = 8*1024*1024
|
100
100
|
|
101
|
+
# For developer debugging.
|
102
|
+
@@CONSOLE_LOGS = false
|
103
|
+
|
101
104
|
public
|
102
105
|
def register
|
103
106
|
@total = 0
|
104
107
|
@total_failed = 0
|
105
108
|
logger.info("Initialized LogicMonitor output plugin with configuration",
|
106
109
|
:host => @host)
|
110
|
+
logger.info("Max Payload Size: ",
|
111
|
+
:size => @@MAX_PAYLOAD_SIZE)
|
107
112
|
|
108
113
|
end # def register
|
109
114
|
|
@@ -141,7 +146,7 @@ class LogStash::Outputs::LMLogs < LogStash::Outputs::Base
|
|
141
146
|
# :eager => true
|
142
147
|
# }
|
143
148
|
end
|
144
|
-
|
149
|
+
log_debug("manticore client config: ", :client => c)
|
145
150
|
return c
|
146
151
|
end
|
147
152
|
|
@@ -174,6 +179,8 @@ class LogStash::Outputs::LMLogs < LogStash::Outputs::Base
|
|
174
179
|
end
|
175
180
|
|
176
181
|
def send_batch(events)
|
182
|
+
log_debug("Started sending logs to LM: ",
|
183
|
+
:time => Time::now.utc)
|
177
184
|
url = "https://" + @portal_name + ".logicmonitor.com/rest/log/ingest"
|
178
185
|
body = events.to_json
|
179
186
|
auth_string = generate_auth_string(body)
|
@@ -189,7 +196,7 @@ class LogStash::Outputs::LMLogs < LogStash::Outputs::Base
|
|
189
196
|
request.on_success do |response|
|
190
197
|
if response.code == 202
|
191
198
|
@total += events.length
|
192
|
-
|
199
|
+
log_debug("Successfully sent ",
|
193
200
|
:response_code => response.code,
|
194
201
|
:batch_size => events.length,
|
195
202
|
:total_sent => @total,
|
@@ -214,10 +221,9 @@ class LogStash::Outputs::LMLogs < LogStash::Outputs::Base
|
|
214
221
|
|
215
222
|
request.on_failure do |exception|
|
216
223
|
@total_failed += 1
|
217
|
-
log_failure("
|
224
|
+
log_failure("The request failed. ",
|
218
225
|
:url => url,
|
219
226
|
:method => @http_method,
|
220
|
-
:body => body,
|
221
227
|
:message => exception.message,
|
222
228
|
:class => exception.class.name,
|
223
229
|
:backtrace => exception.backtrace,
|
@@ -225,7 +231,7 @@ class LogStash::Outputs::LMLogs < LogStash::Outputs::Base
|
|
225
231
|
)
|
226
232
|
end
|
227
233
|
|
228
|
-
|
234
|
+
log_debug("Completed sending logs to LM",
|
229
235
|
:total => @total,
|
230
236
|
:time => Time::now.utc)
|
231
237
|
request.call
|
@@ -234,20 +240,29 @@ class LogStash::Outputs::LMLogs < LogStash::Outputs::Base
|
|
234
240
|
@logger.error("[Exception=] #{e.message} #{e.backtrace}")
|
235
241
|
end
|
236
242
|
|
243
|
+
def log_debug(message, *opts)
|
244
|
+
if @@CONSOLE_LOGS
|
245
|
+
puts "[#{DateTime::now}] [logstash.outputs.lmlogs] [DEBUG] #{message} #{opts.to_s}"
|
246
|
+
elsif debug
|
247
|
+
@logger.debug(message, *opts)
|
248
|
+
end
|
249
|
+
end
|
237
250
|
|
238
251
|
public
|
239
252
|
def multi_receive(events)
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
end
|
253
|
+
if events.length() > 0
|
254
|
+
log_debug(events.to_json)
|
255
|
+
end
|
244
256
|
|
245
257
|
events.each_slice(@batch_size) do |chunk|
|
246
258
|
documents = []
|
247
259
|
chunk.each do |event|
|
248
|
-
|
249
|
-
|
250
|
-
|
260
|
+
event_json = JSON.parse(event.to_json)
|
261
|
+
lmlogs_event = event_json
|
262
|
+
lmlogs_event.delete("@timestamp") # remove redundant timestamp field
|
263
|
+
lmlogs_event["event"].delete("original") # remove redundant log field
|
264
|
+
|
265
|
+
lmlogs_event["message"] = event.get(@message_key).to_s
|
251
266
|
|
252
267
|
lmlogs_event["_lm.resourceId"] = {}
|
253
268
|
lmlogs_event["_lm.resourceId"]["#{@lm_property}"] = event.get(@property_key.to_s)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'logstash-output-lmlogs'
|
3
|
-
s.version = '1.0
|
4
|
-
s.licenses = ['Apache
|
3
|
+
s.version = '1.1.0'
|
4
|
+
s.licenses = ['Apache-2.0']
|
5
5
|
s.summary = "Logstash output plugin for LM Logs"
|
6
6
|
s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
|
7
7
|
s.authors = ["LogicMonitor"]
|
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
16
16
|
|
17
17
|
# Special flag to let us know this is actually a logstash plugin
|
18
|
-
s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" }
|
18
|
+
s.metadata = { "logstash_plugin" => "true", "logstash_group" => "output" , "rubygems_mfa_required" => "false"}
|
19
19
|
|
20
20
|
# Gem dependencies
|
21
21
|
#
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logstash-output-lmlogs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- LogicMonitor
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,10 +94,11 @@ files:
|
|
94
94
|
- spec/outputs/lmlogs_spec.rb
|
95
95
|
homepage: https://www.logicmonitor.com
|
96
96
|
licenses:
|
97
|
-
- Apache
|
97
|
+
- Apache-2.0
|
98
98
|
metadata:
|
99
99
|
logstash_plugin: 'true'
|
100
100
|
logstash_group: output
|
101
|
+
rubygems_mfa_required: 'false'
|
101
102
|
post_install_message:
|
102
103
|
rdoc_options: []
|
103
104
|
require_paths:
|
@@ -113,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
114
|
- !ruby/object:Gem::Version
|
114
115
|
version: '0'
|
115
116
|
requirements: []
|
116
|
-
rubygems_version: 3.
|
117
|
+
rubygems_version: 3.3.25
|
117
118
|
signing_key:
|
118
119
|
specification_version: 4
|
119
120
|
summary: Logstash output plugin for LM Logs
|