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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 43c2f5fc8bf75c0af40a3919208e0a748750c91f
4
- data.tar.gz: f53957777188f757c6d2041d948ef92611d4d41b
3
+ metadata.gz: dedbea2515abecae45c05763127b1509151bb816
4
+ data.tar.gz: 4744f4e3f3d895767abbc7f7109d97e1552a2ef5
5
5
  SHA512:
6
- metadata.gz: 956ef5f6b0de51fb8ebab2c499c4d430e9dacdfbc55afc554ccbceb02a63feb186712d14738e887d1adac2a46c1973d29070b88079d2753d4e171a9fd6cdb7e3
7
- data.tar.gz: 9a3f51a3b530c992bd5e3121637f5511ce0008ce11e4c9151e73aeee323d4a83231eac62701e60f12b9d50211dd5348e3d6b51e22c367c2d4a7ba2fdc29dae59
6
+ metadata.gz: 98b2b1e536a047323d3353c63b73e5f0cdb1d6fd86196a1ca9942fd388dc6ed41f4f096387e9a1068bc86166c89652336130cf70236c9350fe074c61a73842ec
7
+ data.tar.gz: 5a345331cdf60692fa7264ba9632623c085e94e3fb67f258785d8b0244c044d7a1bd5d07f78f943331ade28fb08772f8f5a152dfdc70f932ebd9dbeb9cd31966
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "kurchatov", "= 0.4.3"
3
+ gem "kurchatov", "= 0.4.4"
4
4
  gem "beefcake", "=0.5.0"
5
5
  gem "sys-filesystem"
6
6
  gem "sys-proctable"
@@ -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.3)
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.3)
57
+ kurchatov (= 0.4.4)
58
58
  net-ntp
59
59
  net-ping
60
60
  parallel
@@ -1,3 +1,9 @@
1
+ riemann-client (1:0.4.4) stable; urgency=low
2
+
3
+ * Fix set time in event.
4
+
5
+ -- Undev DevOps Team <devops@undev.ru> Mon, 15 Dec 2014 20:08:12 +0300
6
+
1
7
  riemann-client (1:0.4.3) stable; urgency=low
2
8
 
3
9
  * Start without config file.
@@ -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 flush
15
- @events_to_send ||= events.to_flush
16
- if !@events_to_send.empty?
17
- @body = {
18
- :service => 'service-status',
19
- :message_type => 'riemann_client_message',
20
- :message => {:events => @events_to_send}
21
- }.to_json
22
- Log.debug("Send body: #{@body}")
23
- _, code = http_post(plugin.url, @body)
24
- Log.error("Response code: #{code} from #{plugin.url}") if code == 0 || code > 300
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
- @events_to_send = nil
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
@@ -1,3 +1,3 @@
1
1
  module Kurchatov
2
- VERSION = "0.4.4"
2
+ VERSION = "0.4.5"
3
3
  end
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
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-18 00:00:00.000000000 Z
11
+ date: 2015-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: beefcake