lstash 0.2.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,98 +1,96 @@
1
- require 'spec_helper'
2
- require 'lstash/query'
1
+ require "spec_helper"
2
+ require "lstash/query"
3
3
 
4
4
  describe Lstash::Query do
5
-
6
5
  context "running on 2014-08-03" do
7
- let(:time) { '2014-08-03 15:54:33' }
6
+ let(:time) { "2014-08-03 15:54:33" }
8
7
  let(:query_string) { nil }
9
8
  let(:options) { {} }
10
9
 
11
10
  subject { Lstash::Query.new(query_string, options) }
12
11
 
13
- before { Timecop.freeze(Time.parse(time)) }
14
- after { Timecop.return }
12
+ before { Timecop.freeze(time) }
13
+ after { Timecop.return }
15
14
 
16
15
  it { should_not be nil }
17
16
  # it "should initialize properly" do
18
17
  # expect(subject).not_to be nil
19
18
  # end
20
19
 
21
- its('from') { should eq Time.parse('2014-08-03 00:00:00.000000000 +0200') }
22
- its('to') { should eq Time.parse('2014-08-03 15:54:33.000000000 +0200') }
20
+ its("from") { should eq Time.parse("2014-08-02 00:00:00 +0200") }
21
+ its("to") { should eq Time.parse("2014-08-03 00:00:00 +0200") }
23
22
 
24
23
  # its(:date_range) { should eq (Date.parse('2014-08-02')..Date.parse('2014-08-03')) }
25
24
 
26
25
  # its(:indices) { should eq [ "logstash-2014.08.02", "logstash-2014.08.03" ] }
27
26
 
28
27
  context "with specific query" do
29
- let(:query_string) { 'program:haproxy' }
28
+ let(:query_string) { "program:haproxy" }
30
29
  its(:query_string) { should eq query_string }
31
30
  end
32
31
 
33
32
  context "without query" do
34
33
  let(:query_string) { nil }
35
- its(:query_string) { should eql '*' }
34
+ its(:query_string) { should eql "*" }
36
35
  end
37
36
 
38
37
  context "from 'yesterday'" do
39
- let(:options) { { from: 'yesterday' }}
40
- its('from') { should eq Time.parse('2014-08-02 00:00:00.000000000 +0200') }
38
+ let(:options) { {from: "yesterday"} }
39
+ its("from") { should eq Time.parse("2014-08-02 00:00:00 +0200") }
41
40
  end
42
41
 
43
42
  context "from 'today'" do
44
- let(:options) { { from: 'today' }}
45
- its('from') { should eq Time.parse('2014-08-03 00:00:00.000000000 +0200') }
43
+ let(:options) { {from: "today"} }
44
+ its("from") { should eq Time.parse("2014-08-03 00:00:00 +0200") }
46
45
  end
47
46
 
48
47
  context "from 'now'" do
49
- let(:options) { { from: 'now' }}
50
- its('from') { should eq Time.parse('2014-08-03 15:54:33.000000000 +0200') }
48
+ let(:options) { {from: "now"} }
49
+ its("from") { should eq Time.parse("2014-08-03 15:54:33 +0200") }
51
50
  end
52
51
 
53
52
  context "to 'yesterday'" do
54
- let(:options) { { to: 'yesterday' }}
55
- its('to') { should eq Time.parse('2014-08-02 00:00:00.000000000 +0200') }
53
+ let(:options) { {to: "yesterday"} }
54
+ its("to") { should eq Time.parse("2014-08-02 00:00:00 +0200") }
56
55
  end
57
56
 
58
57
  context "to 'today'" do
59
- let(:options) { { to: 'today' }}
60
- its('to') { should eq Time.parse('2014-08-03 00:00:00.000000000 +0200') }
58
+ let(:options) { {to: "today"} }
59
+ its("to") { should eq Time.parse("2014-08-03 00:00:00 +0200") }
61
60
  end
62
61
 
63
62
  context "to 'now'" do
64
- let(:options) { { to: 'now' }}
65
- its('to') { should eq Time.parse('2014-08-03 15:54:33.000000000 +0200') }
63
+ let(:options) { {to: "now"} }
64
+ its("to") { should eq Time.parse("2014-08-03 15:54:33 +0200") }
66
65
  end
67
66
 
68
67
  context "from 'firstday'" do
69
-
70
- let(:options) { { from: 'firstday' } }
71
- its('from') { should eq Time.parse('2014-08-01 00:00:00.000000000 +0200') }
68
+ let(:options) { {from: "firstday"} }
69
+ its("from") { should eq Time.parse("2014-08-01 00:00:00 +0200") }
72
70
 
73
71
  context "anchor 'yesterday'" do
74
- let(:anchor) { 'yesterday' }
75
- its('from') { should eq Time.parse('2014-08-01 00:00:00.000000000 +0200') }
72
+ let(:anchor) { "yesterday" }
73
+ its("from") { should eq Time.parse("2014-08-01 00:00:00 +0200") }
76
74
  end
77
75
 
78
76
  context "anchor 'today'" do
79
- let(:anchor) { 'today' }
80
- its('from') { should eq Time.parse('2014-08-01 00:00:00.000000000 +0200') }
77
+ let(:anchor) { "today" }
78
+ its("from") { should eq Time.parse("2014-08-01 00:00:00 +0200") }
81
79
  end
82
80
 
83
81
  context "anchor '2014-07-17'" do
84
- let(:options) { { from: 'firstday', anchor: '2014-07-17' } }
85
- its('from') { should eq Time.parse('2014-07-01 00:00:00.000000000 +0200') }
82
+ let(:options) { {from: "firstday", anchor: "2014-07-17"} }
83
+ its("from") { should eq Time.parse("2014-07-01 00:00:00 +0200") }
86
84
  end
87
85
 
88
86
  context "date range" do
89
- let(:options) { { from: 'firstday', anchor: 'yesterday' } }
90
- its('from') { should eq Time.parse('2014-08-01 00:00:00.000000000 +0200') }
91
- its('to') { should eq Time.parse('2014-08-03 15:54:33.000000000 +0200') }
87
+ let(:options) { {from: "firstday", anchor: "yesterday"} }
88
+ its("from") { should eq Time.parse("2014-08-01 00:00:00 +0200") }
89
+ its("to") { should eq Time.parse("2014-08-03 00:00:00 +0200") }
92
90
  end
93
91
 
94
92
  context "each_period" do
95
- let(:options) { { from: 'firstday', anchor: 'yesterday', to: 'today' } }
93
+ let(:options) { {from: "firstday", anchor: "yesterday", to: "today"} }
96
94
  it "should iterate over range by hour" do
97
95
  indices = []
98
96
  queries = []
@@ -100,13 +98,13 @@ describe Lstash::Query do
100
98
  indices << index
101
99
  queries << query
102
100
  end
103
- expect(indices.count).to eq ((subject.to - subject.from)/3600).round
104
- expect(indices.uniq).to eq %w(
101
+ expect(indices.count).to eq ((subject.to - subject.from) / 3600).round
102
+ expect(indices.uniq).to eq %w[
105
103
  logstash-2014.07.31
106
104
  logstash-2014.08.01
107
105
  logstash-2014.08.02
108
- )
109
- expect(queries.map(&:from).map(&:to_s)).to eq ([
106
+ ]
107
+ expect(queries.map(&:from).map(&:to_s)).to eq([
110
108
  "2014-07-31 22:00:00 UTC",
111
109
  "2014-07-31 23:00:00 UTC",
112
110
  "2014-08-01 00:00:00 UTC",
@@ -158,50 +156,54 @@ describe Lstash::Query do
158
156
  ])
159
157
  end
160
158
  end
161
-
162
159
  end
163
160
 
164
161
  context "search" do
165
162
  it "should produce the correct elasticsearch search request attributes" do
166
- expect(subject.search(0, 10)).to eq ({
167
- :sort => [{"@timestamp"=>{:order=>"asc"}}],
168
- :fields => %w(message),
169
- :query => {:filtered=>{
170
- :query => { :bool => { :should => [ { :query_string => { :query=>"*" }}]}},
171
- :filter=> { :bool => { :must => [ { :range => { "@timestamp" => { :gte => 1407016800000, :lt => 1407074073000}}}]}}}},
172
- :from => 0,
173
- :size => 10
163
+ expect(subject.search(0, 10)).to eq({
164
+ sort: [{"@timestamp" => {order: "asc"}}],
165
+ _source: %w[message],
166
+ query: {
167
+ bool: {
168
+ must: [
169
+ {
170
+ query_string: {query: "*"}
171
+ }
172
+ ],
173
+ filter: {
174
+ range: {"@timestamp" => {gte: 1406930400000, lt: 1407016800000}}
175
+ }
176
+ }
177
+ },
178
+ from: 0,
179
+ size: 10
174
180
  })
175
181
  end
176
182
  end
177
-
178
183
  end
179
184
 
180
185
  context "running on 2014-08-01" do
181
- let(:time) { '2014-08-01 12:53:03' }
186
+ let(:time) { "2014-08-01 12:53:03" }
182
187
  let(:query_string) { nil }
183
188
  let(:options) { {} }
184
189
 
185
190
  subject { Lstash::Query.new(query_string, options) }
186
191
 
187
192
  before { Timecop.freeze(Time.parse(time)) }
188
- after { Timecop.return }
193
+ after { Timecop.return }
189
194
 
190
195
  context "from 'firstday' with 'yesterday' anchor" do
191
- let(:options) { { anchor: 'yesterday', from: 'firstday' } }
196
+ let(:options) { {anchor: "yesterday", from: "firstday"} }
192
197
 
193
- its('from') { should eq Time.parse('2014-07-01 00:00:00.000000000 +0200') }
194
- its('to') { should eq Time.parse('2014-08-01 12:53:03.000000000 +0200') }
198
+ its("from") { should eq Time.parse("2014-07-01 00:00:00 +0200") }
199
+ its("to") { should eq Time.parse("2014-08-01 00:00:00 +0200") }
195
200
  end
196
201
 
197
202
  context "from 'firstday' with default 'today' anchor" do
198
- let(:options) { { from: 'firstday', to: 'now' } }
203
+ let(:options) { {from: "firstday", to: "now"} }
199
204
 
200
- its('from') { should eq Time.parse('2014-08-01 00:00:00.000000000 +0200') }
201
- its('to') { should eq Time.parse('2014-08-01 12:53:03.000000000 +0200') }
205
+ its("from") { should eq Time.parse("2014-08-01 00:00:00 +0200") }
206
+ its("to") { should eq Time.parse("2014-08-01 12:53:03 +0200") }
202
207
  end
203
-
204
208
  end
205
-
206
209
  end
207
-
data/spec/lstash_spec.rb CHANGED
@@ -1,8 +1,8 @@
1
- require 'spec_helper'
2
- require 'lstash/cli'
1
+ require "spec_helper"
2
+ require "lstash/cli"
3
3
 
4
4
  describe Lstash do
5
- it 'should have a version number' do
5
+ it "should have a version number" do
6
6
  expect(Lstash::VERSION).not_to be nil
7
7
  end
8
8
  end
data/spec/spec_helper.rb CHANGED
@@ -1,33 +1,48 @@
1
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
- require 'lstash'
1
+ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
2
+ require "lstash"
3
3
 
4
- require 'rspec/its'
4
+ require "rspec/its"
5
5
 
6
- require 'timecop'
6
+ require "timecop"
7
7
 
8
- ENV['ES_URL'] = nil
9
- ENV['TZ'] = 'Europe/Amsterdam' # Test in a specific timezone.
8
+ ENV["ES_URL"] = nil
9
+ ENV["TZ"] = "Europe/Amsterdam" # Test in a specific timezone.
10
10
 
11
11
  RSpec.configure do |config|
12
- config.order = 'random'
12
+ config.order = "random"
13
+
14
+ # Suggestions taken from http://railscasts.com/episodes/413-fast-tests
15
+ #
16
+ # Focus on specific specs by tagging with `:focus`
17
+ # or use `fit` instead of `it`.
18
+ # ```ruby
19
+ # it "focus test", :focus do
20
+ # end
21
+ #
22
+ # fit "focus test" do
23
+ # end
24
+ # ```
25
+ config.alias_example_to :fit, focus: true
26
+ config.filter_run focus: true
27
+ config.run_all_when_everything_filtered = true
13
28
  end
14
29
 
15
- require 'stringio'
30
+ require "stringio"
16
31
 
17
- def capture_stdout(&blk)
32
+ def capture_stdout
18
33
  old = $stdout
19
34
  $stdout = fake = StringIO.new
20
- blk.call
35
+ yield
21
36
  fake.string
22
37
  ensure
23
38
  $stdout = old
24
39
  end
25
40
 
26
- def capture_stderr(&blk)
41
+ def capture_stderr
27
42
  old = $stderr
28
43
  $stderr = fake = StringIO.new
29
- blk.call
44
+ yield
30
45
  fake.string
31
46
  ensure
32
47
  $stderr = old
33
- end
48
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lstash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Klaas Jan Wierenga
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-19 00:00:00.000000000 Z
11
+ date: 2023-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,48 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.7.1
83
- - !ruby/object:Gem::Dependency
84
- name: typhoeus
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 1.4.0
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 1.4.0
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: elasticsearch
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '0.4'
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '0.4'
111
- - !ruby/object:Gem::Dependency
112
- name: hashie
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: 4.1.0
89
+ version: 7.17.7
118
90
  type: :runtime
119
91
  prerelease: false
120
92
  version_requirements: !ruby/object:Gem::Requirement
121
93
  requirements:
122
94
  - - "~>"
123
95
  - !ruby/object:Gem::Version
124
- version: 4.1.0
96
+ version: 7.17.7
125
97
  - !ruby/object:Gem::Dependency
126
98
  name: thor
127
99
  requirement: !ruby/object:Gem::Requirement
@@ -136,24 +108,10 @@ dependencies:
136
108
  - - "~>"
137
109
  - !ruby/object:Gem::Version
138
110
  version: 0.20.3
139
- - !ruby/object:Gem::Dependency
140
- name: faraday
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: 0.17.4
146
- type: :runtime
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: 0.17.4
153
111
  description: Count or grep log messages in a specified time range from a Logstash
154
112
  Elasticsearch server.
155
113
  email:
156
- - k.j.wierenga@gmail.com
114
+ - k.j.wierenga@kerkdienstgemist.nl
157
115
  executables:
158
116
  - lstash
159
117
  extensions: []
@@ -163,6 +121,10 @@ extra_rdoc_files:
163
121
  - CHANGELOG.md
164
122
  files:
165
123
  - ".autotest"
124
+ - ".devcontainer/Aptfile"
125
+ - ".devcontainer/Dockerfile"
126
+ - ".devcontainer/devcontainer.json"
127
+ - ".github/workflows/test.yml"
166
128
  - ".gitignore"
167
129
  - ".rspec"
168
130
  - ".ruby-gemset"
@@ -174,6 +136,8 @@ files:
174
136
  - README.md
175
137
  - Rakefile
176
138
  - bin/lstash
139
+ - dip.yml
140
+ - docker-compose.yml
177
141
  - lib/lstash.rb
178
142
  - lib/lstash/cli.rb
179
143
  - lib/lstash/client.rb
@@ -185,11 +149,11 @@ files:
185
149
  - spec/lstash/query_spec.rb
186
150
  - spec/lstash_spec.rb
187
151
  - spec/spec_helper.rb
188
- homepage: https://github.com/kjwierenga/lstash
152
+ homepage: https://github.com/kdgm/lstash
189
153
  licenses:
190
154
  - MIT
191
155
  metadata: {}
192
- post_install_message:
156
+ post_install_message:
193
157
  rdoc_options: []
194
158
  require_paths:
195
159
  - lib
@@ -204,14 +168,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
168
  - !ruby/object:Gem::Version
205
169
  version: '0'
206
170
  requirements: []
207
- rubygems_version: 3.0.8
208
- signing_key:
171
+ rubygems_version: 3.0.3.1
172
+ signing_key:
209
173
  specification_version: 4
210
174
  summary: The lstash gem allows you to count or grep log messages in a specific time
211
175
  range from a Logstash Elasticsearch server.
212
- test_files:
213
- - spec/lstash/cli_spec.rb
214
- - spec/lstash/client_spec.rb
215
- - spec/lstash/query_spec.rb
216
- - spec/lstash_spec.rb
217
- - spec/spec_helper.rb
176
+ test_files: []