kurchatov 0.4.4 → 0.4.5

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 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