logstash-output-sumologic 1.3.2 → 1.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: 0cb3e69cc8d33b60f981ee807b8deeab442bca032d5715df432d467d5a917b51
4
- data.tar.gz: 4e1c485db70cace53f2c46b7fd089be90775e74d569ace0fd1462a98ffe7fed7
3
+ metadata.gz: ab9e1ae438a4d6030629b00a67c0536aba6995f6a2bae1f952b9737cf2c28189
4
+ data.tar.gz: fdfec75b2d7c4bcd5c242c1d142d041648d450e3dfcb7a576de9531986f5438d
5
5
  SHA512:
6
- metadata.gz: '0478381fc42c308038c921dcede8662f5c83147f618c34bf5acf1f9c07b693d3a3e95a0978f74dc8114217b7e1c8b0aff78e29feb2435b27d6b1618a116fddb1'
7
- data.tar.gz: f8ba1e23876443e518d468f1f2c162f4053093fa251f870b0abd61528caea9c6fdef88dd86ba91278519ee7fd5baf352479e9d97386c8e9cbcf817b19c41e2c9
6
+ metadata.gz: 66620931f50b2c241835824e26e16e0c05ef8c4ec9ac5ad3770d579ae345ef4486c68de23de8c7c284e3005598231738f75bef59704977a65e3911b992907951
7
+ data.tar.gz: 294a5910f5ec91ace98405439411d26ddf1e3c858e6d17cefb67d8b2b3c0b534c101cdd93faeab08c34dd42f77f5fb078e03b853e6937d63b1ed9f56ba69b840
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Change Log
2
2
 
3
+ ## 1.4.0 (2021-09-27)
4
+
5
+ - [#68](https://github.com/SumoLogic/logstash-output-sumologic/pull/68) feat: retry on 502 error code
6
+
3
7
  ## 1.3.2 (2021-02-03)
4
8
 
5
9
  - [#60](https://github.com/SumoLogic/logstash-output-sumologic/pull/60) Fix plugin metrics not being sent
@@ -1,6 +1,46 @@
1
- # Development Guide
1
+ # Contributing
2
2
 
3
- Logstash output plugin for delivering log to Sumo Logic cloud service through HTTP source.
3
+ ## Set up development environment
4
+
5
+ You can use the preconfigured Vagrant virtual machine for development
6
+ It includes everything that is needed to start coding.
7
+ See [./vagrant/README.md](./vagrant/README.md).
8
+
9
+ If you don't want to or cannot use Vagrant, you need to install the following dependencies:
10
+
11
+ - [Java SE](http://www.oracle.com/technetwork/java/javase/downloads/index.html) as a prerequisite to JRuby,
12
+ - [JRuby](https://www.jruby.org/),
13
+ - [Bundler](https://bundler.io/),
14
+ - optionally [Docker](https://docs.docker.com/get-docker/), if you want to build and run container images.
15
+
16
+ When your machine is ready (either in Vagrant or not), run this in the root directory of this repository:
17
+
18
+ ```sh
19
+ bundle install
20
+ ```
21
+
22
+ ## Running tests
23
+
24
+ Some of the tests try to send actual data to an actual Sumo Logic account.
25
+ To run those tests, you need to make `sumo_url` environment variable available.
26
+ If the `sumo_url` environment variable is not present, the tests reaching Sumo Logic will be skipped.
27
+
28
+ ```sh
29
+ export sumo_url=https://events.sumologic.net/receiver/v1/http/XXXXXXXXXX
30
+ ```
31
+
32
+ To run the tests, execute:
33
+
34
+ ```sh
35
+ bundle exec rspec
36
+ ```
37
+
38
+ To run tests in Docker, execute:
39
+
40
+ ```sh
41
+ docker build -t logstash-output-plugin .
42
+ docker run --rm -it -e 'sumo_url=https://events.sumologic.net/receiver/v1/http/XXXXXXXXXX' logstash-output-plugin
43
+ ```
4
44
 
5
45
  ## How to build .gem file from repository
6
46
 
@@ -24,26 +64,6 @@ And then install the plugin locally:
24
64
  bin/logstash-plugin install <full path of .gem>
25
65
  ```
26
66
 
27
- ## How to run test with rspec
28
-
29
- ### Running in Docker
30
-
31
- ```bash
32
- docker build -t logstash-output-plugin .
33
- docker run --rm -it -e 'sumo_url=https://events.sumologic.net/receiver/v1/http/XXXXXXXXXX' logstash-output-plugin
34
- ```
35
-
36
- ### Running on bare metal
37
-
38
- The test requires JRuby to run.
39
-
40
- ```bash
41
- rvm use jruby
42
- bundle install
43
- export sumo_url=https://events.sumologic.net/receiver/v1/http/XXXXXXXXXX
44
- rspec spec/
45
- ```
46
-
47
67
  ## Continuous Integration
48
68
 
49
69
  The project uses GitHub Actions for:
@@ -29,7 +29,7 @@ module LogStash; module Outputs; class SumoLogic;
29
29
  while @stopping.false?
30
30
  Stud.stoppable_sleep(@interval) { @stopping.true? }
31
31
  if @stats.total_log_lines.value > 0 || @stats.total_metrics_datapoints.value > 0
32
- @queue.enq(Batch.new(@header_builder.build_stats(), build_stats_payload()))
32
+ @queue.enq(Batch.new(headers(), build_stats_payload()))
33
33
  end
34
34
  end # while
35
35
  }
@@ -73,5 +73,9 @@ module LogStash; module Outputs; class SumoLogic;
73
73
  "metric=#{key} interval=#{@interval} category=monitor #{value} #{timestamp}"
74
74
  end # def build_metric_line
75
75
 
76
+ def headers()
77
+ @headers ||= @header_builder.build_stats()
78
+ end
79
+
76
80
  end
77
81
  end; end; end
@@ -125,7 +125,7 @@ module LogStash; module Outputs; class SumoLogic;
125
125
  :code => response.code,
126
126
  :headers => headers,
127
127
  :contet => content[0..20])
128
- if response.code == 429 || response.code == 503 || response.code == 504
128
+ if response.code == 429 || response.code == 502 || response.code == 503 || response.code == 504
129
129
  requeue_message(batch)
130
130
  end
131
131
  else
@@ -102,7 +102,7 @@ class LogStash::Outputs::SumoLogic < LogStash::Outputs::Base
102
102
  # For carbon2 metrics format only, define the meta tags (which will NOT be used to identify the metrics)
103
103
  config :meta_tags, :validate => :hash, :default => {}
104
104
 
105
- # For messages fail to send or get 429/503/504 response, try to resend after (x) seconds; don't resend if (x) < 0
105
+ # For messages fail to send or get 429/502/503/504 response, try to resend after (x) seconds; don't resend if (x) < 0
106
106
  config :sleep_before_requeue, :validate => :number, :default => 30
107
107
 
108
108
  config :stats_category, :validate => :string, :default => CATEGORY_HEADER_DEFAULT_STATS
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-output-sumologic'
3
- s.version = '1.3.2'
3
+ s.version = '1.4.0'
4
4
  s.licenses = ['Apache-2.0']
5
5
  s.summary = 'Deliever the log to Sumo Logic cloud service.'
6
6
  s.description = 'This gem is a Logstash output plugin to deliver the log or metrics to Sumo Logic cloud service. Go to https://github.com/SumoLogic/logstash-output-sumologic for getting help, reporting issues, etc.'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-sumologic
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sumo Logic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-03 00:00:00.000000000 Z
11
+ date: 2021-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: manticore
@@ -107,7 +107,7 @@ extensions: []
107
107
  extra_rdoc_files: []
108
108
  files:
109
109
  - CHANGELOG.md
110
- - DEVELOPER.md
110
+ - CONTRIBUTING.md
111
111
  - Gemfile
112
112
  - LICENSE
113
113
  - README.md