fluent-plugin-datadog-statsd 0.0.3 → 0.0.4
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 +4 -4
- data/README.md +4 -1
- data/Rakefile +3 -3
- data/fluent-plugin-datadog-statsd.gemspec +1 -1
- data/lib/fluent/plugin/out_datadog_statsd.rb +14 -2
- data/spec/fluent/pugin/out_datadog_statsd_spec.rb +91 -66
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97e392b178b0bcfa9dce779af4ad6fdd9e484c0c
|
4
|
+
data.tar.gz: b873c7fb182d3b619816def2c9e8df6eca62589a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 639886f85126cec8df884e5f36f14e406be8e3960f3fa6e279239f90b5e2a1ab71932725adc44ce422f7977dbad5d03e0ef1c6daec1b9920823c3c8dbd2126c4
|
7
|
+
data.tar.gz: f09c27bb1d5894b878f28432ef99b7b2cb27fe7268c7ec6d52a9f42c08c2a78b920b3d3b8053b60207c0895c13be4791940a18a6bfdf1cce3cb062870703b501
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# fluentd-plugin-datadog-statsd
|
2
2
|
|
3
|
-
Fluend output plugin for Dogstatsd.
|
3
|
+
Fluend output plugin for Dogstatsd.
|
4
4
|
|
5
5
|
[](https://travis-ci.org/kikusu/fluent-plugin-datadog-statsd)
|
6
6
|
[](https://badge.fury.io/rb/fluent-plugin-datadog-statsd)
|
@@ -24,6 +24,9 @@ Fluend output plugin for Dogstatsd.
|
|
24
24
|
# option: tag of datadog.
|
25
25
|
tags [ "tag1:tag", "tag2:tag" ]
|
26
26
|
|
27
|
+
# option: add fluentd_worker_id tag to tags
|
28
|
+
add_fluentd_worker_id_to_tags true
|
29
|
+
|
27
30
|
# required when metric_type is not event
|
28
31
|
<metric>
|
29
32
|
# required: metric name of datadog
|
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
2
2
|
require 'rspec/core/rake_task'
|
3
3
|
require 'rubocop/rake_task'
|
4
4
|
|
@@ -7,8 +7,8 @@ RSpec::Core::RakeTask.new(:spec) do |task|
|
|
7
7
|
task.rspec_opts = '-c -fd --require spec_helper'
|
8
8
|
end
|
9
9
|
|
10
|
-
task :
|
10
|
+
task default: :spec
|
11
11
|
|
12
12
|
RuboCop::RakeTask.new do |task|
|
13
|
-
task.options = [
|
13
|
+
task.options = ['--color']
|
14
14
|
end
|
@@ -10,6 +10,7 @@ module Fluent
|
|
10
10
|
|
11
11
|
config_param :metric_type, :string
|
12
12
|
config_param :tags, :array, default: []
|
13
|
+
config_param :add_fluentd_worker_id_to_tags, :bool, default: false
|
13
14
|
|
14
15
|
config_section :metric, param_name: :metric_config, required: false,
|
15
16
|
multi: false, final: true do
|
@@ -114,12 +115,23 @@ module Fluent
|
|
114
115
|
end
|
115
116
|
end
|
116
117
|
|
118
|
+
def multi_workers_ready?
|
119
|
+
true
|
120
|
+
end
|
121
|
+
|
117
122
|
private
|
118
123
|
|
124
|
+
def tags(metadata)
|
125
|
+
tags = []
|
126
|
+
tags << "fluentd_worker_id:#{fluentd_worker_id}" if @add_fluentd_worker_id_to_tags
|
127
|
+
tags += @tags.map { |tag| extract_placeholders(tag, metadata) } if @tags
|
128
|
+
tags
|
129
|
+
end
|
130
|
+
|
119
131
|
def extract_placeholders_name_opt(metadata)
|
120
132
|
metric_name = extract_placeholders(@metric_config.name, metadata)
|
121
133
|
options = {}
|
122
|
-
options[:tags] =
|
134
|
+
options[:tags] = tags(metadata)
|
123
135
|
|
124
136
|
[metric_name, options]
|
125
137
|
end
|
@@ -136,7 +148,7 @@ module Fluent
|
|
136
148
|
event_text = extract_placeholders(@event_config.text, metadata)
|
137
149
|
|
138
150
|
options = {}
|
139
|
-
options[:tags] =
|
151
|
+
options[:tags] = tags(metadata)
|
140
152
|
|
141
153
|
%i[aggregation_key alert_type date_happened priority source_type_name].each do |key|
|
142
154
|
options[key] = extract_placeholders(@event_config[key], metadata) if @event_config[key]
|
@@ -21,28 +21,52 @@ describe Fluent::Plugin::DatadogStatsdOutput do
|
|
21
21
|
Fluent::Test.setup
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
it '
|
24
|
+
describe '@add_fluentd_worker_id_to_tags option' do
|
25
|
+
context 'add_fluentd_worker_id_to_tags=true' do
|
26
|
+
it 'add worker id' do
|
27
27
|
conf = %(
|
28
28
|
@type datadog_statsd
|
29
|
-
metric_type
|
29
|
+
metric_type increment
|
30
30
|
tags ["test_tag:test"]
|
31
|
+
add_fluentd_worker_id_to_tags true
|
31
32
|
<metric>
|
32
33
|
name test.test
|
33
34
|
</metric>
|
34
35
|
)
|
35
36
|
driver = create_driver(conf)
|
36
37
|
|
37
|
-
expect(driver.instance.statsd).to receive(
|
38
|
+
expect(driver.instance.statsd).to receive(:increment).with('test.test', tags: ['fluentd_worker_id:0', 'test_tag:test'])
|
38
39
|
|
39
40
|
driver.run(default_tag: 'test') do
|
40
41
|
driver.feed(time, {})
|
41
42
|
end
|
42
43
|
end
|
44
|
+
end
|
45
|
+
end
|
43
46
|
|
44
|
-
|
45
|
-
|
47
|
+
describe '@metric_type' do
|
48
|
+
%i[increment decrement].each do |metric_type|
|
49
|
+
context "metric_type=#{metric_type}" do
|
50
|
+
it 'ok' do
|
51
|
+
conf = %(
|
52
|
+
@type datadog_statsd
|
53
|
+
metric_type #{metric_type}
|
54
|
+
tags ["test_tag:test"]
|
55
|
+
<metric>
|
56
|
+
name test.test
|
57
|
+
</metric>
|
58
|
+
)
|
59
|
+
driver = create_driver(conf)
|
60
|
+
|
61
|
+
expect(driver.instance.statsd).to receive(metric_type).with('test.test', tags: ['test_tag:test'])
|
62
|
+
|
63
|
+
driver.run(default_tag: 'test') do
|
64
|
+
driver.feed(time, {})
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'ok with placeholders' do
|
69
|
+
conf = %(
|
46
70
|
@type datadog_statsd
|
47
71
|
metric_type ${metric_type}
|
48
72
|
tags ["test_tag:${tag}"]
|
@@ -52,36 +76,36 @@ tags ["test_tag:${tag}"]
|
|
52
76
|
<buffer ["tag", "metric_type", "metric_name"]>
|
53
77
|
</buffer>
|
54
78
|
)
|
55
|
-
|
79
|
+
driver = create_driver(conf)
|
56
80
|
|
57
|
-
|
81
|
+
expect(driver.instance.statsd).to receive(metric_type).with('test.test', tags: ['test_tag:test'])
|
58
82
|
|
59
|
-
|
60
|
-
|
83
|
+
driver.run(default_tag: 'test') do
|
84
|
+
driver.feed(time, 'metric_name' => 'test.test', 'metric_type' => metric_type.to_s)
|
85
|
+
end
|
61
86
|
end
|
62
|
-
end
|
63
87
|
|
64
|
-
|
65
|
-
|
88
|
+
it 'not exist metric section' do
|
89
|
+
conf = %(
|
66
90
|
@type datadog_statsd
|
67
91
|
metric_type #{metric_type}
|
68
92
|
tags ["test_tag:test"]
|
69
93
|
)
|
70
|
-
|
94
|
+
driver = create_driver(conf)
|
71
95
|
|
72
|
-
|
96
|
+
expect(driver.instance.statsd).to_not receive(metric_type)
|
73
97
|
|
74
|
-
|
75
|
-
|
98
|
+
driver.run(default_tag: 'test') do
|
99
|
+
driver.feed(time, {})
|
100
|
+
end
|
76
101
|
end
|
77
102
|
end
|
78
103
|
end
|
79
|
-
end
|
80
104
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
105
|
+
%i[count gauge histgram timing set].each do |metric_type|
|
106
|
+
context "metric_type=#{metric_type}" do
|
107
|
+
it 'ok' do
|
108
|
+
conf = %(
|
85
109
|
@type datadog_statsd
|
86
110
|
metric_type #{metric_type}
|
87
111
|
tags ["test_tag:test"]
|
@@ -90,17 +114,17 @@ tags ["test_tag:test"]
|
|
90
114
|
value 1
|
91
115
|
</metric>
|
92
116
|
)
|
93
|
-
|
117
|
+
driver = create_driver(conf)
|
94
118
|
|
95
|
-
|
119
|
+
expect(driver.instance.statsd).to receive(metric_type).with('test.test', '1', tags: ['test_tag:test'])
|
96
120
|
|
97
|
-
|
98
|
-
|
121
|
+
driver.run(default_tag: 'test') do
|
122
|
+
driver.feed(time, {})
|
123
|
+
end
|
99
124
|
end
|
100
|
-
end
|
101
125
|
|
102
|
-
|
103
|
-
|
126
|
+
it 'ok with placeholders' do
|
127
|
+
conf = %(
|
104
128
|
@type datadog_statsd
|
105
129
|
metric_type ${metric_type}
|
106
130
|
tags ["test_tag:${tag}"]
|
@@ -111,35 +135,35 @@ tags ["test_tag:${tag}"]
|
|
111
135
|
<buffer ["tag", "metric_type", "metric_name", "value"]>
|
112
136
|
</buffer>
|
113
137
|
)
|
114
|
-
|
138
|
+
driver = create_driver(conf)
|
115
139
|
|
116
|
-
|
140
|
+
expect(driver.instance.statsd).to receive(metric_type).with('test.test', '1', tags: ['test_tag:test'])
|
117
141
|
|
118
|
-
|
119
|
-
|
142
|
+
driver.run(default_tag: 'test') do
|
143
|
+
driver.feed(time, 'metric_name' => 'test.test', 'metric_type' => metric_type.to_s, 'value' => 1)
|
144
|
+
end
|
120
145
|
end
|
121
|
-
end
|
122
146
|
|
123
|
-
|
124
|
-
|
147
|
+
it 'not exist metric section' do
|
148
|
+
conf = %(
|
125
149
|
@type datadog_statsd
|
126
150
|
metric_type #{metric_type}
|
127
151
|
tags ["test_tag:test"]
|
128
152
|
)
|
129
|
-
|
153
|
+
driver = create_driver(conf)
|
130
154
|
|
131
|
-
|
155
|
+
expect(driver.instance.statsd).to_not receive(metric_type)
|
132
156
|
|
133
|
-
|
134
|
-
|
157
|
+
driver.run(default_tag: 'test') do
|
158
|
+
driver.feed(time, {})
|
159
|
+
end
|
135
160
|
end
|
136
161
|
end
|
137
162
|
end
|
138
|
-
end
|
139
163
|
|
140
|
-
|
141
|
-
|
142
|
-
|
164
|
+
context 'metric_type=event' do
|
165
|
+
it 'ok' do
|
166
|
+
conf = %(
|
143
167
|
@type datadog_statsd
|
144
168
|
metric_type event
|
145
169
|
tags ["test_tag:test"]
|
@@ -148,17 +172,17 @@ tags ["test_tag:test"]
|
|
148
172
|
text test_text
|
149
173
|
</event>
|
150
174
|
)
|
151
|
-
|
175
|
+
driver = create_driver(conf)
|
152
176
|
|
153
|
-
|
177
|
+
expect(driver.instance.statsd).to receive(:event).with('test_title', 'test_text', tags: ['test_tag:test'])
|
154
178
|
|
155
|
-
|
156
|
-
|
179
|
+
driver.run(default_tag: 'test') do
|
180
|
+
driver.feed(time, {})
|
181
|
+
end
|
157
182
|
end
|
158
|
-
end
|
159
183
|
|
160
|
-
|
161
|
-
|
184
|
+
it 'ok with placeholders' do
|
185
|
+
conf = %(
|
162
186
|
@type datadog_statsd
|
163
187
|
metric_type event
|
164
188
|
tags ["test_tag:${tag}"]
|
@@ -174,30 +198,31 @@ tags ["test_tag:${tag}"]
|
|
174
198
|
<buffer ["title", "text", "tag", "aggregation_key", "alert_type", "date_happened", "priority", "source_type_name"]>
|
175
199
|
</buffer>
|
176
200
|
)
|
177
|
-
|
201
|
+
driver = create_driver(conf)
|
178
202
|
|
179
|
-
|
180
|
-
|
181
|
-
|
203
|
+
expect(driver.instance.statsd).to receive(:event).with(
|
204
|
+
'test_title', 'test_text', tags: ['test_tag:test'], aggregation_key: 'ak', alert_type: 'info', date_happened: time, priority: 'low', source_type_name: 'stn'
|
205
|
+
)
|
182
206
|
|
183
|
-
|
184
|
-
|
185
|
-
|
207
|
+
driver.run(default_tag: 'test') do
|
208
|
+
driver.feed(time, 'title' => 'test_title', 'text' => 'test_text', 'aggregation_key' => 'ak',
|
209
|
+
'alert_type' => 'info', 'date_happened' => time, 'priority' => 'low', 'source_type_name' => 'stn')
|
210
|
+
end
|
186
211
|
end
|
187
|
-
end
|
188
212
|
|
189
|
-
|
190
|
-
|
213
|
+
it 'not exist event section' do
|
214
|
+
conf = %(
|
191
215
|
@type datadog_statsd
|
192
216
|
metric_type event
|
193
217
|
tags ["test_tag:test"]
|
194
218
|
)
|
195
|
-
|
219
|
+
driver = create_driver(conf)
|
196
220
|
|
197
|
-
|
221
|
+
expect(driver.instance.statsd).to_not receive(:event)
|
198
222
|
|
199
|
-
|
200
|
-
|
223
|
+
driver.run(default_tag: 'test') do
|
224
|
+
driver.feed(time, {})
|
225
|
+
end
|
201
226
|
end
|
202
227
|
end
|
203
228
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-datadog-statsd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kosuke Miyawaki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|