fluent-plugin-influxdb-v2 1.8.0.pre.972 → 1.9.0.pre.1169

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
  SHA256:
3
- metadata.gz: 1b7ff29c6e9ca3c151924c52453da41318b5e05e3df4bcbb688cd3ec893b8cd7
4
- data.tar.gz: 4e69058c9f02fa37b420952e1ccfb246ef86e99cc944d05cce073965b88da5ef
3
+ metadata.gz: 8ab8851d2d37988a3ba75e224b761a25d312e006a1e5955e6fe7f7eae716db31
4
+ data.tar.gz: f7365f050c1a542188a816f8d5e906e8f53722decc581fcbb41f06cc6ee4dd66
5
5
  SHA512:
6
- metadata.gz: db437e5e2002a0c69fbcfba3815e203c481c88daa63cb2a3c83364e67c9ceb38be5e8c3380c8e5eda8de2ba79607e036f5d7e965092c014d87e5e790ef6e5577
7
- data.tar.gz: 9642e68088156e73edfb13b9ddd948a1466159c4ff0a5a8f03223b69aee0a7cb526c0b3f87d5755bdbb430c7642f3f787a232feb85efa31ca7be5e345efe5a71
6
+ metadata.gz: 2cda2d96e6fdf2d724cad9a7458f58fe55ac63fb85e09f746aaa2e7df9a26da6246a0681acecb8c1640add41547eed62a08a633cd1885f424b43bfb814427e87
7
+ data.tar.gz: 3f14015c32b040a8fc7614f0e3d9937f88d1b7ce6089ad942e8279163f1b4070b8b214899a95dd9ae36165d3cda55cc026c9710c8a2123fa584c80e2f37d252f
data/CHANGELOG.md CHANGED
@@ -1,12 +1,17 @@
1
- ## 1.8.0 [unreleased]
1
+ ## 1.9.0 [unreleased]
2
+
3
+ ## 1.8.0 [2021-08-20]
4
+
5
+ ### Features
6
+ 1. [#26](https://github.com/influxdata/influxdb-plugin-fluent/pull/26): Add placeholder support for bucket & measurement fields
2
7
 
3
8
  ## 1.7.0 [2021-03-05]
4
9
 
5
10
  ### Features
6
- 1. [#23](https://github.com/influxdata/influxdb-plugin-fluent/pull/23): Added possibility to specify the certification verification behaviour
11
+ 1. [#23](https://github.com/influxdata/influxdb-plugin-fluent/pull/23): Add possibility to specify the certification verification behaviour
7
12
 
8
13
  ### CI
9
- 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`
14
+ 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`
10
15
 
11
16
  ## 1.6.0 [2020-10-02]
12
17
 
@@ -18,7 +23,7 @@
18
23
 
19
24
  ## 1.5.0 [2020-07-17]
20
25
 
21
- 1. [#12](https://github.com/influxdata/influxdb-plugin-fluent/pull/12): Renamed gem to `fluent-plugin-influxdb-v2`
26
+ 1. [#12](https://github.com/influxdata/influxdb-plugin-fluent/pull/12): Rename gem to `fluent-plugin-influxdb-v2`
22
27
 
23
28
  ### Dependencies
24
29
  1. [#11](https://github.com/influxdata/influxdb-plugin-fluent/pull/11): Upgrade InfluxDB client to 1.6.0
@@ -26,7 +31,7 @@
26
31
  ## 1.4.0 [2020-06-19]
27
32
 
28
33
  ### Features
29
- 1. [#8](https://github.com/influxdata/influxdb-plugin-fluent/pull/8): Added support for nested fields
34
+ 1. [#8](https://github.com/influxdata/influxdb-plugin-fluent/pull/8): Add support for nested fields
30
35
 
31
36
  ### Dependencies
32
37
  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.8.0'.freeze
24
+ VERSION = '1.9.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.8.0.pre.972
4
+ version: 1.9.0.pre.1169
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: 1.3.1
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