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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2c21caf36db3449f3f96e8ea3cfa0fdecaff1192
4
- data.tar.gz: 209ae44854f43fcf0a4d79d335c395909ed26645
3
+ metadata.gz: 97e392b178b0bcfa9dce779af4ad6fdd9e484c0c
4
+ data.tar.gz: b873c7fb182d3b619816def2c9e8df6eca62589a
5
5
  SHA512:
6
- metadata.gz: 7f7304af47c78255d21c6ea2da8b7c4655f4d859b5e95a1fdbb95a649f986f7a24bd3b30ae015c59c297ab46ad72514839dff8de63ea4c03fdea941efd9bebc5
7
- data.tar.gz: a5d42f7e31a4defaad0485c84ba0837ce1c13bc3339c1d08ce2a08f0449ce799b3118cf0abbb685fe805d1e74533c6f3c76ae0f7b31de225dff949ae0fef1e92
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 "bundler/gem_tasks"
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 :default => :spec
10
+ task default: :spec
11
11
 
12
12
  RuboCop::RakeTask.new do |task|
13
- task.options = ["--color"]
13
+ task.options = ['--color']
14
14
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = 'fluent-plugin-datadog-statsd'
5
- spec.version = '0.0.3'
5
+ spec.version = '0.0.4'
6
6
  spec.authors = ['Kosuke Miyawaki']
7
7
  spec.email = ['kikusumk3@gmail.com']
8
8
  spec.summary = 'Fluentd output plugin for Dogstatsd.'
@@ -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] = @tags.map { |tag| extract_placeholders(tag, metadata) } if @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] = @tags.map { |tag| extract_placeholders(tag, metadata) } if @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
- %i[increment decrement].each do |metric_type|
25
- describe "metric_type=#{metric_type}" do
26
- it 'ok' do
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 #{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(metric_type).with('test.test', tags: ['test_tag:test'])
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
- it 'ok with placeholders' do
45
- conf = %(
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
- driver = create_driver(conf)
79
+ driver = create_driver(conf)
56
80
 
57
- expect(driver.instance.statsd).to receive(metric_type).with('test.test', tags: ['test_tag:test'])
81
+ expect(driver.instance.statsd).to receive(metric_type).with('test.test', tags: ['test_tag:test'])
58
82
 
59
- driver.run(default_tag: 'test') do
60
- driver.feed(time, 'metric_name' => 'test.test', 'metric_type' => metric_type.to_s)
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
- it 'not exist metric section' do
65
- conf = %(
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
- driver = create_driver(conf)
94
+ driver = create_driver(conf)
71
95
 
72
- expect(driver.instance.statsd).to_not receive(metric_type)
96
+ expect(driver.instance.statsd).to_not receive(metric_type)
73
97
 
74
- driver.run(default_tag: 'test') do
75
- driver.feed(time, {})
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
- %i[count gauge histgram timing set].each do |metric_type|
82
- describe "metric_type=#{metric_type}" do
83
- it 'ok' do
84
- conf = %(
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
- driver = create_driver(conf)
117
+ driver = create_driver(conf)
94
118
 
95
- expect(driver.instance.statsd).to receive(metric_type).with('test.test', '1', tags: ['test_tag:test'])
119
+ expect(driver.instance.statsd).to receive(metric_type).with('test.test', '1', tags: ['test_tag:test'])
96
120
 
97
- driver.run(default_tag: 'test') do
98
- driver.feed(time, {})
121
+ driver.run(default_tag: 'test') do
122
+ driver.feed(time, {})
123
+ end
99
124
  end
100
- end
101
125
 
102
- it 'ok with placeholders' do
103
- conf = %(
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
- driver = create_driver(conf)
138
+ driver = create_driver(conf)
115
139
 
116
- expect(driver.instance.statsd).to receive(metric_type).with('test.test', '1', tags: ['test_tag:test'])
140
+ expect(driver.instance.statsd).to receive(metric_type).with('test.test', '1', tags: ['test_tag:test'])
117
141
 
118
- driver.run(default_tag: 'test') do
119
- driver.feed(time, 'metric_name' => 'test.test', 'metric_type' => metric_type.to_s, 'value' => 1)
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
- it 'not exist metric section' do
124
- conf = %(
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
- driver = create_driver(conf)
153
+ driver = create_driver(conf)
130
154
 
131
- expect(driver.instance.statsd).to_not receive(metric_type)
155
+ expect(driver.instance.statsd).to_not receive(metric_type)
132
156
 
133
- driver.run(default_tag: 'test') do
134
- driver.feed(time, {})
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
- describe 'metric_type=event' do
141
- it 'ok' do
142
- conf = %(
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
- driver = create_driver(conf)
175
+ driver = create_driver(conf)
152
176
 
153
- expect(driver.instance.statsd).to receive(:event).with('test_title', 'test_text', tags: ['test_tag:test'])
177
+ expect(driver.instance.statsd).to receive(:event).with('test_title', 'test_text', tags: ['test_tag:test'])
154
178
 
155
- driver.run(default_tag: 'test') do
156
- driver.feed(time, {})
179
+ driver.run(default_tag: 'test') do
180
+ driver.feed(time, {})
181
+ end
157
182
  end
158
- end
159
183
 
160
- it 'ok with placeholders' do
161
- conf = %(
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
- driver = create_driver(conf)
201
+ driver = create_driver(conf)
178
202
 
179
- expect(driver.instance.statsd).to receive(:event).with(
180
- 'test_title', 'test_text', tags: ['test_tag:test'], aggregation_key: 'ak', alert_type: 'info', date_happened: time, priority: 'low', source_type_name: 'stn'
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
- driver.run(default_tag: 'test') do
184
- driver.feed(time, 'title' => 'test_title', 'text' => 'test_text', 'aggregation_key' => 'ak',
185
- 'alert_type' => 'info', 'date_happened' => time, 'priority' => 'low', 'source_type_name' => 'stn')
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
- it 'not exist event section' do
190
- conf = %(
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
- driver = create_driver(conf)
219
+ driver = create_driver(conf)
196
220
 
197
- expect(driver.instance.statsd).to_not receive(:event)
221
+ expect(driver.instance.statsd).to_not receive(:event)
198
222
 
199
- driver.run(default_tag: 'test') do
200
- driver.feed(time, {})
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.3
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-16 00:00:00.000000000 Z
11
+ date: 2017-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd