mogilefsd_log_tailer 0.0.2 → 1.0.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 +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/lib/mogilefsd_log_tailer/tail_handler.rb +47 -7
- data/lib/mogilefsd_log_tailer/version.rb +1 -1
- data/lib/mogilefsd_log_tailer.rb +14 -7
- metadata +24 -19
- data/.rvmrc +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6ac2358edf4f8ae9b0e8944ba6e4ba18926d2ca4
|
4
|
+
data.tar.gz: a97abc1cc84f5ddcb0ebc11dda07e52ccd3d7d51
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7f05d4b54a77db3116a41755b0b4b9835e3e1eeaf4844748471116dc97f5d5f1835acd418c2e45c03f6cd87d1f4a795f3f3506bba5d1a6f9fa5885f5304c6729
|
7
|
+
data.tar.gz: 1170e69666135d4c0b1f86a95cc0ade2b7d25b39d2e8e51ae05a6a148b97432a2f8e81036b34fe0d8f2524d4b29cab5bcc724790488a4efe2353d424540919d5
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
mlt
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-2.1
|
@@ -1,21 +1,35 @@
|
|
1
1
|
require 'eventmachine'
|
2
|
+
require 'socket'
|
2
3
|
|
3
4
|
module MogilefsdLogTailer
|
4
5
|
class TailHandler < EventMachine::Connection
|
5
|
-
def initialize(hostname,
|
6
|
+
def initialize(hostname, port, file)
|
6
7
|
@hostname = hostname
|
8
|
+
@port = port.to_i
|
7
9
|
@received_data = ''
|
8
|
-
|
9
|
-
|
10
|
-
@file = $stdout
|
11
|
-
else
|
12
|
-
@file = File.open(filename, 'wb')
|
13
|
-
end
|
10
|
+
@file = file
|
11
|
+
@reconnect_wait = 1
|
14
12
|
end
|
15
13
|
|
16
14
|
def post_init
|
17
15
|
@received_data = ''
|
16
|
+
# pn = get_peername
|
17
|
+
# if pn.nil?
|
18
|
+
# @port, @ip = [ "unknown", -1 ]
|
19
|
+
# else
|
20
|
+
# @port, @ip = Socket.unpack_sockaddr_in(get_peername)
|
21
|
+
# end
|
22
|
+
rescue
|
23
|
+
$stderr.puts "Exception in post_init: %s (%p)\n\t%s" %
|
24
|
+
[ $!.message, $!.class, $!.backtrace.join("\n\t") ]
|
25
|
+
end
|
26
|
+
|
27
|
+
def connection_completed
|
18
28
|
send_data("!watch\r\n")
|
29
|
+
@reconnect_wait = 1
|
30
|
+
rescue
|
31
|
+
$stderr.puts "Exception in connection_completed: %s (%p)\n\t%s" %
|
32
|
+
[ $!.message, $!.class, $!.backtrace.join("\n\t") ]
|
19
33
|
end
|
20
34
|
|
21
35
|
def receive_data(data)
|
@@ -35,6 +49,32 @@ module MogilefsdLogTailer
|
|
35
49
|
else
|
36
50
|
@received_data << data
|
37
51
|
end
|
52
|
+
rescue
|
53
|
+
$stderr.puts "Exception in receive_data: %s (%p)\n\t%s" %
|
54
|
+
[ $!.message, $!.class, $!.backtrace.join("\n\t") ]
|
55
|
+
end
|
56
|
+
|
57
|
+
def unbind
|
58
|
+
print_log_entry "[mogilefsd_log_tailer] Connection closed to #{@hostname}:#{@port}, reconnecting after #{@reconnect_wait} seconds."
|
59
|
+
EventMachine::Timer.new(@reconnect_wait) do
|
60
|
+
print_log_entry "[mogilefsd_log_tailer] Reconnecting to #{@hostname}:#{@port}..."
|
61
|
+
reconnect(@hostname, @port)
|
62
|
+
end
|
63
|
+
|
64
|
+
@reconnect_wait *= 2
|
65
|
+
if @reconnect_wait > 120
|
66
|
+
@reconnect_wait = 120
|
67
|
+
end
|
68
|
+
|
69
|
+
# print_log_entry "[mogilefsd_log_tailer] Giving up on #{@hostname}:#{@port}"
|
70
|
+
# EventMachine::Timer.new(0.5) do
|
71
|
+
# if EventMachine.connection_count == 0
|
72
|
+
# EventMachine.stop_event_loop
|
73
|
+
# end
|
74
|
+
# end
|
75
|
+
rescue
|
76
|
+
$stderr.puts "Exception in unbind: %s (%p)\n\t%s" %
|
77
|
+
[ $!.message, $!.class, $!.backtrace.join("\n\t") ]
|
38
78
|
end
|
39
79
|
|
40
80
|
def print_log_entry(line)
|
data/lib/mogilefsd_log_tailer.rb
CHANGED
@@ -40,24 +40,31 @@ module MogilefsdLogTailer
|
|
40
40
|
def self.run
|
41
41
|
hosts, options = parse_options!
|
42
42
|
|
43
|
+
log_file = $stdout
|
43
44
|
log_dir = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
45
|
+
|
44
46
|
if options[:filename]
|
45
47
|
log_dir = File.dirname(options[:filename])
|
46
48
|
end
|
47
49
|
|
48
50
|
if options[:daemonize]
|
49
|
-
Daemons.daemonize(
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
)
|
51
|
+
Daemons.daemonize({
|
52
|
+
:app_name => 'mogilefsd_tail',
|
53
|
+
:dir_mode => :normal,
|
54
|
+
:dir => log_dir,
|
55
|
+
:log_output => true,
|
56
|
+
})
|
57
|
+
end
|
58
|
+
|
59
|
+
if options[:filename]
|
60
|
+
log_file = File.open(options[:filename], 'ab')
|
55
61
|
end
|
56
62
|
|
57
63
|
EventMachine.run do
|
58
64
|
hosts.each do |hp|
|
59
65
|
host, port = hp.split(':')
|
60
|
-
EventMachine.connect(host, port.to_i,
|
66
|
+
EventMachine.connect(host, port.to_i,
|
67
|
+
TailHandler, host, port.to_i, log_file)
|
61
68
|
end
|
62
69
|
end
|
63
70
|
end
|
metadata
CHANGED
@@ -1,38 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mogilefsd_log_tailer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Andrew Watts
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-10-01 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: daemons
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: eventmachine
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - ">="
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
description: Script to do "tail -f" on the "!watch" output from several MogileFS trackers.
|
37
42
|
email:
|
38
43
|
- ahwatts@gmail.com
|
@@ -41,8 +46,9 @@ executables:
|
|
41
46
|
extensions: []
|
42
47
|
extra_rdoc_files: []
|
43
48
|
files:
|
44
|
-
- .gitignore
|
45
|
-
- .
|
49
|
+
- ".gitignore"
|
50
|
+
- ".ruby-gemset"
|
51
|
+
- ".ruby-version"
|
46
52
|
- Gemfile
|
47
53
|
- Gemfile.lock
|
48
54
|
- Rakefile
|
@@ -53,26 +59,25 @@ files:
|
|
53
59
|
- mogilefsd_log_tailer.gemspec
|
54
60
|
homepage: ''
|
55
61
|
licenses: []
|
62
|
+
metadata: {}
|
56
63
|
post_install_message:
|
57
64
|
rdoc_options: []
|
58
65
|
require_paths:
|
59
66
|
- lib
|
60
67
|
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
68
|
requirements:
|
63
|
-
- -
|
69
|
+
- - ">="
|
64
70
|
- !ruby/object:Gem::Version
|
65
71
|
version: '0'
|
66
72
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
73
|
requirements:
|
69
|
-
- -
|
74
|
+
- - ">="
|
70
75
|
- !ruby/object:Gem::Version
|
71
76
|
version: '0'
|
72
77
|
requirements: []
|
73
78
|
rubyforge_project: mogilefsd_log_tailer
|
74
|
-
rubygems_version:
|
79
|
+
rubygems_version: 2.2.2
|
75
80
|
signing_key:
|
76
|
-
specification_version:
|
81
|
+
specification_version: 4
|
77
82
|
summary: Script to do "tail -f" on the "!watch" output from several MogileFS trackers.
|
78
83
|
test_files: []
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm 1.9.2@mlt
|