rforward 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b604a36bc1961d87954e6cd92266934969ace196
4
- data.tar.gz: da76ae995aaf1f648da48ec8c03b1db8a26f5274
3
+ metadata.gz: 9f7548dcc4d9f4012d9098335e6c06c5e105b812
4
+ data.tar.gz: 467cce2e9839510f5691b44a9d729843551aadd5
5
5
  SHA512:
6
- metadata.gz: 20a8dd075a2b6fb29e9ed00dd8a648b05debe226c641096a7c1f8221357571d1ea42872aef2866bc947a80f1efe9f693bc8a68b2ef871a3a5cbee5707670051a
7
- data.tar.gz: 93b501de72c5e6cc2df5e63fd9dc7999cfa34b5f429ce469da7abfec3fae5d192f3d2616abb6c4ac57c9963899e95832c181f16c1364d2dd05d07882eceb0cdd
6
+ metadata.gz: 1c78ce72a5d8dc00eead64a2f29c18dea7f74b498a656e8fc1ea72d93586a91bf7151f02a2c449d73749d03fdf665fbdc918cf68f59e45782008924a8f46b057
7
+ data.tar.gz: da5cea88320a45468c48ef986cf462fdfb7e3c946f72e8804633aaf718a33b670c13b6486ae60d464d0b5a30b7043841d8303cf4132b7d9fcda3655d4387ca5d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rforward (0.1.1)
4
+ rforward (0.1.3)
5
5
  dry-container
6
6
  fluent-logger
7
7
  thor (~> 0.20)
@@ -29,7 +29,12 @@ class Config
29
29
  hash = {
30
30
  'fluentd_host' => 'localhost',
31
31
  'fluentd_port' => '24224',
32
- 'tag' => 'event'
32
+ 'tag' => 'event',
33
+ 'flush_delay' => '20',
34
+ 'flush_threshold' => '100000',
35
+ 'time_key' => 'time',
36
+ 'time_format' => '%Y-%m-%dT%H:%M:%S%z',
37
+ 'index_key' => 'index_key'
33
38
  }
34
39
  end
35
40
  end
@@ -10,12 +10,23 @@ class FFluentdLine
10
10
  def call line
11
11
  Stat.instance.total += 1
12
12
  json = JSON.parse line
13
+ json = mutate json
14
+ puts json
13
15
  @client.post Config.instance[:tag], json
14
16
  Stat.instance.success += 1
17
+ Stat.instance.flush_counter += 1
15
18
  true
16
19
  rescue Exception => e
17
20
  Stat.instance.failed += 1
18
21
  RLogger.instance.error "(#{e.message}) (line: #{line})"
19
22
  false
20
23
  end
24
+
25
+ def mutate record
26
+ return record unless record[Config.instance['time_key']]
27
+ time = Time.strptime record[Config.instance['time_key']], Config.instance['time_format']
28
+ record[Config.instance['index_key']] = "fluentd-#{time.strftime('%Y-%m')}"
29
+ record
30
+ end
31
+
21
32
  end
@@ -13,6 +13,16 @@ class FileProcessor
13
13
  Stat.instance.files_current += 1
14
14
  RLogger.instance.info "finish working on #{filepath}"
15
15
  RLogger.instance.stat
16
+ delay
17
+ end
18
+
19
+
20
+ def delay
21
+ if Config.instance['flush_threshold'].to_i < Stat.instance.flush_counter
22
+ RLogger.instance.info "Sleep for #{Config.instance['flush_delay']} seconds"
23
+ sleep(Config.instance['flush_delay'].to_i)
24
+ Stat.instance.flush_counter = 0
25
+ end
16
26
  end
17
27
 
18
28
  def self.call filepath
data/lib/rforward/stat.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  class Stat
2
2
  include Singleton
3
- attr_accessor :success, :failed, :total, :files_total, :files_current
3
+ attr_accessor :success, :failed, :total, :files_total, :files_current, :flush_counter
4
4
 
5
5
  def initialize
6
- @success, @failed, @total, @files_total, @files_current = 0, 0, 0, 0, 0
6
+ @success, @failed, @total, @files_total, @files_current, @flush_counter = 0, 0, 0, 0, 0, 0
7
7
  end
8
8
 
9
9
  def to_s
@@ -1,3 +1,3 @@
1
1
  module Rforward
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.3"
3
3
  end
data/lib/rforward.rb CHANGED
@@ -3,6 +3,7 @@ require 'singleton'
3
3
  require 'yaml'
4
4
  require 'json'
5
5
  require 'dry-container'
6
+ require 'time'
6
7
  require "rforward/exceptions"
7
8
  require "rforward/stat"
8
9
  require "rforward/rlogger"
@@ -14,17 +15,19 @@ require 'thor'
14
15
 
15
16
  module Rforward
16
17
  class CLI < Thor
17
- desc "Process JSON logs into Fluentd Forward", ""
18
+ desc "process_logs", "Process JSON logs into Fluentd Forward"
18
19
  def process_logs path, ext=".log"
19
20
  check_config
20
21
  dependencies
21
22
  DirectoryProcessor.call path, ext
22
23
  RLogger.instance.info "#{path} logs extensions #{ext}"
24
+ puts "Work finidhed press any key"
25
+ STDIN.gets
23
26
  rescue ConfigNotFoundEx => e
24
27
  RLogger.instance.error e.message
25
28
  end
26
29
 
27
- desc "Create config file", ""
30
+ desc "create_config", "Create config file in current working directory"
28
31
  def create_config
29
32
  Config.instance.create_sample_config config_path
30
33
  rescue ConfigNotFoundEx => e
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rforward
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - gingray