kurchatov 0.4.4 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/Gemfile +1 -1
- data/app/Gemfile.lock +2 -2
- data/debian/changelog +6 -0
- data/lib/kurchatov/responders/http_transport.rb +57 -13
- data/lib/kurchatov/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dedbea2515abecae45c05763127b1509151bb816
|
4
|
+
data.tar.gz: 4744f4e3f3d895767abbc7f7109d97e1552a2ef5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98b2b1e536a047323d3353c63b73e5f0cdb1d6fd86196a1ca9942fd388dc6ed41f4f096387e9a1068bc86166c89652336130cf70236c9350fe074c61a73842ec
|
7
|
+
data.tar.gz: 5a345331cdf60692fa7264ba9632623c085e94e3fb67f258785d8b0244c044d7a1bd5d07f78f943331ade28fb08772f8f5a152dfdc70f932ebd9dbeb9cd31966
|
data/app/Gemfile
CHANGED
data/app/Gemfile.lock
CHANGED
@@ -14,7 +14,7 @@ GEM
|
|
14
14
|
file-tail (1.0.12)
|
15
15
|
tins (~> 0.5)
|
16
16
|
ipaddress (0.8.0)
|
17
|
-
kurchatov (0.4.
|
17
|
+
kurchatov (0.4.4)
|
18
18
|
beefcake (>= 0.3.5)
|
19
19
|
ohai
|
20
20
|
libyajl2 (1.0.1)
|
@@ -54,7 +54,7 @@ DEPENDENCIES
|
|
54
54
|
beefcake (= 0.5.0)
|
55
55
|
ffi-rzmq
|
56
56
|
file-tail
|
57
|
-
kurchatov (= 0.4.
|
57
|
+
kurchatov (= 0.4.4)
|
58
58
|
net-ntp
|
59
59
|
net-ping
|
60
60
|
parallel
|
data/debian/changelog
CHANGED
@@ -4,6 +4,8 @@ always_start true
|
|
4
4
|
ignore_errors true
|
5
5
|
|
6
6
|
default[:url] = Kurchatov::Config[:http_transport]
|
7
|
+
default[:max_size] = 7000
|
8
|
+
default[:retry] = 3
|
7
9
|
|
8
10
|
run_if do
|
9
11
|
!!plugin.url
|
@@ -11,23 +13,65 @@ end
|
|
11
13
|
|
12
14
|
helpers do
|
13
15
|
|
14
|
-
def
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
16
|
+
def body(events = [])
|
17
|
+
{ :service => 'service-status',
|
18
|
+
:message_type => 'riemann_client_message',
|
19
|
+
:message => {:events => events} }.to_json
|
20
|
+
end
|
21
|
+
|
22
|
+
def cut_events(events = [])
|
23
|
+
events.map {|event| event[:description] = ""}
|
24
|
+
end
|
25
|
+
|
26
|
+
# отправляет сообщение с retry
|
27
|
+
def send(http_body = "")
|
28
|
+
count = 0
|
29
|
+
while (count < plugin.retry)
|
30
|
+
Log.debug("Send http_body [#{http_body.size}]: #{http_body}")
|
31
|
+
_, code = http_post(plugin.url, http_body)
|
32
|
+
# если неудачно, пробуем еще раз
|
33
|
+
if (code == 0 || code > 300)
|
34
|
+
Log.error("Response code: #{code} from #{plugin.url}")
|
35
|
+
count+=1
|
36
|
+
else
|
37
|
+
return
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# отправляем если только размер не превышает максимального
|
43
|
+
def safe_send(http_body = "")
|
44
|
+
if http_body.size > plugin.max_size
|
45
|
+
return false
|
25
46
|
end
|
26
|
-
|
47
|
+
send(http_body)
|
48
|
+
return true
|
49
|
+
end
|
50
|
+
|
51
|
+
# отсылем сообщения
|
52
|
+
def safe_send_events(events = [])
|
53
|
+
return if (events.nil? || events.size == 0)
|
54
|
+
debt_event = []
|
55
|
+
until safe_send(body(events))
|
56
|
+
if events.size > 1
|
57
|
+
debt_event << events.pop
|
58
|
+
else
|
59
|
+
# одно сообщение не пролазит
|
60
|
+
Log.error("Drop message because its too big")
|
61
|
+
end
|
62
|
+
end
|
63
|
+
Log.debug("Ok, #{events.size} events sended, and #{debt_event.size} events in debet")
|
64
|
+
safe_send_events(debt_event) if debt_event.size > 0
|
65
|
+
end
|
66
|
+
|
67
|
+
def flush
|
68
|
+
@events_queue ||= events.to_flush
|
69
|
+
safe_send_events(@events_queue) if !@events_queue.nil?
|
70
|
+
@events_queue = nil
|
27
71
|
end
|
28
72
|
|
29
73
|
end
|
30
74
|
|
31
75
|
run do
|
32
76
|
loop { flush; sleep 1 }
|
33
|
-
end
|
77
|
+
end
|
data/lib/kurchatov/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kurchatov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vasiliev Dmitry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: beefcake
|