fluent-plugin-elasticsearch 3.3.0 → 3.3.1

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: '029a448c4a3a928294dd5bf42e6cfd307b0ec035f6450255f239357413321247'
4
- data.tar.gz: c88e603bce04eb4d1e34e347bd1b97d8a799c16c4149900ecd9e2b7cbc2dbcce
3
+ metadata.gz: 31cc9563debdbede8ae6e51e6e43089150c5ce736457433a9f4e8dc5652fb489
4
+ data.tar.gz: 021c1bde5bc10ffcd24536a7fcda38151dcc2508edcfb87b973dee8cf8f1fdd4
5
5
  SHA512:
6
- metadata.gz: 964c3453011c608aaaaf78c7d7af899d5a981036f70fb8d3c1dd592b450010a447a29638486732c19af4802aeb9239dc1402652f094cda7c3ac834fb495dc860
7
- data.tar.gz: 0615267ec3802f4e7f8693c50628cea67c648da38970dfbc54a01b54099f3446a00f2f924efd7354a954bfc521d5894fcd65fc3ad8aac2f3f4050ce23dbd6dd6
6
+ metadata.gz: faca5fb42a3a126f27b864a48588a1fd918b645b16287500b2793150ed83fe5d2378f1c0527917fe33309a9fcb7af0f7645190700043f30fd8a02d3fd04ddcf6
7
+ data.tar.gz: 363df0da34ce21414a993c4464ba60766c3e0b0dd171b61674d6bd8850d3ca8d4055563d231439b1004cfc5aaa0b54f311e9002a6689c938960f011ab70e051a
data/History.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ### [Unreleased]
4
4
 
5
+ ### 3.3.1
6
+ - add new option to suppress doc wrapping (#557)
7
+ - Include 2 (#555)
8
+
5
9
  ### 3.3.0
6
10
  - Support builtin placeholders for host and hosts parameter (#554)
7
11
 
data/README.md CHANGED
@@ -81,6 +81,7 @@ Current maintainers: @cosmo0920
81
81
  + [Placeholders](#placeholders)
82
82
  + [Multi workers](#multi-workers)
83
83
  + [log_es_400_reason](#log_es_400_reason)
84
+ + [suppress_doc_wrap](#suppress_doc_wrap)
84
85
  * [Troubleshooting](#troubleshooting)
85
86
  + [Cannot send events to elasticsearch](#cannot-send-events-to-elasticsearch)
86
87
  + [Cannot see detailed failure log](#cannot-see-detailed-failure-log)
@@ -1025,6 +1026,12 @@ By default, the error logger won't record the reason for a 400 error from the El
1025
1026
 
1026
1027
  Default value is `false`.
1027
1028
 
1029
+ ## suppress_doc_wrap
1030
+
1031
+ By default, record body is wrapped by 'doc'. This behavior can not handle update script requests. You can set this to suppress doc wrapping and allow record body to be untouched.
1032
+
1033
+ Default value is `false`.
1034
+
1028
1035
  ## Troubleshooting
1029
1036
 
1030
1037
  ### Cannot send events to Elasticsearch
@@ -1265,7 +1272,7 @@ The following configuration uses label:
1265
1272
  fluent-plugin-elasticsearch default behavior has a possibility to cause events traffic jam.
1266
1273
  When users use `flush_thread_count` = 1, ES plugin retries to send events if connection errors are disappeared.
1267
1274
 
1268
- To prevent the following warning and sending events blocking, you must specify `flush_thread_count` > 2:
1275
+ To prevent the following warning and sending events blocking, you must specify `flush_thread_count` >= 2:
1269
1276
 
1270
1277
  ```log
1271
1278
  2018-12-24 14:32:06 +0900 [warn]: #0 To prevent events traffic jam, you should specify 2 or more 'flush_thread_count'.
@@ -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-elasticsearch'
6
- s.version = '3.3.0'
6
+ s.version = '3.3.1'
7
7
  s.authors = ['diogo', 'pitr']
8
8
  s.email = ['pitr.vern@gmail.com', 'me@diogoterror.com']
9
9
  s.description = %q{Elasticsearch output plugin for Fluent event collector}
@@ -132,6 +132,7 @@ EOC
132
132
  config_param :default_elasticsearch_version, :integer, :default => DEFAULT_ELASTICSEARCH_VERSION
133
133
  config_param :log_es_400_reason, :bool, :default => false
134
134
  config_param :custom_headers, :hash, :default => {}
135
+ config_param :suppress_doc_wrap, :bool, :default => false
135
136
 
136
137
  config_section :buffer do
137
138
  config_set_default :@type, DEFAULT_BUFFER_TYPE
@@ -468,6 +469,9 @@ EOC
468
469
 
469
470
  def update_body(record, op)
470
471
  update = remove_keys(record)
472
+ if @suppress_doc_wrap
473
+ return update
474
+ end
471
475
  body = {"doc".freeze => update}
472
476
  if op == UPSERT_OP
473
477
  if update == record
@@ -2510,4 +2510,59 @@ class ElasticsearchOutput < Test::Unit::TestCase
2510
2510
  assert_logs_include_compare_size(1, "<=", log, /In Fluent::Plugin::ElasticsearchSimpleSniffer hosts/)
2511
2511
  end
2512
2512
 
2513
+ def test_suppress_doc_wrap
2514
+ driver.configure('write_operation update
2515
+ id_key id
2516
+ remove_keys id
2517
+ suppress_doc_wrap true')
2518
+ stub_elastic
2519
+ doc_body = {'field' => 'value'}
2520
+ script_body = {'source' => 'ctx._source.counter += params.param1',
2521
+ 'lang' => 'painless',
2522
+ 'params' => {'param1' => 1}}
2523
+ upsert_body = {'counter' => 1}
2524
+ driver.run(default_tag: 'test') do
2525
+ driver.feed('id' => 1, 'doc' => doc_body)
2526
+ driver.feed('id' => 2, 'script' => script_body, 'upsert' => upsert_body)
2527
+ end
2528
+ assert(
2529
+ index_cmds[1] == {'doc' => doc_body}
2530
+ )
2531
+ assert(
2532
+ index_cmds[3] == {
2533
+ 'script' => script_body,
2534
+ 'upsert' => upsert_body
2535
+ }
2536
+ )
2537
+ end
2538
+
2539
+ def test_suppress_doc_wrap_should_handle_record_as_is_at_upsert
2540
+ driver.configure('write_operation upsert
2541
+ id_key id
2542
+ remove_keys id
2543
+ suppress_doc_wrap true')
2544
+ stub_elastic
2545
+ doc_body = {'field' => 'value'}
2546
+ script_body = {'source' => 'ctx._source.counter += params.param1',
2547
+ 'lang' => 'painless',
2548
+ 'params' => {'param1' => 1}}
2549
+ upsert_body = {'counter' => 1}
2550
+ driver.run(default_tag: 'test') do
2551
+ driver.feed('id' => 1, 'doc' => doc_body, 'doc_as_upsert' => true)
2552
+ driver.feed('id' => 2, 'script' => script_body, 'upsert' => upsert_body)
2553
+ end
2554
+ assert(
2555
+ index_cmds[1] == {
2556
+ 'doc' => doc_body,
2557
+ 'doc_as_upsert' => true
2558
+ }
2559
+ )
2560
+ assert(
2561
+ index_cmds[3] == {
2562
+ 'script' => script_body,
2563
+ 'upsert' => upsert_body
2564
+ }
2565
+ )
2566
+ end
2567
+
2513
2568
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-elasticsearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0
4
+ version: 3.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - diogo
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-03-01 00:00:00.000000000 Z
12
+ date: 2019-03-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd