pimon 0.1.4 → 0.1.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.
- data/Gemfile +0 -2
- data/Gemfile.lock +0 -4
- data/README.md +3 -8
- data/config/default.yml +1 -10
- data/config/test.yml +0 -2
- data/config/test_broken.yml +0 -10
- data/lib/pimon.rb +5 -6
- data/lib/pimon/pimon_config.rb +1 -42
- data/lib/pimon/probe/time_check.rb +11 -0
- data/lib/pimon/stats.rb +25 -0
- data/lib/pimon/stats_collector.rb +20 -14
- data/lib/pimon/version.rb +1 -1
- data/pimon.gemspec +2 -5
- data/spec/pimon_config_spec.rb +0 -11
- data/spec/stats_collector_spec.rb +16 -17
- metadata +6 -56
- data/bin/clean_redis_stats +0 -1
data/Gemfile
CHANGED
@@ -2,7 +2,6 @@ source :rubygems
|
|
2
2
|
|
3
3
|
gem 'capistrano'
|
4
4
|
gem 'haml'
|
5
|
-
gem 'redis'
|
6
5
|
gem 'sinatra', :require => 'sinatra/base'
|
7
6
|
gem 'sinatra-websocket', '~> 0.2.0'
|
8
7
|
gem 'thin', '~> 1.5.0'
|
@@ -10,7 +9,6 @@ gem 'thin', '~> 1.5.0'
|
|
10
9
|
gem 'pry', :group => [:development, :test]
|
11
10
|
|
12
11
|
group :test do
|
13
|
-
gem 'mock_redis', '~> 0.5.0'
|
14
12
|
gem 'rack-test'
|
15
13
|
gem 'rspec', '~> 2.11.0'
|
16
14
|
gem 'simplecov', :require => false
|
data/Gemfile.lock
CHANGED
@@ -19,7 +19,6 @@ GEM
|
|
19
19
|
highline (1.6.15)
|
20
20
|
jruby-pageant (1.1.1)
|
21
21
|
method_source (0.8)
|
22
|
-
mock_redis (0.5.2)
|
23
22
|
multi_json (1.3.6)
|
24
23
|
net-scp (1.0.4)
|
25
24
|
net-ssh (>= 1.99.1)
|
@@ -38,7 +37,6 @@ GEM
|
|
38
37
|
rack
|
39
38
|
rack-test (0.6.2)
|
40
39
|
rack (>= 1.0)
|
41
|
-
redis (3.0.2)
|
42
40
|
rspec (2.11.0)
|
43
41
|
rspec-core (~> 2.11.0)
|
44
42
|
rspec-expectations (~> 2.11.0)
|
@@ -75,10 +73,8 @@ PLATFORMS
|
|
75
73
|
DEPENDENCIES
|
76
74
|
capistrano
|
77
75
|
haml
|
78
|
-
mock_redis (~> 0.5.0)
|
79
76
|
pry
|
80
77
|
rack-test
|
81
|
-
redis
|
82
78
|
rspec (~> 2.11.0)
|
83
79
|
simplecov
|
84
80
|
simplecov-rcov
|
data/README.md
CHANGED
@@ -6,23 +6,18 @@
|
|
6
6
|
|
7
7
|
## Description
|
8
8
|
Pimon is a simple server monitor designed for the Raspberry Pi.
|
9
|
-
It uses redis lists to keep the latest observed statistics and also uses
|
10
|
-
highcharts to display some nice charts on your web browser.
|
11
9
|
|
12
10
|
## What do I need to get it to work?
|
13
11
|
1. Clone this repo: git clone git://github.com/pedrocarrico/pimon.git
|
14
|
-
2.
|
15
|
-
3.
|
16
|
-
4.
|
17
|
-
5. go to http://localhost:3000 and PROFIT!
|
12
|
+
2. bundle
|
13
|
+
3. bin/pimon start # run the sinatra app
|
14
|
+
4. go to http://localhost:3000 and PROFIT!
|
18
15
|
Optionally you may install it as a gem and run it, please check "Installing as a gem" further down.
|
19
16
|
|
20
17
|
## Configuration
|
21
18
|
Configuration is done through a YAML file, you may check some examples on the config directory.
|
22
19
|
|
23
|
-
1. redis - location of the redis socket
|
24
20
|
2. chart - colors for each chart
|
25
|
-
3. queues - redis list names for the series in the charts
|
26
21
|
4. stats_collector - configure number of stats and time period between them
|
27
22
|
|
28
23
|
## Installing as a gem
|
data/config/default.yml
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
redis:
|
2
|
-
socket: /tmp/redis.sock
|
3
1
|
chart:
|
4
2
|
cpu:
|
5
3
|
color: '#D2691E'
|
@@ -11,13 +9,6 @@ chart:
|
|
11
9
|
color: '#FF9B04'
|
12
10
|
swap:
|
13
11
|
color: '#3CB371'
|
14
|
-
queues:
|
15
|
-
time: pimon_time
|
16
|
-
cpu: pimon_cpu
|
17
|
-
disk: pimon_disk
|
18
|
-
mem: pimon_mem
|
19
|
-
swap: pimon_swap
|
20
|
-
temp: pimon_temp
|
21
12
|
stats_collector:
|
22
13
|
number_of_stats: 6
|
23
|
-
|
14
|
+
time_period_in_secs: 30
|
data/config/test.yml
CHANGED
data/config/test_broken.yml
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
basic_auth:
|
2
|
-
enabled: true
|
3
|
-
redis:
|
4
|
-
socket: /thou/shalt/not/use/redis/on/test/environment
|
5
1
|
chart:
|
6
2
|
cpu:
|
7
3
|
color: '#D2691E'
|
@@ -11,12 +7,6 @@ chart:
|
|
11
7
|
color: '#87CEFA'
|
12
8
|
swap:
|
13
9
|
color: '#3CB371'
|
14
|
-
queues:
|
15
|
-
time: pimon_time
|
16
|
-
cpu: pimon_cpu
|
17
|
-
disk: pimon_disk
|
18
|
-
mem: pimon_mem
|
19
|
-
swap: pimon_swap
|
20
10
|
stats_collector:
|
21
11
|
number_of_stats: 6
|
22
12
|
time_period_in_min: 10
|
data/lib/pimon.rb
CHANGED
@@ -18,12 +18,11 @@ class Pimon < Sinatra::Base
|
|
18
18
|
set :sockets, []
|
19
19
|
|
20
20
|
configure :development, :production do
|
21
|
-
require 'redis'
|
22
21
|
filename = "#{File.dirname(__FILE__)}/../config/default.yml"
|
23
22
|
config = PimonConfig.create_new(ENV['PIMON_CONFIG'] || filename)
|
24
23
|
|
25
24
|
EventMachine::next_tick do
|
26
|
-
settings.timer = EventMachine::add_periodic_timer(config.stats[:
|
25
|
+
settings.timer = EventMachine::add_periodic_timer(config.stats[:time_period_in_secs]) do
|
27
26
|
settings.stats_checker.collect_stats
|
28
27
|
@stats = settings.stats_checker.show_stats
|
29
28
|
|
@@ -32,20 +31,20 @@ class Pimon < Sinatra::Base
|
|
32
31
|
end
|
33
32
|
|
34
33
|
set :config, config
|
35
|
-
set :stats_checker, StatsCollector.new(config
|
34
|
+
set :stats_checker, StatsCollector.new(config)
|
36
35
|
set :timer, nil
|
37
36
|
|
37
|
+
settings.stats_checker.collect_stats
|
38
|
+
@stats = settings.stats_checker.show_stats
|
38
39
|
end
|
39
40
|
|
40
41
|
configure :test do
|
41
|
-
require 'mock_redis'
|
42
42
|
|
43
43
|
config = PimonConfig.create_new("#{File.dirname(__FILE__)}/../config/test.yml")
|
44
44
|
|
45
45
|
set :config, config
|
46
|
-
set :stats_checker, StatsCollector.new(config
|
46
|
+
set :stats_checker, StatsCollector.new(config)
|
47
47
|
set :timer, nil
|
48
|
-
|
49
48
|
end
|
50
49
|
|
51
50
|
get '/' do
|
data/lib/pimon/pimon_config.rb
CHANGED
@@ -3,45 +3,17 @@ require 'yaml'
|
|
3
3
|
|
4
4
|
class PimonConfig
|
5
5
|
def self.create_new(filename)
|
6
|
-
|
7
|
-
|
8
|
-
return config if config.valid?
|
9
|
-
end
|
10
|
-
|
11
|
-
def basic_auth
|
12
|
-
if is_basic_auth_enabled? && has_authentication_details?
|
13
|
-
[@config[:basic_auth][:username], @config[:basic_auth][:password]]
|
14
|
-
else
|
15
|
-
nil
|
16
|
-
end
|
6
|
+
return self.new(filename)
|
17
7
|
end
|
18
8
|
|
19
9
|
def chart
|
20
10
|
@config[:chart]
|
21
11
|
end
|
22
12
|
|
23
|
-
def is_basic_auth_enabled?
|
24
|
-
@config[:basic_auth][:enabled]
|
25
|
-
end
|
26
|
-
|
27
|
-
def queues
|
28
|
-
@config[:queues]
|
29
|
-
end
|
30
|
-
|
31
|
-
def redis
|
32
|
-
@config[:redis]
|
33
|
-
end
|
34
|
-
|
35
13
|
def stats
|
36
14
|
@config[:stats_collector]
|
37
15
|
end
|
38
16
|
|
39
|
-
def valid?
|
40
|
-
raise "Basic auth enabled with no authentication details" if is_basic_auth_enabled? && !has_authentication_details?
|
41
|
-
raise "Redis has no socket details" unless has_redis_details?
|
42
|
-
true
|
43
|
-
end
|
44
|
-
|
45
17
|
private
|
46
18
|
|
47
19
|
def initialize(filename)
|
@@ -53,17 +25,4 @@ class PimonConfig
|
|
53
25
|
raise e
|
54
26
|
end
|
55
27
|
end
|
56
|
-
|
57
|
-
def has_authentication_details?
|
58
|
-
@config[:basic_auth].has_key?(:username) && @config[:basic_auth].has_key?(:password)
|
59
|
-
end
|
60
|
-
|
61
|
-
def has_redis_details?
|
62
|
-
# Thou shalt not use a live redis in test environment
|
63
|
-
is_test_environment? || (@config.has_key?(:redis) && @config[:redis].has_key?(:socket))
|
64
|
-
end
|
65
|
-
|
66
|
-
def is_test_environment?
|
67
|
-
@config[:environment] == 'test'
|
68
|
-
end
|
69
28
|
end
|
data/lib/pimon/stats.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
class Stats
|
2
|
+
|
3
|
+
def initialize(queues)
|
4
|
+
@stats = {}
|
5
|
+
queues.each do |queue|
|
6
|
+
@stats[queue] = []
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def index(queue, index)
|
11
|
+
@stats[queue][index]
|
12
|
+
end
|
13
|
+
|
14
|
+
def push(queue, value)
|
15
|
+
@stats[queue].push(value)
|
16
|
+
end
|
17
|
+
|
18
|
+
def shift(queue)
|
19
|
+
@stats[queue].shift
|
20
|
+
end
|
21
|
+
|
22
|
+
def range(queue)
|
23
|
+
@stats[queue]
|
24
|
+
end
|
25
|
+
end
|
@@ -4,45 +4,52 @@ require 'pimon/probe/cpu_usage'
|
|
4
4
|
require 'pimon/probe/disk_usage'
|
5
5
|
require 'pimon/probe/memory_usage'
|
6
6
|
require 'pimon/probe/swap_usage'
|
7
|
+
require 'pimon/probe/time_check'
|
7
8
|
require 'pimon/probe/temperature'
|
9
|
+
require 'pimon/stats'
|
8
10
|
|
9
11
|
class StatsCollector
|
10
|
-
def initialize(config
|
12
|
+
def initialize(config)
|
11
13
|
@config = config
|
12
|
-
@
|
13
|
-
|
14
|
+
@probes = [
|
15
|
+
Probe::TimeCheck,
|
16
|
+
Probe::CpuUsage,
|
17
|
+
Probe::MemoryUsage,
|
18
|
+
Probe::SwapUsage,
|
19
|
+
Probe::DiskUsage,
|
20
|
+
Probe::Temperature
|
21
|
+
]
|
22
|
+
@stats = Stats.new(@probes.map(&:symbol).concat([:time]))
|
14
23
|
end
|
15
24
|
|
16
25
|
def collect_stats
|
17
26
|
pop_old_stats
|
18
27
|
|
19
|
-
@redis.rpush(@config.queues[:time], Time.now.strftime("%Y-%m-%d %H:%M:%S"))
|
20
28
|
@probes.each do |probe|
|
21
|
-
@
|
29
|
+
@stats.push(probe.symbol, probe.check)
|
22
30
|
end
|
23
31
|
end
|
24
32
|
|
25
33
|
def last_update
|
26
|
-
time = @
|
34
|
+
time = @stats.index(:time, @config.stats[:number_of_stats] - 1)
|
27
35
|
|
28
36
|
DateTime.parse(time) if time
|
29
37
|
end
|
30
38
|
|
31
39
|
def show_stats
|
32
|
-
time = @
|
40
|
+
time = @stats.range(:time)
|
33
41
|
|
34
42
|
stats = {
|
35
|
-
:time => { :stats => time.map { |t| (/\d\d:\d\d:\d\d/.match(t))[0] } }
|
36
|
-
:refresh_interval_in_millis => @config.stats[:time_period_in_min] * 60 * 1000
|
43
|
+
:time => { :stats => time.map { |t| (/\d\d:\d\d:\d\d/.match(t))[0] } }
|
37
44
|
}
|
38
45
|
|
39
46
|
@probes.each do |probe|
|
40
47
|
stats[probe.symbol] =
|
41
48
|
{
|
42
|
-
:stats => @
|
49
|
+
:stats => @stats.range(probe.symbol).map(&:to_i),
|
43
50
|
:color => @config.chart[probe.symbol][:color],
|
44
51
|
:unit => probe.unit
|
45
|
-
}
|
52
|
+
} unless probe.symbol == :time
|
46
53
|
end
|
47
54
|
|
48
55
|
stats.to_json
|
@@ -51,12 +58,11 @@ class StatsCollector
|
|
51
58
|
private
|
52
59
|
|
53
60
|
def pop_all_queues
|
54
|
-
@
|
55
|
-
@probes.each { |probe| @redis.lpop(@config.queues[probe.symbol]) }
|
61
|
+
@probes.each { |probe| @stats.shift(probe.symbol) }
|
56
62
|
end
|
57
63
|
|
58
64
|
def pop_old_stats
|
59
|
-
queue_size = @
|
65
|
+
queue_size = @stats.range(:time).length
|
60
66
|
|
61
67
|
if queue_size >= @config.stats[:number_of_stats]
|
62
68
|
(queue_size - @config.stats[:number_of_stats] + 1).times { pop_all_queues }
|
data/lib/pimon/version.rb
CHANGED
data/pimon.gemspec
CHANGED
@@ -10,8 +10,8 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.email = [ 'pedro.carrico@gmail.com' ]
|
11
11
|
s.homepage = 'http://pimon.pedrocarrico.net/'
|
12
12
|
s.summary = 'Pimon - Raspberry Pi server monitor'
|
13
|
-
s.description = 'Pimon is a simple server monitor designed for the Raspberry Pi.
|
14
|
-
s.post_install_message = '
|
13
|
+
s.description = 'Pimon is a simple server monitor designed for the Raspberry Pi.'
|
14
|
+
s.post_install_message = 'Thank you for using Pimon :-)'
|
15
15
|
|
16
16
|
s.required_ruby_version = '>= 1.9'
|
17
17
|
|
@@ -21,14 +21,11 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.require_paths = ['lib']
|
22
22
|
|
23
23
|
s.add_runtime_dependency 'haml', '~> 3.1.7'
|
24
|
-
s.add_runtime_dependency 'redis', '~> 3.0.1'
|
25
24
|
s.add_runtime_dependency 'sinatra', '~> 1.3.2'
|
26
25
|
s.add_runtime_dependency 'sinatra-websocket', '~> 0.2.0'
|
27
26
|
s.add_runtime_dependency 'thin', '~> 1.5.0'
|
28
27
|
|
29
28
|
s.add_development_dependency 'rack-test', '~> 0'
|
30
|
-
s.add_development_dependency 'mock_redis', '~> 0.5.0'
|
31
|
-
s.add_development_dependency 'rspec', '~> 2.11.0'
|
32
29
|
s.add_development_dependency 'simplecov'
|
33
30
|
s.add_development_dependency 'simplecov-rcov'
|
34
31
|
s.add_development_dependency 'timecop'
|
data/spec/pimon_config_spec.rb
CHANGED
@@ -4,13 +4,8 @@ describe 'PimonConfig' do
|
|
4
4
|
context 'when created for the test environment' do
|
5
5
|
subject { PimonConfig.create_new("#{File.dirname(__FILE__)}/../config/test.yml") }
|
6
6
|
|
7
|
-
its(:basic_auth) { should == ['pimon', 'pimon'] }
|
8
7
|
its(:chart) { should == { :cpu => { :color => '#D2691E' }, :disk => { :color => '#CDC673' }, :mem => { :color => '#87CEFA' }, :temp => {:color=>"#FF9B04"}, :swap => { :color => '#3CB371' } } }
|
9
|
-
its(:is_basic_auth_enabled?) { should be_true }
|
10
|
-
its(:queues) { should == { :time => 'pimon_time', :cpu => 'pimon_cpu', :disk => 'pimon_disk', :mem => 'pimon_mem', :temp => 'pimon_temp', :swap => 'pimon_swap' } }
|
11
|
-
its(:redis) { should == { :socket => '/thou/shalt/not/use/redis/on/test/environment' } }
|
12
8
|
its(:stats) { should == { :number_of_stats => 6, :time_period_in_min => 10 } }
|
13
|
-
its(:valid?) { should be_true }
|
14
9
|
end
|
15
10
|
|
16
11
|
context 'when created with an invalid environment' do
|
@@ -18,10 +13,4 @@ describe 'PimonConfig' do
|
|
18
13
|
expect{ PimonConfig.create_new('invalid') }.to raise_error(Errno::ENOENT)
|
19
14
|
end
|
20
15
|
end
|
21
|
-
|
22
|
-
context 'when created with a broken environment configuration with basic_auth enabled but no username/password' do
|
23
|
-
it 'should raise an error' do
|
24
|
-
expect{ PimonConfig.create_new("#{File.dirname(__FILE__)}/../config/test_broken.yml") }.to raise_error(RuntimeError)
|
25
|
-
end
|
26
|
-
end
|
27
16
|
end
|
@@ -4,9 +4,9 @@ require 'spec_helper'
|
|
4
4
|
require 'json'
|
5
5
|
|
6
6
|
describe 'StatsCollector' do
|
7
|
-
context 'when new with a valid config
|
7
|
+
context 'when new with a valid config' do
|
8
8
|
before do
|
9
|
-
@stats_collector = StatsCollector.new(PimonConfig.create_new("#{File.dirname(__FILE__)}/../config/test.yml")
|
9
|
+
@stats_collector = StatsCollector.new(PimonConfig.create_new("#{File.dirname(__FILE__)}/../config/test.yml"))
|
10
10
|
end
|
11
11
|
subject { @stats_collector }
|
12
12
|
|
@@ -22,14 +22,13 @@ describe 'StatsCollector' do
|
|
22
22
|
|
23
23
|
its(:show_stats) {
|
24
24
|
should == {
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
}.to_json
|
25
|
+
:time => { :stats => [] },
|
26
|
+
:cpu => { :stats => [], :color => '#D2691E', :unit => '%' },
|
27
|
+
:mem => { :stats => [], :color => '#87CEFA', :unit => '%' },
|
28
|
+
:swap => {:stats => [], :color => '#3CB371', :unit => '%' },
|
29
|
+
:disk => {:stats => [], :color => '#CDC673', :unit => '%' },
|
30
|
+
:temp => {:stats => [], :color => '#FF9B04', :unit => 'ºC' }
|
31
|
+
}.to_json
|
33
32
|
}
|
34
33
|
|
35
34
|
context 'when collected some stats' do
|
@@ -49,13 +48,13 @@ describe 'StatsCollector' do
|
|
49
48
|
|
50
49
|
its(:show_stats) {
|
51
50
|
should == {
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
51
|
+
:time => { :stats => ['12:00:00', '12:00:00', '12:00:00', '12:00:00', '12:00:00', '12:00:00']},
|
52
|
+
:cpu => {:stats => [50, 50, 50, 50, 50, 50], :color => '#D2691E', :unit => '%'},
|
53
|
+
:mem => { :stats => [78, 78, 78, 78, 78, 78], :color =>'#87CEFA', :unit => '%'},
|
54
|
+
:swap=>{ :stats => [50, 50, 50, 50, 50, 50], :color => '#3CB371', :unit => '%'},
|
55
|
+
:disk=>{ :stats => [25, 25, 25, 25, 25, 25], :color => '#CDC673', :unit => '%'},
|
56
|
+
:temp=>{ :stats => [40, 40, 40, 40, 40, 40], :color => '#FF9B04', :unit => 'ºC'}
|
57
|
+
}.to_json
|
59
58
|
}
|
60
59
|
end
|
61
60
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pimon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: haml
|
@@ -27,22 +27,6 @@ dependencies:
|
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 3.1.7
|
30
|
-
- !ruby/object:Gem::Dependency
|
31
|
-
name: redis
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
|
-
requirements:
|
35
|
-
- - ~>
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: 3.0.1
|
38
|
-
type: :runtime
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 3.0.1
|
46
30
|
- !ruby/object:Gem::Dependency
|
47
31
|
name: sinatra
|
48
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -107,38 +91,6 @@ dependencies:
|
|
107
91
|
- - ~>
|
108
92
|
- !ruby/object:Gem::Version
|
109
93
|
version: '0'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: mock_redis
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ~>
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 0.5.0
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ~>
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: 0.5.0
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: rspec
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ~>
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: 2.11.0
|
134
|
-
type: :development
|
135
|
-
prerelease: false
|
136
|
-
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ~>
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: 2.11.0
|
142
94
|
- !ruby/object:Gem::Dependency
|
143
95
|
name: simplecov
|
144
96
|
requirement: !ruby/object:Gem::Requirement
|
@@ -187,9 +139,7 @@ dependencies:
|
|
187
139
|
- - ! '>='
|
188
140
|
- !ruby/object:Gem::Version
|
189
141
|
version: '0'
|
190
|
-
description: Pimon is a simple server monitor designed for the Raspberry Pi.
|
191
|
-
redis lists to keep the latest observed statistics and also uses highcharts to display
|
192
|
-
some nice charts on your web browser.
|
142
|
+
description: Pimon is a simple server monitor designed for the Raspberry Pi.
|
193
143
|
email:
|
194
144
|
- pedro.carrico@gmail.com
|
195
145
|
executables:
|
@@ -205,7 +155,6 @@ files:
|
|
205
155
|
- README.md
|
206
156
|
- Rakefile
|
207
157
|
- WTFPL-LICENSE
|
208
|
-
- bin/clean_redis_stats
|
209
158
|
- bin/free.c
|
210
159
|
- bin/makefile
|
211
160
|
- bin/pimon
|
@@ -229,8 +178,10 @@ files:
|
|
229
178
|
- lib/pimon/probe/swap_usage.rb
|
230
179
|
- lib/pimon/probe/system_memory.rb
|
231
180
|
- lib/pimon/probe/temperature.rb
|
181
|
+
- lib/pimon/probe/time_check.rb
|
232
182
|
- lib/pimon/public/favicon.ico
|
233
183
|
- lib/pimon/public/index.js
|
184
|
+
- lib/pimon/stats.rb
|
234
185
|
- lib/pimon/stats_collector.rb
|
235
186
|
- lib/pimon/version.rb
|
236
187
|
- lib/pimon/views/index.haml
|
@@ -241,8 +192,7 @@ files:
|
|
241
192
|
- spec/stats_collector_spec.rb
|
242
193
|
homepage: http://pimon.pedrocarrico.net/
|
243
194
|
licenses: []
|
244
|
-
post_install_message:
|
245
|
-
running and listening on /tmp/redis.sock
|
195
|
+
post_install_message: Thank you for using Pimon :-)
|
246
196
|
rdoc_options: []
|
247
197
|
require_paths:
|
248
198
|
- lib
|
data/bin/clean_redis_stats
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
/Users/pecarrico/opt/redis/src/redis-cli -s /tmp/redis.sock del pimon_mem del pimon_swap del pimon_cpu del pimon_time del pimon_disk pimon_temp
|