fluent-plugin-influxdb-v2 1.7.0 → 1.8.0

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
  SHA256:
3
- metadata.gz: 98331e592d3cda83c0faedca7305cca80d7b758a195cd6e2c596df5b7ed9a4fa
4
- data.tar.gz: 1c589d9b86f0e5a59f057836879230e7b1b02c637e6553fc536e6dcb20cc8b8b
3
+ metadata.gz: 0c3381ef9bbedb530e14741508b58177aea828d09fc9e57453b7d31a186684e7
4
+ data.tar.gz: e1bfea98483940eaf1e105a01b6c5f17fe0ba2d3b0a723fe0034c6c09955c205
5
5
  SHA512:
6
- metadata.gz: b33225e086342b6f8b99a5d61d7049b7fbef952ba07733eca2c31ee75879cd6b666eb445175909e730fa4831659d37fa7aeb5b796dbd50433fc44027cce4d5b4
7
- data.tar.gz: 79a28300a1bee0ed3b414daafb196bc57c9553b5e51a76122f820acfab267c520af4f6e10d2d7ea34508584770fd457e4c63ba8b5c80520c0c092bcaa6b0d0bf
6
+ metadata.gz: 18b5ee73d321b8ed10c5cf523387484ee2008bb3388d3fe1f1e0109149651c1c5c2befa080093b7080f7cc8178d097fbc2158b2b6a31ea552f2c144df153494e
7
+ data.tar.gz: ec9e958aadcbb9f2dab99c101c44dd8ec923b94b05b5efe68f38bb586f003e63b55b39c30411e61e70eda38b81855a716267f0bfa28cae3524b46f98ffcb99e3
data/CHANGELOG.md CHANGED
@@ -1,10 +1,15 @@
1
+ ## 1.8.0 [2021-08-20]
2
+
3
+ ### Features
4
+ 1. [#26](https://github.com/influxdata/influxdb-plugin-fluent/pull/26): Add placeholder support for bucket & measurement fields
5
+
1
6
  ## 1.7.0 [2021-03-05]
2
7
 
3
8
  ### Features
4
- 1. [#23](https://github.com/influxdata/influxdb-plugin-fluent/pull/23): Added possibility to specify the certification verification behaviour
9
+ 1. [#23](https://github.com/influxdata/influxdb-plugin-fluent/pull/23): Add possibility to specify the certification verification behaviour
5
10
 
6
11
  ### CI
7
- 1. [#24](https://github.com/influxdata/influxdb-plugin-fluent/pull/24): Updated stable image to `influxdb:latest` and nightly to `quay.io/influxdb/influxdb:nightly`
12
+ 1. [#24](https://github.com/influxdata/influxdb-plugin-fluent/pull/24): Updat stable image to `influxdb:latest` and nightly to `quay.io/influxdb/influxdb:nightly`
8
13
 
9
14
  ## 1.6.0 [2020-10-02]
10
15
 
@@ -16,7 +21,7 @@
16
21
 
17
22
  ## 1.5.0 [2020-07-17]
18
23
 
19
- 1. [#12](https://github.com/influxdata/influxdb-plugin-fluent/pull/12): Renamed gem to `fluent-plugin-influxdb-v2`
24
+ 1. [#12](https://github.com/influxdata/influxdb-plugin-fluent/pull/12): Rename gem to `fluent-plugin-influxdb-v2`
20
25
 
21
26
  ### Dependencies
22
27
  1. [#11](https://github.com/influxdata/influxdb-plugin-fluent/pull/11): Upgrade InfluxDB client to 1.6.0
@@ -24,7 +29,7 @@
24
29
  ## 1.4.0 [2020-06-19]
25
30
 
26
31
  ### Features
27
- 1. [#8](https://github.com/influxdata/influxdb-plugin-fluent/pull/8): Added support for nested fields
32
+ 1. [#8](https://github.com/influxdata/influxdb-plugin-fluent/pull/8): Add support for nested fields
28
33
 
29
34
  ### Dependencies
30
35
  1. [#9](https://github.com/influxdata/influxdb-plugin-fluent/pull/9): Upgrade InfluxDB client to 1.5.0
data/README.md CHANGED
@@ -19,7 +19,7 @@ This repository contains the reference Fluentd plugin for the InfluxDB 2.0.
19
19
  The plugin is bundled as a gem and is hosted on [Rubygems](https://rubygems.org/gems/fluent-plugin-influxdb-v2). You can install the gem as follows:
20
20
 
21
21
  ```
22
- fluent-gem install fluent-plugin-influxdb-v2 -v 1.7.0
22
+ fluent-gem install fluent-plugin-influxdb-v2 -v 1.8.0
23
23
  ```
24
24
 
25
25
  ## Plugins
@@ -119,7 +119,7 @@ class InfluxDBOutput < Fluent::Plugin::Output
119
119
  def write(chunk)
120
120
  points = []
121
121
  tag = chunk.metadata.tag
122
- measurement = @measurement || tag
122
+ bucket, measurement = expand_placeholders(chunk)
123
123
  chunk.msgpack_each do |time, record|
124
124
  if time.is_a?(Integer)
125
125
  time_formatted = time
@@ -141,12 +141,22 @@ class InfluxDBOutput < Fluent::Plugin::Output
141
141
  point.time(time_formatted, @precision)
142
142
  points << point
143
143
  end
144
- @write_api.write(data: points)
144
+ @write_api.write(data: points, bucket: bucket)
145
145
  log.debug "Written points: #{points}"
146
146
  end
147
147
 
148
148
  private
149
149
 
150
+ def expand_placeholders(chunk)
151
+ bucket = extract_placeholders(@bucket, chunk)
152
+ measurement = if @measurement
153
+ extract_placeholders(@measurement, chunk)
154
+ else
155
+ chunk.metadata.tag
156
+ end
157
+ [bucket, measurement]
158
+ end
159
+
150
160
  def _parse_field(key, value, point)
151
161
  if @tag_keys.include?(key)
152
162
  point.add_tag(key, value)
@@ -21,7 +21,7 @@
21
21
  module InfluxDB2
22
22
  module Plugin
23
23
  module Fluent
24
- VERSION = '1.7.0'.freeze
24
+ VERSION = '1.8.0'.freeze
25
25
  end
26
26
  end
27
27
  end
@@ -475,4 +475,39 @@ class InfluxDBOutputTest < Minitest::Test
475
475
  driver.feed(time, data)
476
476
  time
477
477
  end
478
+
479
+ def test_bucket_as_placeholder
480
+ stub_request(:any, 'https://localhost:8086/api/v2/write?bucket=placeholder_h2o_tag&org=my-org&precision=ns')
481
+ .to_return(status: 204)
482
+ driver = create_driver(%(
483
+ @type influxdb2
484
+ token my-token
485
+ bucket placeholder_${tag}
486
+ org my-org
487
+ time_precision ns
488
+ ))
489
+ driver.run(default_tag: 'h2o_tag') do
490
+ emit_documents(driver)
491
+ end
492
+ assert_requested(:post, 'https://localhost:8086/api/v2/write?bucket=placeholder_h2o_tag&org=my-org&precision=ns',
493
+ times: 1, body: 'h2o_tag level=2i,location="europe" 1444897215000000000')
494
+ end
495
+
496
+ def test_measurement_as_placeholder
497
+ stub_request(:any, 'https://localhost:8086/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
498
+ .to_return(status: 204)
499
+ driver = create_driver(%(
500
+ @type influxdb2
501
+ token my-token
502
+ bucket my-bucket
503
+ org my-org
504
+ time_precision ns
505
+ measurement placeholder_${tag}
506
+ ))
507
+ driver.run(default_tag: 'h2o_tag') do
508
+ emit_documents(driver)
509
+ end
510
+ assert_requested(:post, 'https://localhost:8086/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
511
+ times: 1, body: 'placeholder_h2o_tag level=2i,location="europe" 1444897215000000000')
512
+ end
478
513
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-influxdb-v2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jakub Bednar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-05 00:00:00.000000000 Z
11
+ date: 2021-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -226,7 +226,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
226
226
  - !ruby/object:Gem::Version
227
227
  version: '0'
228
228
  requirements: []
229
- rubygems_version: 3.0.3
229
+ rubygems_version: 3.0.3.1
230
230
  signing_key:
231
231
  specification_version: 4
232
232
  summary: InfluxDB 2 output plugin for Fluentd