logstash-cli 0.0.1 → 0.0.2

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.
data/.gitignore CHANGED
@@ -1 +1,2 @@
1
1
  Gemfile.lock
2
+ pkg/*
data/README.md CHANGED
@@ -8,17 +8,31 @@ Because let's face it, we're CLI junkies :)
8
8
  Mucho inspired by a gist of the eminent @lusis - <https://gist.github.com/1388077>
9
9
 
10
10
  ## Installation
11
- Installation using the usual steps
11
+ ### As a gem
12
12
 
13
- Install rvm , (no gem yet)
13
+ $ gem install logstash-cli
14
14
 
15
- $ git clone thisrepo
16
- $ cd thisrepo
15
+ ### From github
16
+
17
+ Tested with rvm and ruby-1.8.7
18
+
19
+ $ git clone git://github.com/jedi4ever/logstash-cli.git
20
+ $ cd logstash-cli
17
21
  $ gem install bundler
18
22
  $ bundle install
19
23
 
20
24
  ## Usage
21
25
 
26
+ ### Using the Gem
27
+
28
+ $ logstash-cli
29
+
30
+ ### Using the Github version - through bundler
31
+
32
+ $ bundle exec bin/logstash-cli
33
+
34
+ ## Commandline Options
35
+
22
36
  Usage:
23
37
  logstash-cli grep PATTERN
24
38
 
@@ -48,8 +62,12 @@ Install rvm , (no gem yet)
48
62
  ## Examples
49
63
 
50
64
  $ logstash-cli grep --esurl="http://logger-1.jedi.be:9200" '@message:jedi4ever AND program:sshd' --last 5d --format csv --delim ':'
65
+
51
66
  ## TODO
52
67
 
53
68
  - find a way to query existing instances
54
69
  - specify last 15m
55
70
  - find a way to get the results by streaming instead of loading all in memory (maybe pagination will help here)
71
+ - live tailing the output
72
+ - produce ascii histograms
73
+ - or sparklines
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ require 'bundler/setup'
4
+
5
+ require 'rake/testtask'
6
+ Bundler::GemHelper.install_tasks
@@ -31,10 +31,18 @@ module LogstashCli::Command
31
31
 
32
32
  $stderr.puts "Searching #{es_url}[#{index_prefix}#{from_date}..#{index_prefix}#{to_date}] - #{pattern}"
33
33
 
34
- (from_date..to_date).to_a.each do |date|
35
- es_index = index_prefix+date.to_s.gsub('-','.')
34
+ # Total of results to show
35
+ total_result_size = options[:size]
36
+
37
+ # For this index the number of results to show
38
+ # Previous indexes might already have generate results
39
+
40
+ running_result_size = total_result_size.to_i
41
+
42
+ # We reverse the order of working ourselves through the index
43
+ (from_date..to_date).sort.reverse.to_a.each do |date|
36
44
 
37
- result_size = options[:size]
45
+ es_index = index_prefix+date.to_s.gsub('-','.')
38
46
 
39
47
  begin
40
48
  Tire.configure {url es_url}
@@ -45,7 +53,7 @@ module LogstashCli::Command
45
53
  sort do
46
54
  by :@timestamp, 'desc'
47
55
  end
48
- size result_size
56
+ size running_result_size
49
57
  end
50
58
  rescue Exception => e
51
59
  $stderr.puts e
@@ -55,6 +63,10 @@ module LogstashCli::Command
55
63
 
56
64
  begin
57
65
  result = Array.new
66
+
67
+ # Decrease the number of results to get from the next index
68
+ running_result_size -= search.results.size
69
+
58
70
  search.results.sort {|a,b| a[:@timestamp] <=> b[:@timestamp] }.each do |res|
59
71
 
60
72
  metafields.each do |metafield|
@@ -66,9 +78,9 @@ module LogstashCli::Command
66
78
  end
67
79
 
68
80
  output = case options[:format]
69
- when 'csv' then result.to_csv({:col_sep => options[:delim]})
70
- when 'json' then result.to_json
71
- end
81
+ when 'csv' then result.to_csv({:col_sep => options[:delim]})
82
+ when 'json' then result.to_json
83
+ end
72
84
  #tstamp = Time.iso8601(res[:@timestamp]).localtime.iso8601
73
85
 
74
86
  puts output
@@ -1,3 +1,3 @@
1
1
  module LogstashCli
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-cli
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Patrick Debois
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-05-11 00:00:00 Z
18
+ date: 2012-05-24 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  requirement: &id001 !ruby/object:Gem::Requirement
@@ -131,6 +131,7 @@ files:
131
131
  - .rvmrc
132
132
  - Gemfile
133
133
  - README.md
134
+ - Rakefile
134
135
  - bin/logstash-cli
135
136
  - lib/logstash-cli.rb
136
137
  - lib/logstash-cli/cli.rb