fluent-plugin-influxdb-v2 1.8.0.pre.1021 → 1.8.0.pre.1156

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: 5a184ab7f5812ee9974db610247187bbca47080079f3ffb610b535797b28d1c5
4
- data.tar.gz: 97fbf1e06efc6728673cbd2e35f5a2ef5639e54fa09e0fa260b811810dd0dc73
3
+ metadata.gz: 1c4a018e78cb9e91efa9f1c46135c7196ac33b5ea7583596c8aad432a3a8e2cc
4
+ data.tar.gz: e8a9499c446e0b428bf1b1d36ea1530c018fca4eb3c80bffbc2a228919e17da5
5
5
  SHA512:
6
- metadata.gz: 86004d977d07877bf268fa1b79f4645c396ca10be5c4474dbacc8c81cc43aa87a236b218424906f3f452f210aa9f6d5ab0aef710dffe7e978773b853fe29649c
7
- data.tar.gz: 8bf932e88c5fbfb30451f8f807cf1f9ae0275a7cd8089d9379aee09538e080563b95ea281e200932add3efeb62c619f2a5cbff620b99c46f605fd6d3e1f28207
6
+ metadata.gz: e9e67f6fa6fd3a0709da0261ba970de037097d6d90cb9971df55acc21f3dc57ea8a1273a4ed6f2c2d7773ca1b32298fa6e97b1a2f303d5ea199030458bce3f04
7
+ data.tar.gz: b48d5a01cbd5841d0fc9df6fe039369d30696392815082c6aa0c249129088117423b0233c17e5be05a5fcfec25acb4f3d4dbf5dcabe37c146aecae1cdcdc4413
data/CHANGELOG.md CHANGED
@@ -1,12 +1,15 @@
1
1
  ## 1.8.0 [unreleased]
2
2
 
3
+ ### Features
4
+ 1. [#26](https://github.com/influxdata/influxdb-plugin-fluent/pull/26): Add placeholder support for bucket & measurement fields
5
+
3
6
  ## 1.7.0 [2021-03-05]
4
7
 
5
8
  ### Features
6
- 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
7
10
 
8
11
  ### 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`
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`
10
13
 
11
14
  ## 1.6.0 [2020-10-02]
12
15
 
@@ -18,7 +21,7 @@
18
21
 
19
22
  ## 1.5.0 [2020-07-17]
20
23
 
21
- 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`
22
25
 
23
26
  ### Dependencies
24
27
  1. [#11](https://github.com/influxdata/influxdb-plugin-fluent/pull/11): Upgrade InfluxDB client to 1.6.0
@@ -26,7 +29,7 @@
26
29
  ## 1.4.0 [2020-06-19]
27
30
 
28
31
  ### Features
29
- 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
30
33
 
31
34
  ### Dependencies
32
35
  1. [#9](https://github.com/influxdata/influxdb-plugin-fluent/pull/9): Upgrade InfluxDB client to 1.5.0
@@ -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)
@@ -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.1021
4
+ version: 1.8.0.pre.1156
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-04-16 00:00:00.000000000 Z
11
+ date: 2021-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd