kurchatov 0.0.6.pre.5 → 0.0.6

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: 870ee3524e61a543f0239a9bc5d5e635b228e964
4
- data.tar.gz: 29c5ea749c45fea4391af9845ac57e112cb59bfa
3
+ metadata.gz: 5f75c8dca0ef451afb605c85dc75cb15e7669a3c
4
+ data.tar.gz: a2573401456215589913a562bf8a0b889f710fd9
5
5
  SHA512:
6
- metadata.gz: 1ae6eb277c085226329af0d2014042e0eae58447c1c0da53bb518236c19092a5d25a2368ee2d2a24bec892ff3cc67d485c1f106ee06076a23d119a25ef07caab
7
- data.tar.gz: 42af4c91a332ed6f1d99c1673578ff031b714e19b56f77fd13e35205d47240d6d7dfc784044bcbf7e2179f5834ce54fcad0526747b7eeb3b6849cf2ef3b618d4
6
+ metadata.gz: 64c933fb2783d2cddea9d370c82ac7e5044749c64a1e3441ab1c14bb91c0fc98fa174745d76562dc0c2e46a02e575329d5a084c75fbc8a4f0b4c0b068f9eb7a6
7
+ data.tar.gz: 554337927ac11c606708306d47e2ac5a78458dab25d10970b577e71799042abbccfe002fe0f3f43fa83ac03d8b374b002e497aef8c6924acf8fe84289d2983b1
data/.travis.yml CHANGED
@@ -4,4 +4,7 @@ language:
4
4
  - 'ruby'
5
5
  rvm:
6
6
  - '1.9.3'
7
+ - '1.8.7'
8
+ - '2.0.0'
9
+ - '2.1.0'
7
10
  script: "./tests/run.sh"
data/CHANGELOG CHANGED
@@ -3,3 +3,4 @@
3
3
  * Version 0.0.6.pre.2: :metric => boolean return integer
4
4
  * Version 0.0.6.pre.4: Required block for plugin
5
5
  * Version 0.0.6.pre.5: Improve http responder, add monitor
6
+ * Version 0.0.6: ruby 1.8.7 support
data/kurchatov.gemspec CHANGED
@@ -25,5 +25,4 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency 'rake'
26
26
  spec.add_development_dependency 'rspec'
27
27
  spec.add_development_dependency 'pry'
28
- spec.add_development_dependency 'ruby-prof'
29
28
  end
@@ -24,7 +24,7 @@ module Kurchatov
24
24
  hash[:metric] = hash[:metric].to_f if hash[:metric].kind_of?(String)
25
25
  if hash[:metric].kind_of?(Float)
26
26
  hash[:metric] = 0.0 if hash[:metric].nan?
27
- hash[:metric] = hash[:metric].round(2)
27
+ hash[:metric] = ((hash[:metric] * 100).round/100.to_f) # 1.8.7 round
28
28
  end
29
29
 
30
30
  set_diff_metric(hash)
@@ -1,6 +1,6 @@
1
- require_relative 'command'
2
- require_relative 'http'
3
- require_relative 'ohai'
4
- require_relative 'queue'
5
- require_relative 'event'
6
- require_relative 'monitor'
1
+ require 'kurchatov/mixin/command'
2
+ require 'kurchatov/mixin/http'
3
+ require 'kurchatov/mixin/ohai'
4
+ require 'kurchatov/mixin/queue'
5
+ require 'kurchatov/mixin/event'
6
+ require 'kurchatov/mixin/monitor'
@@ -4,14 +4,14 @@ module Kurchatov
4
4
  class Task
5
5
  include Kurchatov::Mixin::Event
6
6
  attr_accessor :thread, :instance
7
+ attr_reader :count_errors, :last_error, :last_error_at
7
8
 
8
9
  def initialize(plugin)
9
10
  @plugin = plugin
10
11
  @thread = Thread.new { @plugin.run }
11
- end
12
-
13
- def status
14
- !!@thread.alive?
12
+ @count_errors = 0
13
+ @last_error = nil
14
+ @last_error_at = nil
15
15
  end
16
16
 
17
17
  def name
@@ -22,8 +22,8 @@ module Kurchatov
22
22
  @plugin.class.to_s
23
23
  end
24
24
 
25
- def uptime
26
- @plugin.uptime
25
+ def config
26
+ @plugin.plugin_config
27
27
  end
28
28
 
29
29
  def died?
@@ -34,6 +34,9 @@ module Kurchatov
34
34
  rescue => e
35
35
  desc = "Plugin '#{@plugin.name}' died. #{e.class}: #{e}\n." +
36
36
  "Trace: #{e.backtrace.join("\n")}"
37
+ @count_errors += 1
38
+ @last_error = desc
39
+ @last_error_at = Time.now
37
40
  Log.error(desc)
38
41
  unless @plugin.ignore_errors
39
42
  event(:service => 'riemann client errors', :desc => desc, :state => 'critical')
@@ -67,7 +70,14 @@ module Kurchatov
67
70
  end
68
71
 
69
72
  def inspect
70
- @tasks.map {|t| {name: t.name, alive: t.status, type: t.type, uptime: t.uptime} }
73
+ @tasks.map do |t|
74
+ {
75
+ "name" => t.name,
76
+ "type" => t.type,
77
+ "config" => t.config,
78
+ "errors" => {"count" => t.count_errors, "last" => t.last_error, "time" => t.last_error_at}
79
+ }
80
+ end
71
81
  end
72
82
 
73
83
  end
@@ -25,6 +25,10 @@ module Kurchatov
25
25
  @interval = 60.0
26
26
  end
27
27
 
28
+ def plugin_config
29
+ plugin
30
+ end
31
+
28
32
  def run
29
33
  super
30
34
  loop do
@@ -10,12 +10,9 @@ module Kurchatov
10
10
  end
11
11
 
12
12
  def run
13
- @t_start = Time.now
13
+ #
14
14
  end
15
15
 
16
- def uptime
17
- Time.now.to_i - @t_start.to_i
18
- end
19
16
 
20
17
  end
21
18
  end
@@ -10,6 +10,10 @@ module Kurchatov
10
10
  @s_time = Time.now
11
11
  end
12
12
 
13
+ def plugin_config
14
+ {:host => @host, :port => @port}
15
+ end
16
+
13
17
  def run
14
18
  super
15
19
  @server ||= TCPServer.new(@host, @port)
@@ -1,3 +1,3 @@
1
- require_relative 'http'
2
- require_relative 'riemann'
3
- require_relative 'udp'
1
+ require 'kurchatov/responders/http'
2
+ require 'kurchatov/responders/riemann'
3
+ require 'kurchatov/responders/udp'
@@ -9,10 +9,15 @@ module Kurchatov
9
9
  FLUSH_INTERVAL = 0.5
10
10
 
11
11
  def initialize(conn)
12
+ @ignore_errors = true
12
13
  @hosts = conn
13
14
  @riemanns = Array.new
14
15
  end
15
16
 
17
+ def plugin_config
18
+ {:hosts => @hosts}
19
+ end
20
+
16
21
  def run
17
22
  super
18
23
  make_clients
@@ -9,6 +9,9 @@ module Kurchatov
9
9
  @name = "udp responder #{@host}:#{@port}"
10
10
  end
11
11
 
12
+ def plugin_config
13
+ {:host => @host, :port => @port}
14
+ end
12
15
 
13
16
  def run
14
17
  super
@@ -1,3 +1,3 @@
1
1
  module Kurchatov
2
- VERSION = "0.0.6.pre.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/tests/data/event.yml CHANGED
@@ -41,3 +41,14 @@ events:
41
41
  :critical: 10
42
42
  :result: critical
43
43
  :service: Http get test
44
+
45
+ - :eval: 'rest_get("http://127.0.0.1:55755").size'
46
+ :critical: 1
47
+ :result: critical
48
+ :service: Http responder
49
+
50
+ - :metric: 0.98
51
+ :critical: 2
52
+ :warning: 1
53
+ :result: ok
54
+ :service: round float
data/tests/run.sh CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/bin/sh -e
2
2
  bundle exec ruby ./tests/server.rb &
3
- bundle exec kurchatov -c ./tests/data/config.yml -d ./tests/data -H 127.0.0.1 --stop-on-error
3
+ bundle exec kurchatov -c ./tests/data/config.yml -d ./tests/data -H 127.0.0.1 --stop-on-error --http 127.0.0.1:55755
data/tests/server.rb CHANGED
@@ -5,7 +5,7 @@ require 'yaml'
5
5
 
6
6
  PORT = 5555
7
7
  HOST = '127.0.0.1'
8
- RECEIVE_INTERVAL = 20
8
+ RECEIVE_INTERVAL = 60
9
9
 
10
10
  server = TCPServer.new(HOST, PORT)
11
11
  events = []
@@ -15,7 +15,7 @@ Timeout::timeout(RECEIVE_INTERVAL) {
15
15
  client = server.accept
16
16
  loop do
17
17
  line = client.read(4)
18
- break if line.nil? || line.size != 4
18
+ break if line.nil? || line.size != 4
19
19
  length = line.unpack('N').first
20
20
  str = client.read(length)
21
21
  message = Kurchatov::Riemann::Message.decode(str)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kurchatov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6.pre.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasiliev Dmitry
@@ -94,20 +94,6 @@ dependencies:
94
94
  - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: ruby-prof
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - '>='
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
97
  description: Gem for monitoring with riemann.
112
98
  email:
113
99
  - vadv.mkn@gmail.com
@@ -222,9 +208,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
222
208
  version: '0'
223
209
  required_rubygems_version: !ruby/object:Gem::Requirement
224
210
  requirements:
225
- - - '>'
211
+ - - '>='
226
212
  - !ruby/object:Gem::Version
227
- version: 1.3.1
213
+ version: '0'
228
214
  requirements: []
229
215
  rubyforge_project:
230
216
  rubygems_version: 2.0.3