fluent-plugin-opensearch 1.0.5 → 1.0.8

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: 0dc7a8e74a02c8940f19855c7377b7022e62ba0a9645e63eb2df366b0e085bb1
4
- data.tar.gz: 482ed0c66522385c60a0765fbd0852e6158050ed4f803b7fed8a7045faf67beb
3
+ metadata.gz: ba58a770b6f7d4aa621091bee5315988649ef54d2bb4b4c23e980d9ee8598008
4
+ data.tar.gz: 5f6023c9456af019bf82141180a76b01bc322418456c191ceae72c7f794fe44f
5
5
  SHA512:
6
- metadata.gz: ddab26f5bd880a43a29a345db493e7ceb39aafd5d6a583fd895975808041ee2856b125d579ffa64e8716f46e340e6a0e8d4079bc790b9a8b60f3ebcba1f53168
7
- data.tar.gz: 4e2e566e012edcab487b66c6e5ca2cfe0e0e87d4470bbc79704d830ee561789a16e537967d549a1d0ea687cf59a7cf86781de1ae7dfdd15928934a2fc86ecae0
6
+ metadata.gz: 98474ac3e7329082aace9f0d671c0ecf60844fa0bab91c431be8c0dc8ddd0bcfeca60ef0612d8c7e79459a4da528f266ecce0a42eea5029d28fce7483d6e87ec
7
+ data.tar.gz: 5879925be1f7b7079eb7f7c44d50145aab2f1b76afb6f99d3345252d25f96ce7b8fcf3bd1a215252d6e7a1ab76cc727a02bc6b2aaa854e9f98e969c485e7df61
data/History.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  ### [Unreleased]
4
4
 
5
+ ### 1.0.8
6
+ - Use faraday 1.x explicitly (#71)
7
+
8
+ ### 1.0.7
9
+ - Expire AWS credentials with a certain interval (#52)
10
+
11
+ ### 1.0.6
12
+ - out\_opensearch: Handle suppress\_type\_name operation correctly (#61)
13
+
5
14
  ### 1.0.5
6
15
  - Use if clause to detect requirements for emitting error label events (#57)
7
16
  - opensearch_data_stream: Align lowercases for data_stream and its template names (#50)
data/README.md CHANGED
@@ -1432,7 +1432,7 @@ Specify AWS OpenSearch Service endpoint.
1432
1432
  </endpoint>
1433
1433
  ```
1434
1434
 
1435
- **NOTE:** This plugin will remove trailing slashes automatically. You don't need to pay attension to the trailing slash characters.
1435
+ **NOTE:** This plugin will remove trailing slashes automatically. You don't need to pay attention to the trailing slash characters.
1436
1436
 
1437
1437
  #### access_key_id
1438
1438
 
@@ -1564,6 +1564,19 @@ In this case, the endpoint configuration looks like:
1564
1564
  </endpoint>
1565
1565
  ```
1566
1566
 
1567
+ ### Expiring AWS credentials
1568
+
1569
+ If you want to expire AWS credentials in certain interval, you should specify `refresh_credentials_interval` parameter under `endpoint` section:
1570
+
1571
+ ```aconf
1572
+ <endpoint>
1573
+ url https://CLUSTER_ENDPOINT_URL
1574
+ region eu-west-1
1575
+ # ...
1576
+ refresh_credentials_interval 3h # default is 5h (five hours).
1577
+ </endpoint>
1578
+ ```
1579
+
1567
1580
  ## Troubleshooting
1568
1581
 
1569
1582
  See [Troubleshooting document](README.Troubleshooting.md)
@@ -3,7 +3,7 @@ $:.push File.expand_path('../lib', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'fluent-plugin-opensearch'
6
- s.version = '1.0.5'
6
+ s.version = '1.0.8'
7
7
  s.authors = ['Hiroshi Hatake']
8
8
  s.email = ['cosmo0920.wp@gmail.com']
9
9
  s.description = %q{Opensearch output plugin for Fluent event collector}
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
26
26
  s.add_runtime_dependency 'excon', '>= 0'
27
27
  s.add_runtime_dependency 'opensearch-ruby'
28
28
  s.add_runtime_dependency "aws-sdk-core", "~> 3"
29
+ s.add_runtime_dependency "faraday", "~> 1.10"
29
30
  s.add_runtime_dependency "faraday_middleware-aws-sigv4"
30
31
 
31
32
 
@@ -194,6 +194,7 @@ module Fluent::Plugin
194
194
  config_param :assume_role_session_name, :string, :default => "fluentd"
195
195
  config_param :assume_role_web_identity_token_file, :string, :default => nil
196
196
  config_param :sts_credentials_region, :string, :default => nil
197
+ config_param :refresh_credentials_interval, :time, :default => "5h"
197
198
  end
198
199
 
199
200
  config_section :buffer do
@@ -336,6 +337,22 @@ module Fluent::Plugin
336
337
  }
337
338
  end
338
339
  end
340
+ # If AWS credentials is set, consider to expire credentials information forcibly before expired.
341
+ @credential_mutex = Mutex.new
342
+ if @endpoint
343
+ @_aws_credentials = aws_credentials(@endpoint)
344
+
345
+ if @endpoint.refresh_credentials_interval
346
+ timer_execute(:out_opensearch_expire_credentials, @endpoint.refresh_credentials_interval) do
347
+ log.debug('Recreate the AWS credentials')
348
+
349
+ @credential_mutex.synchronize do
350
+ @_os = nil
351
+ @_aws_credentials = aws_credentials(@endpoint)
352
+ end
353
+ end
354
+ end
355
+ end
339
356
 
340
357
  @serializer_class = nil
341
358
  begin
@@ -607,7 +624,7 @@ module Fluent::Plugin
607
624
  :aws_sigv4,
608
625
  service: 'es',
609
626
  region: @endpoint.region,
610
- credentials: aws_credentials(@endpoint),
627
+ credentials: @_aws_credentials,
611
628
  )
612
629
 
613
630
  f.adapter @http_backend, @backend_options
@@ -989,7 +1006,7 @@ module Fluent::Plugin
989
1006
  end
990
1007
  end
991
1008
 
992
- if @suppress_type_name
1009
+ if @suppress_type_name || @last_seen_major_version >= 2
993
1010
  target_type = nil
994
1011
  else
995
1012
  # OpenSearch only supports "_doc".
@@ -998,7 +1015,7 @@ module Fluent::Plugin
998
1015
 
999
1016
  meta.clear
1000
1017
  meta["_index".freeze] = target_index
1001
- meta["_type".freeze] = target_type
1018
+ meta["_type".freeze] = target_type unless target_type.nil?
1002
1019
  meta["_alias".freeze] = target_index_alias
1003
1020
 
1004
1021
  if @pipeline
@@ -2320,8 +2320,9 @@ class OpenSearchOutputTest < Test::Unit::TestCase
2320
2320
  end
2321
2321
 
2322
2322
  data(
2323
- "OpenSearch default"=> {"os_version" => 1, "_type" => "_doc", "suppress_type" => false},
2324
- "Suppressed type" => {"os_version" => 1, "_type" => nil, "suppress_type" => true},
2323
+ "OpenSearch default" => {"os_version" => 1, "_type" => "_doc", "suppress_type" => false},
2324
+ "Suppressed type" => {"os_version" => 1, "_type" => nil, "suppress_type" => true},
2325
+ "OpenSearch 2" => {"os_version" => 2, "_type" => nil, "suppress_type" => true},
2325
2326
  )
2326
2327
  def test_writes_to_speficied_type(data)
2327
2328
  driver('', data["os_version"]).configure("suppress_type_name #{data['suppress_type']}")
@@ -2330,7 +2331,12 @@ class OpenSearchOutputTest < Test::Unit::TestCase
2330
2331
  driver.run(default_tag: 'test') do
2331
2332
  driver.feed(sample_record)
2332
2333
  end
2333
- assert_equal(data['_type'], index_cmds.first['index']['_type'])
2334
+ if data["suppress_type"] || data["os_version"] >= 2
2335
+ assert_false(index_cmds.first['index'].has_key?("_type"))
2336
+ else
2337
+ assert_true(index_cmds.first['index'].has_key?("_type"))
2338
+ assert_equal(data['_type'], index_cmds.first['index']['_type'])
2339
+ end
2334
2340
  end
2335
2341
 
2336
2342
  def test_writes_to_speficied_host
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-opensearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroshi Hatake
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-25 00:00:00.000000000 Z
11
+ date: 2022-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: faraday
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.10'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.10'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: faraday_middleware-aws-sigv4
71
85
  requirement: !ruby/object:Gem::Requirement