fluent-plugin-mackerel 0.0.2 → 0.0.3
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 +8 -8
- data/README.md +6 -5
- data/fluent-plugin-mackerel.gemspec +1 -1
- data/lib/fluent/plugin/out_mackerel.rb +9 -3
- data/test/plugin/test_out_mackerel.rb +31 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZmY3Njg2MTIyNGI1Mzc5ODViZmNhMGQ4ZGYzNWE0ZWViMzM1ZTJhOA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NjM0ZDA1YjNlMjU2OWUyOGRkZjk3YTI1NjVkMjA0ZmE3ZDg2ZDRjZA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZGYzY2ExMjJhZWY4MGM2Y2QwMjE1ZGRlMGIxOTFhMzdkYWM4ZTQ3ZTIwZDM5
|
10
|
+
MWUxNTQ4MzJhZTAxMmNiOTUxOTQ3YmJiMGY5YWNmMzViYjY1NDdkMzgxZTQw
|
11
|
+
MWMwNDE1MTZlNmIzNTFjNjUwMzFmYTExNTYwOTE0ZTZiNjgyYTk=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YTFlYjgwOTIyY2M1MGNkN2Q1NjBmZmE5ZDIwODFjMzk2N2ZlMGJiNDk2MWEy
|
14
|
+
OThiYmRkMWViZTVmNTNmZjQ0ZGJkMjBmY2I2YmFkZTdkOGIwOTY1MzI1Y2E3
|
15
|
+
YzI3OWU3Y2MxN2JiZDYyOTljNDEwMDA3YmMwMjRjMzdhMmRkZWM=
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# fluent-plugin-mackerel
|
1
|
+
# fluent-plugin-mackerel [](https://travis-ci.org/tksmd/fluent-plugin-mackerel)
|
2
2
|
|
3
3
|
## Overview
|
4
4
|
|
@@ -10,10 +10,10 @@ Install with gem or fluent-gem command as:
|
|
10
10
|
|
11
11
|
```
|
12
12
|
# for fluentd
|
13
|
-
$ gem install fluent-plugin-
|
13
|
+
$ gem install fluent-plugin-mackerel
|
14
14
|
|
15
15
|
# for td-agent
|
16
|
-
$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-
|
16
|
+
$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-mackerel
|
17
17
|
```
|
18
18
|
|
19
19
|
## Configuration
|
@@ -26,16 +26,17 @@ This plugin uses [APIv0](http://help-ja.mackerel.io/entry/spec/api/v0) of macker
|
|
26
26
|
type mackerel
|
27
27
|
api_key 123456
|
28
28
|
hostid xyz
|
29
|
-
metrics_prefix http_status
|
29
|
+
metrics_prefix custom.http_status
|
30
30
|
out_keys 2xx_count,3xx_count,4xx_count,5xx_count
|
31
31
|
</match>
|
32
32
|
```
|
33
|
+
When metrics_prefix doesn't start with "custom.", "custom." is automatically appended at its beginning.
|
33
34
|
|
34
35
|
Then the sent metric data will look like this:
|
35
36
|
```
|
36
37
|
{
|
37
38
|
"hostId": "xyz",
|
38
|
-
"name": "http_status.2xx_count",
|
39
|
+
"name": "custom.http_status.2xx_count",
|
39
40
|
"time": 1399997498,
|
40
41
|
"value": 100.0
|
41
42
|
}
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "fluent-plugin-mackerel"
|
7
|
-
spec.version = "0.0.
|
7
|
+
spec.version = "0.0.3"
|
8
8
|
spec.authors = ["tksmd"]
|
9
9
|
spec.email = ["someda@isenshi.com"]
|
10
10
|
spec.description = %q{fluent plugin to send metrics to mackerel.io}
|
@@ -5,9 +5,14 @@ module Fluent
|
|
5
5
|
config_param :api_key, :string
|
6
6
|
config_param :hostid, :string, :default => nil
|
7
7
|
config_param :hostid_path, :string, :default => nil
|
8
|
-
config_param :metrics_prefix, :string
|
9
8
|
config_param :out_keys, :string
|
10
9
|
|
10
|
+
config_param :metrics_prefix do |val|
|
11
|
+
val.chomp!(".")
|
12
|
+
raise Fluent::ConfigError, "metrics_prefix is not allowed to be blank" if val.empty?
|
13
|
+
val.start_with?("custom.") ? val : "custom." << val
|
14
|
+
end
|
15
|
+
|
11
16
|
attr_reader :mackerel
|
12
17
|
|
13
18
|
# Define `log` method for v0.10.42 or earlier
|
@@ -38,6 +43,7 @@ module Fluent
|
|
38
43
|
@hostid = File.open(@hostid_path).read
|
39
44
|
end
|
40
45
|
|
46
|
+
log.info("metrics_prefix is configured to #{@metrics_prefix}")
|
41
47
|
end
|
42
48
|
|
43
49
|
def start
|
@@ -110,9 +116,9 @@ module Fluent
|
|
110
116
|
|
111
117
|
def wait_for_minute
|
112
118
|
# limit request once per minute
|
113
|
-
wait_secs = @last_posted ? @last_posted + 60 -
|
119
|
+
wait_secs = @last_posted ? @last_posted + 60 - Fluent::Engine.now : 0
|
114
120
|
sleep wait_secs if wait_secs > 0
|
115
|
-
@last_posted =
|
121
|
+
@last_posted = Fluent::Engine.now
|
116
122
|
wait_secs > 0
|
117
123
|
end
|
118
124
|
|
@@ -10,7 +10,7 @@ class MackerelOutputTest < Test::Unit::TestCase
|
|
10
10
|
type mackerel
|
11
11
|
api_key 123456
|
12
12
|
hostid xyz
|
13
|
-
metrics_prefix service
|
13
|
+
metrics_prefix custom.service
|
14
14
|
out_keys val1,val2,val3
|
15
15
|
]
|
16
16
|
|
@@ -21,7 +21,23 @@ class MackerelOutputTest < Test::Unit::TestCase
|
|
21
21
|
out_keys val1,val2,val3
|
22
22
|
]
|
23
23
|
|
24
|
+
CONFIG_BLANK_METRICS = %[
|
25
|
+
type mackerel
|
26
|
+
api_key 123456
|
27
|
+
metrics_prefix
|
28
|
+
out_keys val1,val2,val3
|
29
|
+
]
|
30
|
+
|
24
31
|
CONFIG_SMALL_FLUSH_INTERVAL = %[
|
32
|
+
type mackerel
|
33
|
+
api_key 123456
|
34
|
+
hostid xyz
|
35
|
+
metrics_prefix custom.service
|
36
|
+
out_keys val1,val2,val3
|
37
|
+
flush_interval 1s
|
38
|
+
]
|
39
|
+
|
40
|
+
CONFIG_NOT_INSUFFICIENT_PREFIX = %[
|
25
41
|
type mackerel
|
26
42
|
api_key 123456
|
27
43
|
hostid xyz
|
@@ -44,13 +60,20 @@ class MackerelOutputTest < Test::Unit::TestCase
|
|
44
60
|
d = create_driver(CONFIG_NOHOST)
|
45
61
|
}
|
46
62
|
|
63
|
+
assert_raise(Fluent::ConfigError) {
|
64
|
+
d = create_driver(CONFIG_BLANK_METRICS)
|
65
|
+
}
|
66
|
+
|
47
67
|
d = create_driver(CONFIG_SMALL_FLUSH_INTERVAL)
|
48
68
|
assert_equal d.instance.instance_variable_get(:@flush_interval), 60
|
49
69
|
|
70
|
+
d = create_driver(CONFIG_NOT_INSUFFICIENT_PREFIX)
|
71
|
+
assert_equal d.instance.instance_variable_get(:@metrics_prefix), "custom.service"
|
72
|
+
|
50
73
|
d = create_driver()
|
51
74
|
assert_equal d.instance.instance_variable_get(:@api_key), '123456'
|
52
75
|
assert_equal d.instance.instance_variable_get(:@hostid), 'xyz'
|
53
|
-
assert_equal d.instance.instance_variable_get(:@metrics_prefix), 'service'
|
76
|
+
assert_equal d.instance.instance_variable_get(:@metrics_prefix), 'custom.service'
|
54
77
|
assert_equal d.instance.instance_variable_get(:@out_keys), ['val1','val2','val3']
|
55
78
|
assert_equal d.instance.instance_variable_get(:@flush_interval), 60
|
56
79
|
end
|
@@ -58,12 +81,12 @@ class MackerelOutputTest < Test::Unit::TestCase
|
|
58
81
|
def test_write
|
59
82
|
d = create_driver()
|
60
83
|
stub(d.instance.mackerel).post_metrics([
|
61
|
-
{"hostId"=>"xyz", "value"=>1.0, "time"=>1399997498, "name"=>"service.val1"},
|
62
|
-
{"hostId"=>"xyz", "value"=>2.0, "time"=>1399997498, "name"=>"service.val2"},
|
63
|
-
{"hostId"=>"xyz", "value"=>3.0, "time"=>1399997498, "name"=>"service.val3"},
|
64
|
-
{"hostId"=>"xyz", "value"=>5.0, "time"=>1399997498, "name"=>"service.val1"},
|
65
|
-
{"hostId"=>"xyz", "value"=>6.0, "time"=>1399997498, "name"=>"service.val2"},
|
66
|
-
{"hostId"=>"xyz", "value"=>7.0, "time"=>1399997498, "name"=>"service.val3"},
|
84
|
+
{"hostId"=>"xyz", "value"=>1.0, "time"=>1399997498, "name"=>"custom.service.val1"},
|
85
|
+
{"hostId"=>"xyz", "value"=>2.0, "time"=>1399997498, "name"=>"custom.service.val2"},
|
86
|
+
{"hostId"=>"xyz", "value"=>3.0, "time"=>1399997498, "name"=>"custom.service.val3"},
|
87
|
+
{"hostId"=>"xyz", "value"=>5.0, "time"=>1399997498, "name"=>"custom.service.val1"},
|
88
|
+
{"hostId"=>"xyz", "value"=>6.0, "time"=>1399997498, "name"=>"custom.service.val2"},
|
89
|
+
{"hostId"=>"xyz", "value"=>7.0, "time"=>1399997498, "name"=>"custom.service.val3"},
|
67
90
|
])
|
68
91
|
|
69
92
|
ENV["TZ"]="Asia/Tokyo"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-mackerel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tksmd
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|