pulse-meter 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -344,6 +344,12 @@ at project root and visit
344
344
  ttl: 60 * 60 * 24,
345
345
  p: 0.9
346
346
  }
347
+ },
348
+ cpu: {
349
+ sensor_type: 'indicator',
350
+ args: {
351
+ annotation: 'CPU%'
352
+ }
347
353
  }
348
354
  )
349
355
 
@@ -377,6 +383,8 @@ at project root and visit
377
383
  agent_counter = sensors.sensor(agent_names.shuffle.first)
378
384
  agent_counter.event(1)
379
385
 
386
+ sensors.cpu(Random.rand(100))
387
+
380
388
  sleep(Random.rand / 10)
381
389
  end
382
390
 
@@ -396,7 +404,7 @@ A more complicated visualization
396
404
 
397
405
  # Transfer some global parameters to Google Charts
398
406
  l.gchart_options({
399
- backgroundColor: '#CCC'
407
+ background_color: '#CCC'
400
408
  })
401
409
 
402
410
  # Add some pages
@@ -428,7 +436,7 @@ A more complicated visualization
428
436
 
429
437
  # Transfer page-wide (and page-specific) options to Google Charts
430
438
  p.gchart_options({
431
- height: 400
439
+ height: 500
432
440
  })
433
441
  end
434
442
 
@@ -469,7 +477,6 @@ A more complicated visualization
469
477
  w.sensor sensor
470
478
  end
471
479
 
472
- w.timespan 24 * 60 * 60
473
480
  w.redraw_interval 10
474
481
  w.show_last_point true
475
482
  w.values_label "Request count"
@@ -477,11 +484,30 @@ A more complicated visualization
477
484
 
478
485
  end
479
486
 
480
- p.ghchart_options({
487
+ p.gchart_options({
481
488
  height: 500
482
489
  })
483
490
  end
484
491
 
492
+ l.page "Gauge" do |p|
493
+
494
+ p.gauge "CPU Load" do |g|
495
+ g.redraw_interval 5
496
+ g.values_label '%'
497
+ g.width 5
498
+
499
+ g.red_from 90
500
+ g.red_to 100
501
+ g.yellow_from 75
502
+ g.yellow_to 90
503
+ g.minor_ticks 5
504
+ g.height 200
505
+
506
+ g.sensor :cpu
507
+ end
508
+
509
+ end
510
+
485
511
  end
486
512
 
487
513
  run layout.to_app
data/examples/basic.ru CHANGED
@@ -19,6 +19,15 @@ layout = PulseMeter::Visualizer.draw do |l|
19
19
  c.timespan 1200
20
20
  end
21
21
 
22
+ p.line "Lama count 1 min" do |c|
23
+ c.sensor :lama_count_1min, color: '#FA295C'
24
+ c.redraw_interval 5
25
+ c.values_label 'Count'
26
+ c.width 5
27
+ c.show_last_point true
28
+ c.timespan 1200
29
+ end
30
+
22
31
  p.area "Rhino count", sensor: :rhino_count do |c|
23
32
  c.redraw_interval 5
24
33
  c.values_label 'Count'
@@ -14,6 +14,15 @@ cfg = PulseMeter::Sensor::Configuration.new(
14
14
  }
15
15
  },
16
16
 
17
+ lama_count_1min: {
18
+ sensor_type:'timelined/counter',
19
+ args: {
20
+ annotation: 'Lama Count (1 min)',
21
+ interval: 60,
22
+ ttl: 3600
23
+ }
24
+ },
25
+
17
26
  lama_average_age: {
18
27
  sensor_type:'timelined/average',
19
28
  args: {
@@ -64,6 +64,12 @@ sensors = PulseMeter::Sensor::Configuration.new(
64
64
  ttl: 60 * 60 * 24,
65
65
  p: 0.9
66
66
  }
67
+ },
68
+ cpu: {
69
+ sensor_type: 'indicator',
70
+ args: {
71
+ annotation: 'CPU%'
72
+ }
67
73
  }
68
74
  )
69
75
 
@@ -97,5 +103,7 @@ while true
97
103
  agent_counter = sensors.sensor(agent_names.shuffle.first)
98
104
  agent_counter.event(1)
99
105
 
106
+ sensors.cpu(Random.rand(100))
107
+
100
108
  sleep(Random.rand / 10)
101
109
  end
@@ -99,6 +99,25 @@ layout = PulseMeter::Visualizer.draw do |l|
99
99
  })
100
100
  end
101
101
 
102
+ l.page "Gauge" do |p|
103
+
104
+ p.gauge "CPU Load" do |g|
105
+ g.redraw_interval 5
106
+ g.values_label '%'
107
+ g.width 5
108
+
109
+ g.red_from 90
110
+ g.red_to 100
111
+ g.yellow_from 75
112
+ g.yellow_to 90
113
+ g.minor_ticks 5
114
+ g.height 200
115
+
116
+ g.sensor :cpu
117
+ end
118
+
119
+ end
120
+
102
121
  end
103
122
 
104
123
  run layout.to_app
@@ -1,3 +1,3 @@
1
1
  module PulseMeter
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -153,10 +153,11 @@ document.startApp = ->
153
153
 
154
154
  class SeriesPresenter extends TimelinePresenter
155
155
  options: ->
156
+ secondPart = if @get('interval') % 60 == 0 then '' else ':ss'
156
157
  format = if @model.timespan() > 24 * 60 * 60
157
- 'yyyy.MM.dd HH:mm:ss'
158
+ "yyyy.MM.dd HH:mm#{secondPart}"
158
159
  else
159
- 'HH:mm:ss'
160
+ "HH:mm#{secondPart}"
160
161
 
161
162
  $.extend true, super(), {
162
163
  lineWidth: 1
@@ -214,8 +214,9 @@
214
214
  }
215
215
 
216
216
  SeriesPresenter.prototype.options = function() {
217
- var format;
218
- format = this.model.timespan() > 24 * 60 * 60 ? 'yyyy.MM.dd HH:mm:ss' : 'HH:mm:ss';
217
+ var format, secondPart;
218
+ secondPart = this.get('interval') % 60 === 0 ? '' : ':ss';
219
+ format = this.model.timespan() > 24 * 60 * 60 ? "yyyy.MM.dd HH:mm" + secondPart : "HH:mm" + secondPart;
219
220
  return $.extend(true, SeriesPresenter.__super__.options.call(this), {
220
221
  lineWidth: 1,
221
222
  chartArea: {
@@ -31,7 +31,7 @@ module PulseMeter
31
31
  end
32
32
 
33
33
  def annotation
34
- real_sensor.annotation || real_sensor.name
34
+ real_sensor.annotation || ''
35
35
  end
36
36
 
37
37
  def type
@@ -19,7 +19,8 @@ module PulseMeter
19
19
  super().merge({
20
20
  values_title: values_label,
21
21
  series: series_data(real_timespan),
22
- timespan: timespan
22
+ timespan: timespan,
23
+ interval: interval
23
24
  })
24
25
  end
25
26
 
@@ -72,6 +73,14 @@ module PulseMeter
72
73
  end
73
74
  end
74
75
 
76
+ def interval
77
+ if sensors.empty?
78
+ nil
79
+ else
80
+ sensors.first.interval
81
+ end
82
+ end
83
+
75
84
  end
76
85
 
77
86
  class Area < Timeline; end
@@ -36,6 +36,7 @@ describe PulseMeter::Visualize::Widgets::Area do
36
36
  wdata[:width].should == width
37
37
  wdata[:gchart_options].should == {a: 1}
38
38
  wdata[:timespan].should == timespan
39
+ wdata[:interval].should == interval
39
40
  end
40
41
 
41
42
  describe "series attribute" do
@@ -36,6 +36,7 @@ describe PulseMeter::Visualize::Widgets::Line do
36
36
  wdata[:width].should == width
37
37
  wdata[:gchart_options].should == {a: 1}
38
38
  wdata[:timespan].should == timespan
39
+ wdata[:interval].should == interval
39
40
  end
40
41
 
41
42
  describe "series attribute" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pulse-meter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-06-30 00:00:00.000000000 Z
13
+ date: 2012-07-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: gon-sinatra
@@ -482,7 +482,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
482
482
  version: '0'
483
483
  segments:
484
484
  - 0
485
- hash: 3972958232601263142
485
+ hash: -1244879308775683986
486
486
  requirements: []
487
487
  rubyforge_project:
488
488
  rubygems_version: 1.8.24