fluent-plugin-numeric-monitor 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |gem|
|
3
3
|
gem.name = "fluent-plugin-numeric-monitor"
|
4
|
-
gem.version = "0.1.
|
4
|
+
gem.version = "0.1.3"
|
5
5
|
gem.authors = ["TAGOMORI Satoshi"]
|
6
6
|
gem.email = ["tagomoris@gmail.com"]
|
7
7
|
gem.description = %q{Fluentd plugin to calculate min/max/avg/Xpercentile values, and emit these data as message}
|
@@ -113,12 +113,15 @@ class Fluent::NumericMonitorOutput < Fluent::Output
|
|
113
113
|
if c[:num] then output['num'] = c[:num] end
|
114
114
|
if c[:min] then output['min'] = c[:min] end
|
115
115
|
if c[:max] then output['max'] = c[:max] end
|
116
|
-
if c[:num] > 0 then output['avg'] = (c[:sum] * 100.0 / (c[:num] * 1.0)).round / 100 end
|
116
|
+
if c[:num] > 0 then output['avg'] = (c[:sum] * 100.0 / (c[:num] * 1.0)).round / 100.0 end
|
117
117
|
if @percentiles
|
118
118
|
sorted = c[:sample].sort
|
119
119
|
@percentiles.each do |p|
|
120
120
|
i = (c[:num] * p / 100).floor
|
121
|
-
|
121
|
+
if i > 0
|
122
|
+
i -= 1
|
123
|
+
end
|
124
|
+
output["percentile_#{p}"] = sorted[i]
|
122
125
|
end
|
123
126
|
end
|
124
127
|
return output
|
@@ -65,6 +65,39 @@ class NumericMonitorOutputTest < Test::Unit::TestCase
|
|
65
65
|
assert_equal 100, r1['tag1_num']
|
66
66
|
end
|
67
67
|
|
68
|
+
def test_emit_aggregate_all
|
69
|
+
d1 = create_driver(%[
|
70
|
+
unit minute
|
71
|
+
tag monitor.test
|
72
|
+
input_tag_remove_prefix test
|
73
|
+
aggregate all
|
74
|
+
monitor_key field1
|
75
|
+
percentiles 80,90
|
76
|
+
], 'test.tag1')
|
77
|
+
|
78
|
+
d1.run do
|
79
|
+
10.times do
|
80
|
+
d1.emit({'field1' => 0})
|
81
|
+
d1.emit({'field1' => '1'})
|
82
|
+
d1.emit({'field1' => 2})
|
83
|
+
d1.emit({'field1' => '3'})
|
84
|
+
d1.emit({'field1' => 4})
|
85
|
+
d1.emit({'field1' => 5})
|
86
|
+
d1.emit({'field1' => 6})
|
87
|
+
d1.emit({'field1' => 7})
|
88
|
+
d1.emit({'field1' => 8})
|
89
|
+
d1.emit({'field1' => 9})
|
90
|
+
end
|
91
|
+
end
|
92
|
+
r1 = d1.instance.flush
|
93
|
+
assert_equal 0, r1['min']
|
94
|
+
assert_equal 9, r1['max']
|
95
|
+
assert_equal 4.5, r1['avg']
|
96
|
+
assert_equal 7, r1['percentile_80']
|
97
|
+
assert_equal 8, r1['percentile_90']
|
98
|
+
assert_equal 100, r1['num']
|
99
|
+
end
|
100
|
+
|
68
101
|
def test_without_percentiles
|
69
102
|
d = create_driver(%[
|
70
103
|
unit minute
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-numeric-monitor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
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:
|
12
|
+
date: 2013-02-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fluentd
|