fluent-plugin-datadog-statsd 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Build Status](https://travis-ci.org/kikusu/fluent-plugin-datadog-statsd.svg?branch=master)](https://travis-ci.org/kikusu/fluent-plugin-datadog-statsd)
|
6
6
|
[![Gem Version](https://badge.fury.io/rb/fluent-plugin-datadog-statsd.svg)](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
|