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 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