fluent-plugin-elasticsearch 5.0.5 → 5.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +4 -0
- data/README.md +1 -1
- data/fluent-plugin-elasticsearch.gemspec +1 -1
- data/lib/fluent/plugin/elasticsearch_index_template.rb +13 -1
- data/lib/fluent/plugin/out_elasticsearch.rb +2 -2
- data/test/plugin/test_elasticsearch_fallback_selector.rb +1 -1
- data/test/plugin/test_elasticsearch_index_lifecycle_management.rb +10 -0
- data/test/plugin/test_in_elasticsearch.rb +12 -0
- data/test/plugin/test_out_elasticsearch.rb +224 -17
- data/test/plugin/test_out_elasticsearch_data_stream.rb +9 -1
- data/test/plugin/test_out_elasticsearch_dynamic.rb +100 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89dfb07388fcdb941bd3dc13a9e481fcb2ecf8f4a0b3c828b6a539f13c90e8ee
|
4
|
+
data.tar.gz: ee8ac22c05d144076e62311e013fea483d72493d6066f87712b5c325f3c215e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a69fbfa9c0fab591f55656d87cc99aa003aa4e3b7a7d1b2819bd385e70d0c67d7b91dfff0fa42cfeafe94b6fe8f467b069ed075a2776809d0615f6e243f8c355
|
7
|
+
data.tar.gz: 572585eeb9e939d2b08e5fe0590bd25f02b8390a730d9f3012c44604b33123d9372cf59ac50a108119b413f3d718e2a606a0b21dc62f676199329e3b12c6073c
|
data/History.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
### [Unreleased]
|
4
4
|
|
5
|
+
### 5.1.0
|
6
|
+
- Correct default target bytes value (#914)
|
7
|
+
- Handle elasticsearch-ruby 7.14 properly (#913)
|
8
|
+
|
5
9
|
### 5.0.5
|
6
10
|
- Drop json_parse_exception messages for bulk failures (#900)
|
7
11
|
- GitHub Actions: Drop Ruby 2.5 due to EOL (#894)
|
data/README.md
CHANGED
@@ -11,7 +11,7 @@ Send your logs to Elasticsearch (and search them with Kibana maybe?)
|
|
11
11
|
|
12
12
|
Note: For Amazon Elasticsearch Service please consider using [fluent-plugin-aws-elasticsearch-service](https://github.com/atomita/fluent-plugin-aws-elasticsearch-service)
|
13
13
|
|
14
|
-
Current maintainers: @cosmo0920
|
14
|
+
Current maintainers: [Hiroshi Hatake | @cosmo0920](https://github.com/cosmo0920), [Kentaro Hayashi | @kenhys](https://github.com/kenhys)
|
15
15
|
|
16
16
|
* [Installation](#installation)
|
17
17
|
* [Usage](#usage)
|
@@ -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 = '5.0
|
6
|
+
s.version = '5.1.0'
|
7
7
|
s.authors = ['diogo', 'pitr', 'Hiroshi Hatake']
|
8
8
|
s.email = ['pitr.vern@gmail.com', 'me@diogoterror.com', 'cosmo0920.wp@gmail.com']
|
9
9
|
s.description = %q{Elasticsearch output plugin for Fluent event collector}
|
@@ -32,13 +32,25 @@ module Fluent::ElasticsearchIndexTemplate
|
|
32
32
|
return false
|
33
33
|
end
|
34
34
|
|
35
|
+
def host_unreachable_exceptions
|
36
|
+
if Gem::Version.new(::Elasticsearch::Transport::VERSION) >= Gem::Version.new("7.14.0")
|
37
|
+
# elasticsearch-ruby 7.14.0's elasticsearch-transport does not extends
|
38
|
+
# Elasticsearch class on Transport.
|
39
|
+
# This is why #host_unreachable_exceptions is not callable directly
|
40
|
+
# via transport (not transport's transport instance accessor) any more.
|
41
|
+
client.transport.transport.host_unreachable_exceptions
|
42
|
+
else
|
43
|
+
client.transport.host_unreachable_exceptions
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
35
47
|
def retry_operate(max_retries, fail_on_retry_exceed = true, catch_trasport_exceptions = true)
|
36
48
|
return unless block_given?
|
37
49
|
retries = 0
|
38
50
|
transport_errors = Elasticsearch::Transport::Transport::Errors.constants.map{ |c| Elasticsearch::Transport::Transport::Errors.const_get c } if catch_trasport_exceptions
|
39
51
|
begin
|
40
52
|
yield
|
41
|
-
rescue *
|
53
|
+
rescue *host_unreachable_exceptions, *transport_errors, Timeout::Error => e
|
42
54
|
@_es = nil
|
43
55
|
@_es_info = nil
|
44
56
|
if retries < max_retries
|
@@ -72,7 +72,7 @@ module Fluent::Plugin
|
|
72
72
|
DEFAULT_TYPE_NAME_ES_7x = "_doc".freeze
|
73
73
|
DEFAULT_TYPE_NAME = "fluentd".freeze
|
74
74
|
DEFAULT_RELOAD_AFTER = -1
|
75
|
-
|
75
|
+
DEFAULT_TARGET_BULK_BYTES = -1
|
76
76
|
DEFAULT_POLICY_ID = "logstash-policy"
|
77
77
|
|
78
78
|
config_param :host, :string, :default => 'localhost'
|
@@ -166,7 +166,7 @@ EOC
|
|
166
166
|
config_param :suppress_doc_wrap, :bool, :default => false
|
167
167
|
config_param :ignore_exceptions, :array, :default => [], value_type: :string, :desc => "Ignorable exception list"
|
168
168
|
config_param :exception_backup, :bool, :default => true, :desc => "Chunk backup flag when ignore exception occured"
|
169
|
-
config_param :bulk_message_request_threshold, :size, :default =>
|
169
|
+
config_param :bulk_message_request_threshold, :size, :default => DEFAULT_TARGET_BULK_BYTES
|
170
170
|
config_param :compression_level, :enum, list: [:no_compression, :best_speed, :best_compression, :default_compression], :default => :no_compression
|
171
171
|
config_param :enable_ilm, :bool, :default => false
|
172
172
|
config_param :ilm_policy_id, :string, :default => DEFAULT_POLICY_ID
|
@@ -19,7 +19,7 @@ class ElasticsearchFallbackSelectorTest < Test::Unit::TestCase
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def stub_elastic_info(url="http://localhost:9200/", version="6.4.2")
|
22
|
-
body ="{\"version\":{\"number\":\"#{version}\"}}"
|
22
|
+
body ="{\"version\":{\"number\":\"#{version}\", \"build_flavor\":\"default\"},\"tagline\" : \"You Know, for Search\"}"
|
23
23
|
stub_request(:get, url).to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'json' } })
|
24
24
|
end
|
25
25
|
|
@@ -27,9 +27,15 @@ class TestElasticsearchIndexLifecycleManagement < Test::Unit::TestCase
|
|
27
27
|
CODE
|
28
28
|
end
|
29
29
|
|
30
|
+
def stub_elastic_info(url="http://localhost:9200/", version="7.9.0")
|
31
|
+
body ="{\"version\":{\"number\":\"#{version}\", \"build_flavor\":\"default\"},\"tagline\" : \"You Know, for Search\"}"
|
32
|
+
stub_request(:get, url).to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'json' } })
|
33
|
+
end
|
34
|
+
|
30
35
|
def test_xpack_info
|
31
36
|
stub_request(:get, "http://localhost:9200/_xpack").
|
32
37
|
to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
|
38
|
+
stub_elastic_info
|
33
39
|
expected = {"features"=>{"ilm"=>{"available"=>true, "enabled"=>true}}}
|
34
40
|
assert_equal(expected, xpack_info)
|
35
41
|
end
|
@@ -37,18 +43,21 @@ class TestElasticsearchIndexLifecycleManagement < Test::Unit::TestCase
|
|
37
43
|
def test_verify_ilm_working
|
38
44
|
stub_request(:get, "http://localhost:9200/_xpack").
|
39
45
|
to_return(:status => 200, :body => '{"features":{"ilm":{"available":true,"enabled":true}}}', :headers => {"Content-Type"=> "application/json"})
|
46
|
+
stub_elastic_info
|
40
47
|
assert_nothing_raised { verify_ilm_working }
|
41
48
|
end
|
42
49
|
|
43
50
|
def test_ilm_policy_doesnt_exists
|
44
51
|
stub_request(:get, "http://localhost:9200/_ilm/policy/%7B:policy_id=%3E%22fluentd-policy%22%7D").
|
45
52
|
to_return(:status => 404, :body => "", :headers => {})
|
53
|
+
stub_elastic_info
|
46
54
|
assert_false(ilm_policy_exists?(policy_id: "fluentd-policy"))
|
47
55
|
end
|
48
56
|
|
49
57
|
def test_ilm_policy_exists
|
50
58
|
stub_request(:get, "http://localhost:9200/_ilm/policy/%7B:policy_id=%3E%22fluent-policy%22%7D").
|
51
59
|
to_return(:status => 200, :body => "", :headers => {})
|
60
|
+
stub_elastic_info
|
52
61
|
assert_true(ilm_policy_exists?(policy_id: "fluent-policy"))
|
53
62
|
end
|
54
63
|
|
@@ -59,6 +68,7 @@ class TestElasticsearchIndexLifecycleManagement < Test::Unit::TestCase
|
|
59
68
|
with(:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}",
|
60
69
|
:headers => {'Content-Type'=>'application/json'}).
|
61
70
|
to_return(:status => 200, :body => "", :headers => {})
|
71
|
+
stub_elastic_info
|
62
72
|
create_ilm_policy("fluent-policy")
|
63
73
|
|
64
74
|
assert_requested(:put, "http://localhost:9200/_ilm/policy/fluent-policy", times: 1)
|
@@ -31,6 +31,11 @@ class ElasticsearchInputTest < Test::Unit::TestCase
|
|
31
31
|
@driver ||= Fluent::Test::Driver::Input.new(Fluent::Plugin::ElasticsearchInput).configure(conf)
|
32
32
|
end
|
33
33
|
|
34
|
+
def stub_elastic_info(url="http://localhost:9200/", version="7.9.0")
|
35
|
+
body ="{\"version\":{\"number\":\"#{version}\", \"build_flavor\":\"default\"},\"tagline\" : \"You Know, for Search\"}"
|
36
|
+
stub_request(:get, url).to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'json' } })
|
37
|
+
end
|
38
|
+
|
34
39
|
def sample_response(index_name="fluentd")
|
35
40
|
{
|
36
41
|
"took"=>4,
|
@@ -322,6 +327,7 @@ class ElasticsearchInputTest < Test::Unit::TestCase
|
|
322
327
|
with(body: "{\"sort\":[\"_doc\"]}").
|
323
328
|
to_return(status: 200, body: sample_response.to_s,
|
324
329
|
headers: {'Content-Type' => 'application/json'})
|
330
|
+
stub_elastic_info
|
325
331
|
|
326
332
|
driver(CONFIG)
|
327
333
|
driver.run(expect_emits: 1, timeout: 10)
|
@@ -337,6 +343,7 @@ class ElasticsearchInputTest < Test::Unit::TestCase
|
|
337
343
|
with(body: "{\"sort\":[\"_doc\"]}").
|
338
344
|
to_return(status: 200, body: sample_response(index_name).to_s,
|
339
345
|
headers: {'Content-Type' => 'application/json'})
|
346
|
+
stub_elastic_info
|
340
347
|
|
341
348
|
driver(CONFIG + %[index_name #{index_name}])
|
342
349
|
driver.run(expect_emits: 1, timeout: 10)
|
@@ -352,6 +359,7 @@ class ElasticsearchInputTest < Test::Unit::TestCase
|
|
352
359
|
with(body: "{\"sort\":[\"_doc\"]}").
|
353
360
|
to_return(status: 200, body: sample_response(index_name).to_s,
|
354
361
|
headers: {'Content-Type' => 'application/json'})
|
362
|
+
stub_elastic_info
|
355
363
|
|
356
364
|
driver(CONFIG + %[parse_timestamp])
|
357
365
|
driver.run(expect_emits: 1, timeout: 10)
|
@@ -370,6 +378,7 @@ class ElasticsearchInputTest < Test::Unit::TestCase
|
|
370
378
|
with(body: "{\"sort\":[\"_doc\"]}").
|
371
379
|
to_return(status: 200, body: sample_response(index_name).to_s,
|
372
380
|
headers: {'Content-Type' => 'application/json'})
|
381
|
+
stub_elastic_info
|
373
382
|
|
374
383
|
driver(CONFIG + %[parse_timestamp true
|
375
384
|
timestamp_key_format %Y-%m-%dT%H:%M:%S.%N%z
|
@@ -389,6 +398,7 @@ class ElasticsearchInputTest < Test::Unit::TestCase
|
|
389
398
|
with(body: "{\"sort\":[\"_doc\"]}").
|
390
399
|
to_return(status: 200, body: sample_response.to_s,
|
391
400
|
headers: {'Content-Type' => 'application/json'})
|
401
|
+
stub_elastic_info
|
392
402
|
|
393
403
|
driver(CONFIG + %[docinfo true])
|
394
404
|
driver.run(expect_emits: 1, timeout: 10)
|
@@ -412,6 +422,7 @@ class ElasticsearchInputTest < Test::Unit::TestCase
|
|
412
422
|
with(body: "{\"sort\":[\"_doc\"],\"slice\":{\"id\":1,\"max\":2}}").
|
413
423
|
to_return(status: 200, body: sample_response.to_s,
|
414
424
|
headers: {'Content-Type' => 'application/json'})
|
425
|
+
stub_elastic_info
|
415
426
|
|
416
427
|
driver(CONFIG + %[num_slices 2])
|
417
428
|
driver.run(expect_emits: 1, timeout: 10)
|
@@ -434,6 +445,7 @@ class ElasticsearchInputTest < Test::Unit::TestCase
|
|
434
445
|
body: "{\"scroll_id\":\"WomkoUKG0QPB679Ulo6TqQgh3pIGRUmrl9qXXGK3EeiQh9rbYNasTkspZQcJ01uz\"}") do
|
435
446
|
connection += 1
|
436
447
|
end
|
448
|
+
stub_elastic_info
|
437
449
|
scroll_request.to_return(lambda do |req|
|
438
450
|
if connection <= 1
|
439
451
|
{status: 200, body: sample_scroll_response_2.to_s,
|
@@ -45,6 +45,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
45
45
|
}.configure(conf)
|
46
46
|
end
|
47
47
|
|
48
|
+
def elasticsearch_transport_layer_decoupling?
|
49
|
+
Gem::Version.create(::Elasticsearch::Transport::VERSION) >= Gem::Version.new("7.14.0")
|
50
|
+
end
|
51
|
+
|
48
52
|
def default_type_name
|
49
53
|
Fluent::Plugin::ElasticsearchOutput::DEFAULT_TYPE_NAME
|
50
54
|
end
|
@@ -60,7 +64,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
60
64
|
end
|
61
65
|
|
62
66
|
def stub_elastic_info(url="http://localhost:9200/", version="6.4.2")
|
63
|
-
body ="{\"version\":{\"number\":\"#{version}\"}}"
|
67
|
+
body ="{\"version\":{\"number\":\"#{version}\", \"build_flavor\":\"default\"},\"tagline\" : \"You Know, for Search\"}"
|
64
68
|
stub_request(:get, url).to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'json' } })
|
65
69
|
end
|
66
70
|
|
@@ -261,7 +265,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
261
265
|
assert_true instance.verify_es_version_at_startup
|
262
266
|
assert_equal Fluent::Plugin::ElasticsearchOutput::DEFAULT_ELASTICSEARCH_VERSION, instance.default_elasticsearch_version
|
263
267
|
assert_false instance.log_es_400_reason
|
264
|
-
assert_equal
|
268
|
+
assert_equal -1, Fluent::Plugin::ElasticsearchOutput::DEFAULT_TARGET_BULK_BYTES
|
265
269
|
assert_false instance.compression
|
266
270
|
assert_equal :no_compression, instance.compression_level
|
267
271
|
assert_true instance.http_backend_excon_nonblock
|
@@ -298,16 +302,25 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
298
302
|
}
|
299
303
|
instance = driver(config).instance
|
300
304
|
|
301
|
-
|
305
|
+
if elasticsearch_transport_layer_decoupling?
|
306
|
+
assert_equal nil, instance.client.transport.transport.options[:transport_options][:headers]["Content-Encoding"]
|
307
|
+
else
|
308
|
+
assert_equal nil, instance.client.transport.options[:transport_options][:headers]["Content-Encoding"]
|
309
|
+
end
|
302
310
|
|
303
311
|
stub_request(:post, "http://localhost:9200/_bulk").
|
304
312
|
to_return(status: 200, body: "", headers: {})
|
313
|
+
stub_elastic_info
|
305
314
|
driver.run(default_tag: 'test') do
|
306
315
|
driver.feed(sample_record)
|
307
316
|
end
|
308
317
|
compressable = instance.compressable_connection
|
309
318
|
|
310
|
-
|
319
|
+
if elasticsearch_transport_layer_decoupling?
|
320
|
+
assert_equal "gzip", instance.client(nil, compressable).transport.transport.options[:transport_options][:headers]["Content-Encoding"]
|
321
|
+
else
|
322
|
+
assert_equal "gzip", instance.client(nil, compressable).transport.options[:transport_options][:headers]["Content-Encoding"]
|
323
|
+
end
|
311
324
|
end
|
312
325
|
|
313
326
|
test 'check compression option is passed to transport' do
|
@@ -318,16 +331,25 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
318
331
|
}
|
319
332
|
instance = driver(config).instance
|
320
333
|
|
321
|
-
|
334
|
+
if elasticsearch_transport_layer_decoupling?
|
335
|
+
assert_equal false, instance.client.transport.transport.options[:compression]
|
336
|
+
else
|
337
|
+
assert_equal false, instance.client.transport.options[:compression]
|
338
|
+
end
|
322
339
|
|
323
340
|
stub_request(:post, "http://localhost:9200/_bulk").
|
324
341
|
to_return(status: 200, body: "", headers: {})
|
342
|
+
stub_elastic_info
|
325
343
|
driver.run(default_tag: 'test') do
|
326
344
|
driver.feed(sample_record)
|
327
345
|
end
|
328
346
|
compressable = instance.compressable_connection
|
329
347
|
|
330
|
-
|
348
|
+
if elasticsearch_transport_layer_decoupling?
|
349
|
+
assert_equal true, instance.client(nil, compressable).transport.transport.options[:compression]
|
350
|
+
else
|
351
|
+
assert_equal true, instance.client(nil, compressable).transport.options[:compression]
|
352
|
+
end
|
331
353
|
end
|
332
354
|
|
333
355
|
test 'check configure cloud_id based client' do
|
@@ -414,7 +436,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
414
436
|
end
|
415
437
|
|
416
438
|
def stub_elastic_info_bad(url="http://localhost:9200/", version="6.4.2")
|
417
|
-
body ="{\"version\":{\"number\":\"#{version}\"}}"
|
439
|
+
body ="{\"version\":{\"number\":\"#{version}\",\"build_flavor\":\"default\"},\"tagline\":\"You Know, for Search\"}"
|
418
440
|
stub_request(:get, url).to_return({:status => 200, :body => body, :headers => { 'Content-Type' => 'text/plain' } })
|
419
441
|
end
|
420
442
|
|
@@ -431,9 +453,15 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
431
453
|
scheme https
|
432
454
|
@log_level info
|
433
455
|
}
|
434
|
-
|
435
|
-
|
436
|
-
|
456
|
+
if elasticsearch_transport_layer_decoupling?
|
457
|
+
assert_raise(NoMethodError) do
|
458
|
+
d = create_driver(config, 7, "\"7.10.1\"")
|
459
|
+
end
|
460
|
+
else
|
461
|
+
d = create_driver(config, 7, "\"7.10.1\"")
|
462
|
+
logs = d.logs
|
463
|
+
assert_logs_include(logs, /can not dig version information. Assuming Elasticsearch 7/)
|
464
|
+
end
|
437
465
|
end
|
438
466
|
end
|
439
467
|
|
@@ -496,6 +524,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
496
524
|
stub_request(:put, "http://localhost:9200/_ilm/policy/logstash-policy").
|
497
525
|
with(body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
|
498
526
|
to_return(status: 200, body: "", headers: {})
|
527
|
+
stub_elastic_info
|
499
528
|
|
500
529
|
assert_nothing_raised {
|
501
530
|
driver(config)
|
@@ -540,6 +569,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
540
569
|
stub_request(:put, "http://localhost:9200/_ilm/policy/logstash-policy").
|
541
570
|
with(body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"75gb\",\"max_age\":\"50d\"}}}}}}").
|
542
571
|
to_return(status: 200, body: "", headers: {})
|
572
|
+
stub_elastic_info
|
543
573
|
|
544
574
|
assert_nothing_raised {
|
545
575
|
driver(config)
|
@@ -556,6 +586,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
556
586
|
template_file #{template_file}
|
557
587
|
ilm_policy_overwrite true
|
558
588
|
}
|
589
|
+
stub_elastic_info
|
559
590
|
|
560
591
|
assert_raise(Fluent::ConfigError) {
|
561
592
|
driver(config)
|
@@ -938,6 +969,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
938
969
|
stub_request(:get, "https://logs.google.com:777/es//#{endpoint}/logstash").
|
939
970
|
with(basic_auth: ['john', 'doe']).
|
940
971
|
to_return(:status => 200, :body => "", :headers => {})
|
972
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
941
973
|
|
942
974
|
driver(config)
|
943
975
|
|
@@ -982,6 +1014,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
982
1014
|
stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
|
983
1015
|
with(basic_auth: ['john', 'doe']).
|
984
1016
|
to_return(:status => 200, :body => "", :headers => {})
|
1017
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
985
1018
|
|
986
1019
|
driver(config)
|
987
1020
|
|
@@ -1045,6 +1078,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
1045
1078
|
driver(config)
|
1046
1079
|
|
1047
1080
|
elastic_request = stub_elastic("https://logs.google.com:777/es//_bulk")
|
1081
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
1048
1082
|
driver.run(default_tag: 'test.template') do
|
1049
1083
|
driver.feed(sample_record)
|
1050
1084
|
end
|
@@ -1110,6 +1144,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
1110
1144
|
with(basic_auth: ['john', 'doe'],
|
1111
1145
|
body: "{\"aliases\":{\"myapp_deflector-test.template\":{\"is_write_index\":true}}}").
|
1112
1146
|
to_return(:status => 200, :body => "", :headers => {})
|
1147
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
1113
1148
|
|
1114
1149
|
driver(config)
|
1115
1150
|
|
@@ -1220,6 +1255,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
1220
1255
|
with(basic_auth: ['john', 'doe'],
|
1221
1256
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
|
1222
1257
|
to_return(:status => 200, :body => "", :headers => {})
|
1258
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
1223
1259
|
|
1224
1260
|
driver(config)
|
1225
1261
|
|
@@ -1306,6 +1342,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
1306
1342
|
with(basic_auth: ['john', 'doe'],
|
1307
1343
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
|
1308
1344
|
to_return(:status => 200, :body => "", :headers => {})
|
1345
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
1309
1346
|
|
1310
1347
|
driver(config)
|
1311
1348
|
|
@@ -1397,6 +1434,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
1397
1434
|
with(basic_auth: ['john', 'doe'],
|
1398
1435
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"60gb\",\"max_age\":\"45d\"}}}}}}").
|
1399
1436
|
to_return(:status => 200, :body => "", :headers => {})
|
1437
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
1400
1438
|
|
1401
1439
|
driver(config)
|
1402
1440
|
|
@@ -1505,6 +1543,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
1505
1543
|
with(basic_auth: ['john', 'doe'],
|
1506
1544
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
|
1507
1545
|
to_return(:status => 200, :body => "", :headers => {})
|
1546
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
1508
1547
|
|
1509
1548
|
driver(config)
|
1510
1549
|
|
@@ -1589,6 +1628,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
1589
1628
|
with(basic_auth: ['john', 'doe'],
|
1590
1629
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
|
1591
1630
|
to_return(:status => 200, :body => "", :headers => {})
|
1631
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
1592
1632
|
|
1593
1633
|
driver(config)
|
1594
1634
|
|
@@ -1673,6 +1713,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
1673
1713
|
with(basic_auth: ['john', 'doe'],
|
1674
1714
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
|
1675
1715
|
to_return(:status => 200, :body => "", :headers => {})
|
1716
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
1676
1717
|
|
1677
1718
|
driver(config)
|
1678
1719
|
|
@@ -1764,6 +1805,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
1764
1805
|
with(basic_auth: ['john', 'doe'],
|
1765
1806
|
body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
|
1766
1807
|
to_return(:status => 200, :body => "", :headers => {})
|
1808
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
1767
1809
|
|
1768
1810
|
driver(config)
|
1769
1811
|
|
@@ -1854,6 +1896,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
1854
1896
|
with(basic_auth: ['john', 'doe'],
|
1855
1897
|
body: "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"80gb\",\"max_age\":\"20d\"}}}}}}").
|
1856
1898
|
to_return(:status => 200, :body => "", :headers => {})
|
1899
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
1857
1900
|
|
1858
1901
|
driver(config)
|
1859
1902
|
|
@@ -1979,6 +2022,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
1979
2022
|
with(basic_auth: ['john', 'doe'],
|
1980
2023
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
|
1981
2024
|
to_return(:status => 200, :body => "", :headers => {})
|
2025
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
1982
2026
|
|
1983
2027
|
driver(config)
|
1984
2028
|
|
@@ -2075,6 +2119,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2075
2119
|
with(basic_auth: ['john', 'doe'],
|
2076
2120
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
|
2077
2121
|
to_return(:status => 200, :body => "", :headers => {})
|
2122
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2078
2123
|
|
2079
2124
|
driver(config)
|
2080
2125
|
|
@@ -2171,6 +2216,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2171
2216
|
with(basic_auth: ['john', 'doe'],
|
2172
2217
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
|
2173
2218
|
to_return(:status => 200, :body => "", :headers => {})
|
2219
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2174
2220
|
|
2175
2221
|
driver(config)
|
2176
2222
|
|
@@ -2226,6 +2272,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2226
2272
|
stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
|
2227
2273
|
with(basic_auth: ['john', 'doe']).
|
2228
2274
|
to_return(:status => 200, :body => "", :headers => {})
|
2275
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2229
2276
|
|
2230
2277
|
driver(config)
|
2231
2278
|
|
@@ -2278,6 +2325,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2278
2325
|
driver(config)
|
2279
2326
|
|
2280
2327
|
stub_elastic("https://logs.google.com:777/es//_bulk")
|
2328
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2281
2329
|
driver.run(default_tag: 'test.template') do
|
2282
2330
|
driver.feed(sample_record)
|
2283
2331
|
end
|
@@ -2329,6 +2377,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2329
2377
|
driver(config)
|
2330
2378
|
|
2331
2379
|
stub_elastic("https://logs-test.google.com:777/es//_bulk")
|
2380
|
+
stub_elastic_info("https://logs-test.google.com:777/es//")
|
2332
2381
|
driver.run(default_tag: 'test') do
|
2333
2382
|
driver.feed(sample_record)
|
2334
2383
|
end
|
@@ -2389,6 +2438,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2389
2438
|
stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/mylogs").
|
2390
2439
|
with(basic_auth: ['john', 'doe']).
|
2391
2440
|
to_return(:status => 200, :body => "", :headers => {})
|
2441
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2392
2442
|
|
2393
2443
|
driver(config)
|
2394
2444
|
|
@@ -2451,6 +2501,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2451
2501
|
stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fw%7Bxxxx.ww%7D%7D-000001%3E/#{alias_endpoint}/myapp_deflector").
|
2452
2502
|
with(basic_auth: ['john', 'doe']).
|
2453
2503
|
to_return(:status => 200, :body => "", :headers => {})
|
2504
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2454
2505
|
|
2455
2506
|
driver(config)
|
2456
2507
|
|
@@ -2519,6 +2570,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2519
2570
|
driver(config)
|
2520
2571
|
|
2521
2572
|
elastic_request = stub_elastic("https://logs.google.com:777/es//_bulk")
|
2573
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2522
2574
|
driver.run(default_tag: 'custom-test') do
|
2523
2575
|
driver.feed(sample_record)
|
2524
2576
|
end
|
@@ -2618,7 +2670,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2618
2670
|
with(basic_auth: ['john', 'doe'],
|
2619
2671
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
|
2620
2672
|
to_return(:status => 200, :body => "", :headers => {})
|
2621
|
-
|
2673
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2622
2674
|
driver(config)
|
2623
2675
|
|
2624
2676
|
assert_requested(:put, "https://logs.google.com:777/es//#{endpoint}/mylogs", times: 1)
|
@@ -2707,6 +2759,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2707
2759
|
with(basic_auth: ['john', 'doe'],
|
2708
2760
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"60gb\",\"max_age\":\"45d\"}}}}}}").
|
2709
2761
|
to_return(:status => 200, :body => "", :headers => {})
|
2762
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2710
2763
|
|
2711
2764
|
driver(config)
|
2712
2765
|
|
@@ -2736,6 +2789,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2736
2789
|
}
|
2737
2790
|
|
2738
2791
|
# Should raise error because multiple alias indices IllegalArgument Error on executing ILM feature
|
2792
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2739
2793
|
assert_raise(Fluent::ConfigError) do
|
2740
2794
|
driver(config)
|
2741
2795
|
end
|
@@ -2871,6 +2925,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2871
2925
|
with(basic_auth: ['john', 'doe'],
|
2872
2926
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"50gb\",\"max_age\":\"30d\"}}}}}}").
|
2873
2927
|
to_return(:status => 200, :body => "", :headers => {})
|
2928
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2874
2929
|
|
2875
2930
|
driver(config)
|
2876
2931
|
|
@@ -2961,7 +3016,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
2961
3016
|
with(basic_auth: ['john', 'doe'],
|
2962
3017
|
:body => "{\"policy\":{\"phases\":{\"hot\":{\"actions\":{\"rollover\":{\"max_size\":\"70gb\",\"max_age\":\"30d\"}}}}}}").
|
2963
3018
|
to_return(:status => 200, :body => "", :headers => {})
|
2964
|
-
|
3019
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
2965
3020
|
driver(config)
|
2966
3021
|
|
2967
3022
|
assert_requested(:put, "https://logs.google.com:777/es//#{endpoint}/mylogs", times: 1)
|
@@ -3007,6 +3062,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3007
3062
|
stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash").
|
3008
3063
|
with(basic_auth: ['john', 'doe']).
|
3009
3064
|
to_return(:status => 200, :body => "", :headers => {})
|
3065
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
3010
3066
|
|
3011
3067
|
driver(config)
|
3012
3068
|
|
@@ -3053,6 +3109,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3053
3109
|
stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/myapp_alias_template").
|
3054
3110
|
with(basic_auth: ['john', 'doe']).
|
3055
3111
|
to_return(:status => 200, :body => "", :headers => {})
|
3112
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
3056
3113
|
|
3057
3114
|
driver(config)
|
3058
3115
|
|
@@ -3115,6 +3172,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3115
3172
|
stub_request(:put, "https://logs.google.com:777/es//%3Cmylogs-myapp-%7Bnow%2Fd%7D-000001%3E/#{alias_endpoint}/myapp_deflector").
|
3116
3173
|
with(basic_auth: ['john', 'doe']).
|
3117
3174
|
to_return(:status => 200, :body => "", :headers => {})
|
3175
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
3118
3176
|
|
3119
3177
|
driver(config)
|
3120
3178
|
|
@@ -3141,7 +3199,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3141
3199
|
stub_request(:get, "https://logs.google.com:777/es//_template/logstash").
|
3142
3200
|
with(basic_auth: ['john', 'doe']).
|
3143
3201
|
to_return(:status => 404, :body => "", :headers => {})
|
3144
|
-
|
3202
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
3145
3203
|
|
3146
3204
|
assert_raise(RuntimeError) {
|
3147
3205
|
driver(config)
|
@@ -3193,7 +3251,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3193
3251
|
|
3194
3252
|
driver(config)
|
3195
3253
|
|
3196
|
-
stub_elastic("https://logs.google.com:777/es//_bulk")
|
3254
|
+
stub_elastic("https://logs-test.google.com:777/es//_bulk")
|
3255
|
+
stub_elastic_info("https://logs-test.google.com:777/es//")
|
3197
3256
|
driver.run(default_tag: 'test') do
|
3198
3257
|
driver.feed(sample_record)
|
3199
3258
|
end
|
@@ -3233,6 +3292,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3233
3292
|
connection_resets += 1
|
3234
3293
|
raise Faraday::ConnectionFailed, "Test message"
|
3235
3294
|
end
|
3295
|
+
stub_elastic_info("https://logs.google.com:778/es//")
|
3236
3296
|
|
3237
3297
|
assert_raise(Fluent::Plugin::ElasticsearchError::RetryableOperationExhaustedFailure) do
|
3238
3298
|
driver(config)
|
@@ -3274,6 +3334,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3274
3334
|
retries += 1
|
3275
3335
|
raise error
|
3276
3336
|
end
|
3337
|
+
stub_elastic_info("https://logs.google.com:778/es//")
|
3277
3338
|
|
3278
3339
|
assert_raise(Fluent::Plugin::ElasticsearchError::RetryableOperationExhaustedFailure) do
|
3279
3340
|
driver(config)
|
@@ -3317,6 +3378,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3317
3378
|
connection_resets += 1
|
3318
3379
|
raise Faraday::ConnectionFailed, "Test message"
|
3319
3380
|
end
|
3381
|
+
stub_elastic_info("https://logs.google.com:778/es//")
|
3320
3382
|
|
3321
3383
|
driver(config)
|
3322
3384
|
|
@@ -3372,6 +3434,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3372
3434
|
stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash3").
|
3373
3435
|
with(basic_auth: ['john', 'doe']).
|
3374
3436
|
to_return(:status => 200, :body => "", :headers => {})
|
3437
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
3375
3438
|
|
3376
3439
|
driver(config)
|
3377
3440
|
|
@@ -3429,6 +3492,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3429
3492
|
stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash3").
|
3430
3493
|
with(basic_auth: ['john', 'doe']).
|
3431
3494
|
to_return(:status => 200, :body => "", :headers => {})
|
3495
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
3432
3496
|
|
3433
3497
|
driver(config)
|
3434
3498
|
|
@@ -3487,6 +3551,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3487
3551
|
stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash2").
|
3488
3552
|
with(basic_auth: ['john', 'doe']).
|
3489
3553
|
to_return(:status => 200, :body => "", :headers => {})
|
3554
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
3490
3555
|
|
3491
3556
|
driver(config)
|
3492
3557
|
|
@@ -3537,6 +3602,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3537
3602
|
stub_request(:put, "https://logs.google.com:777/es//#{endpoint}/logstash2").
|
3538
3603
|
with(basic_auth: ['john', 'doe']).
|
3539
3604
|
to_return(:status => 200, :body => "", :headers => {})
|
3605
|
+
stub_elastic_info("https://logs.google.com:777/es//")
|
3540
3606
|
|
3541
3607
|
assert_raise(RuntimeError) {
|
3542
3608
|
driver(config)
|
@@ -3553,6 +3619,9 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3553
3619
|
path /es/
|
3554
3620
|
port 123
|
3555
3621
|
}
|
3622
|
+
stub_elastic_info("https://host1:50")
|
3623
|
+
stub_elastic_info("https://host2:100")
|
3624
|
+
stub_elastic_info("https://host3:123")
|
3556
3625
|
instance = driver(config).instance
|
3557
3626
|
|
3558
3627
|
assert_equal 3, instance.get_connection_options[:hosts].length
|
@@ -3575,6 +3644,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3575
3644
|
user default_user
|
3576
3645
|
password default_password
|
3577
3646
|
}
|
3647
|
+
stub_elastic_info("https://john:password@host1:443/elastic/")
|
3648
|
+
stub_elastic_info("http://host2")
|
3578
3649
|
instance = driver(config).instance
|
3579
3650
|
|
3580
3651
|
assert_equal 2, instance.get_connection_options[:hosts].length
|
@@ -3601,6 +3672,9 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3601
3672
|
user default_user
|
3602
3673
|
password default_password
|
3603
3674
|
}
|
3675
|
+
stub_elastic_info("https://j%2Bhn:passw%40rd@host1:443/elastic/")
|
3676
|
+
stub_elastic_info("http://host2")
|
3677
|
+
|
3604
3678
|
instance = driver(config).instance
|
3605
3679
|
|
3606
3680
|
assert_equal 2, instance.get_connection_options[:hosts].length
|
@@ -3801,6 +3875,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3801
3875
|
elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
|
3802
3876
|
with(headers: { "Content-Type" => "application/json" })
|
3803
3877
|
end
|
3878
|
+
stub_elastic_info
|
3804
3879
|
driver.run(default_tag: 'test') do
|
3805
3880
|
driver.feed(sample_record)
|
3806
3881
|
end
|
@@ -3812,6 +3887,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3812
3887
|
to_return(:status => 200, :body => "", :headers => {})
|
3813
3888
|
elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
|
3814
3889
|
with(headers: {'custom' => 'header1','and_others' => 'header2' })
|
3890
|
+
stub_elastic_info
|
3815
3891
|
driver.configure(%[custom_headers {"custom":"header1", "and_others":"header2"}])
|
3816
3892
|
driver.run(default_tag: 'test') do
|
3817
3893
|
driver.feed(sample_record)
|
@@ -3824,6 +3900,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3824
3900
|
to_return(:status => 200, :body => "", :headers => {})
|
3825
3901
|
elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
|
3826
3902
|
with(headers: {'Authorization'=>'ApiKey dGVzdGF1dGhoZWFkZXI='})
|
3903
|
+
stub_elastic_info
|
3827
3904
|
driver.configure(%[api_key testauthheader])
|
3828
3905
|
driver.run(default_tag: 'test') do
|
3829
3906
|
driver.feed(sample_record)
|
@@ -3834,6 +3911,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3834
3911
|
def test_write_message_with_bad_chunk
|
3835
3912
|
driver.configure("target_index_key bad_value\n@log_level debug\n")
|
3836
3913
|
stub_elastic
|
3914
|
+
stub_elastic_info
|
3837
3915
|
driver.run(default_tag: 'test') do
|
3838
3916
|
driver.feed({'bad_value'=>"\255"})
|
3839
3917
|
end
|
@@ -3849,6 +3927,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3849
3927
|
def test_writes_to_default_index(data)
|
3850
3928
|
version, index_name = data
|
3851
3929
|
stub_elastic
|
3930
|
+
stub_elastic_info
|
3852
3931
|
driver("", version)
|
3853
3932
|
driver.run(default_tag: 'test') do
|
3854
3933
|
driver.feed(sample_record)
|
@@ -3890,6 +3969,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3890
3969
|
|
3891
3970
|
elastic_request = stub_request(:post, "http://localhost:9200/_bulk").
|
3892
3971
|
to_return(:status => 200, :headers => {'Content-Type' => 'Application/json'}, :body => compressed_body)
|
3972
|
+
stub_elastic_info("http://localhost:9200/")
|
3893
3973
|
|
3894
3974
|
driver(config)
|
3895
3975
|
driver.run(default_tag: 'test') do
|
@@ -3906,6 +3986,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3906
3986
|
def test_writes_to_default_type(data)
|
3907
3987
|
version, index_type = data
|
3908
3988
|
stub_elastic
|
3989
|
+
stub_elastic_info
|
3909
3990
|
driver("", version)
|
3910
3991
|
driver.run(default_tag: 'test') do
|
3911
3992
|
driver.feed(sample_record)
|
@@ -3916,6 +3997,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3916
3997
|
def test_writes_to_speficied_index
|
3917
3998
|
driver.configure("index_name myindex\n")
|
3918
3999
|
stub_elastic
|
4000
|
+
stub_elastic_info
|
3919
4001
|
driver.run(default_tag: 'test') do
|
3920
4002
|
driver.feed(sample_record)
|
3921
4003
|
end
|
@@ -3935,6 +4017,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3935
4017
|
]
|
3936
4018
|
))
|
3937
4019
|
request = stub_elastic
|
4020
|
+
stub_elastic_info
|
3938
4021
|
driver.run(default_tag: 'test') do
|
3939
4022
|
driver.feed(sample_record('huge_record' => ("a" * 20 * 1024 * 1024)))
|
3940
4023
|
driver.feed(sample_record('huge_record' => ("a" * 20 * 1024 * 1024)))
|
@@ -3959,6 +4042,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3959
4042
|
body: /{"index":{"_index":"fluentd","_type":"fluentd"}}\n{"age":26,"request_id":"42","parent_id":"parent","routing_id":"routing","#{chunk_id_key}":".*"}\n/) do |req|
|
3960
4043
|
@index_cmds = req.body.split("\n").map {|r| JSON.parse(r) }
|
3961
4044
|
end
|
4045
|
+
stub_elastic_info
|
3962
4046
|
driver.run(default_tag: 'test', shutdown: false) do
|
3963
4047
|
driver.feed(sample_record)
|
3964
4048
|
end
|
@@ -3988,6 +4072,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
3988
4072
|
]
|
3989
4073
|
))
|
3990
4074
|
request = stub_elastic
|
4075
|
+
stub_elastic_info
|
3991
4076
|
driver.run(default_tag: 'test') do
|
3992
4077
|
driver.feed(sample_record('huge_record' => ("a" * 20 * 1024 * 1024)))
|
3993
4078
|
driver.feed(sample_record('huge_record' => ("a" * 20 * 1024 * 1024)))
|
@@ -4000,6 +4085,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4000
4085
|
def test_writes_to_speficied_index_with_tag_placeholder
|
4001
4086
|
driver.configure("index_name myindex.${tag}\n")
|
4002
4087
|
stub_elastic
|
4088
|
+
stub_elastic_info
|
4003
4089
|
driver.run(default_tag: 'test') do
|
4004
4090
|
driver.feed(sample_record)
|
4005
4091
|
end
|
@@ -4019,6 +4105,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4019
4105
|
]
|
4020
4106
|
))
|
4021
4107
|
stub_elastic
|
4108
|
+
stub_elastic_info
|
4022
4109
|
time = Time.parse Date.today.iso8601
|
4023
4110
|
driver.run(default_tag: 'test') do
|
4024
4111
|
driver.feed(time.to_i, sample_record)
|
@@ -4039,6 +4126,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4039
4126
|
pipeline_id = "mypipeline"
|
4040
4127
|
logstash_index = "myindex.#{pipeline_id}"
|
4041
4128
|
stub_elastic
|
4129
|
+
stub_elastic_info
|
4042
4130
|
driver.run(default_tag: 'test') do
|
4043
4131
|
driver.feed(time.to_i, sample_record.merge({"pipeline_id" => pipeline_id}))
|
4044
4132
|
end
|
@@ -4049,6 +4137,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4049
4137
|
def test_writes_to_speficied_index_uppercase
|
4050
4138
|
driver.configure("index_name MyIndex\n")
|
4051
4139
|
stub_elastic
|
4140
|
+
stub_elastic_info
|
4052
4141
|
driver.run(default_tag: 'test') do
|
4053
4142
|
driver.feed(sample_record)
|
4054
4143
|
end
|
@@ -4060,6 +4149,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4060
4149
|
def test_writes_to_target_index_key
|
4061
4150
|
driver.configure("target_index_key @target_index\n")
|
4062
4151
|
stub_elastic
|
4152
|
+
stub_elastic_info
|
4063
4153
|
record = sample_record.clone
|
4064
4154
|
driver.run(default_tag: 'test') do
|
4065
4155
|
driver.feed(sample_record.merge('@target_index' => 'local-override'))
|
@@ -4073,17 +4163,19 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4073
4163
|
logstash_format true")
|
4074
4164
|
time = Time.parse Date.today.iso8601
|
4075
4165
|
stub_elastic
|
4166
|
+
stub_elastic_info
|
4076
4167
|
driver.run(default_tag: 'test') do
|
4077
4168
|
driver.feed(time.to_i, sample_record.merge('@target_index' => 'local-override'))
|
4078
4169
|
end
|
4079
4170
|
assert_equal('local-override', index_cmds.first['index']['_index'])
|
4080
4171
|
end
|
4081
4172
|
|
4082
|
-
|
4173
|
+
def test_writes_to_target_index_key_logstash_uppercase
|
4083
4174
|
driver.configure("target_index_key @target_index
|
4084
4175
|
logstash_format true")
|
4085
4176
|
time = Time.parse Date.today.iso8601
|
4086
4177
|
stub_elastic
|
4178
|
+
stub_elastic_info
|
4087
4179
|
driver.run(default_tag: 'test') do
|
4088
4180
|
driver.feed(time.to_i, sample_record.merge('@target_index' => 'LOCAL-OVERRIDE'))
|
4089
4181
|
end
|
@@ -4096,6 +4188,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4096
4188
|
pipeline = "fluentd"
|
4097
4189
|
driver.configure("pipeline #{pipeline}")
|
4098
4190
|
stub_elastic
|
4191
|
+
stub_elastic_info
|
4099
4192
|
driver.run(default_tag: 'test') do
|
4100
4193
|
driver.feed(sample_record)
|
4101
4194
|
end
|
@@ -4192,6 +4285,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4192
4285
|
ids = [my_id_value]
|
4193
4286
|
indices = ["logstash-2021.04.28"]
|
4194
4287
|
stub_elastic
|
4288
|
+
stub_elastic_info
|
4195
4289
|
stub_elastic_affinity_target_index_search(ids, indices)
|
4196
4290
|
driver.run(default_tag: 'test') do
|
4197
4291
|
driver.feed(sample_record('my_id' => my_id_value))
|
@@ -4209,6 +4303,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4209
4303
|
ids = [my_id_value]
|
4210
4304
|
indices = ["logstash-2021.04.28"]
|
4211
4305
|
stub_elastic
|
4306
|
+
stub_elastic_info
|
4212
4307
|
stub_elastic_affinity_target_index_search(ids, indices)
|
4213
4308
|
driver.run(default_tag: 'test') do
|
4214
4309
|
driver.feed(sample_record('my_id' => my_id_value))
|
@@ -4225,6 +4320,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4225
4320
|
my_id_value = "3408a2c8eecd4fbfb82e45012b54fa82"
|
4226
4321
|
ids = [my_id_value]
|
4227
4322
|
stub_elastic
|
4323
|
+
stub_elastic_info
|
4228
4324
|
stub_elastic_affinity_target_index_search_return_empty(ids)
|
4229
4325
|
time = Time.parse Date.today.iso8601
|
4230
4326
|
driver.run(default_tag: 'test') do
|
@@ -4243,6 +4339,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4243
4339
|
my_id_value2 = "3408a2c8eecd4fbfb82e45012b54fa82"
|
4244
4340
|
ids = [my_id_value, my_id_value2]
|
4245
4341
|
indices = ["logstash-2021.04.29", "logstash-2021.04.28"]
|
4342
|
+
stub_elastic_info
|
4246
4343
|
stub_elastic_all_requests
|
4247
4344
|
stub_elastic_affinity_target_index_search(ids, indices)
|
4248
4345
|
driver.run(default_tag: 'test') do
|
@@ -4268,6 +4365,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4268
4365
|
# Simulate the used sorting here, as search sorts indices in DESC order to pick only oldest index per single _id
|
4269
4366
|
indices = ["logstash-2021.04.29", "logstash-2021.04.28"]
|
4270
4367
|
|
4368
|
+
stub_elastic_info
|
4271
4369
|
stub_elastic_all_requests
|
4272
4370
|
stub_elastic_affinity_target_index_search(ids, indices)
|
4273
4371
|
driver.run(default_tag: 'test') do
|
@@ -4286,6 +4384,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4286
4384
|
pipeline = "fluentd-${tag}"
|
4287
4385
|
driver.configure("pipeline #{pipeline}")
|
4288
4386
|
stub_elastic
|
4387
|
+
stub_elastic_info
|
4289
4388
|
driver.run(default_tag: 'test.builtin.placeholder') do
|
4290
4389
|
driver.feed(sample_record)
|
4291
4390
|
end
|
@@ -4307,6 +4406,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4307
4406
|
time = Time.parse Date.today.iso8601
|
4308
4407
|
pipeline = "fluentd-#{time.getutc.strftime("%Y%m%d")}"
|
4309
4408
|
stub_elastic
|
4409
|
+
stub_elastic_info
|
4310
4410
|
driver.run(default_tag: 'test') do
|
4311
4411
|
driver.feed(time.to_i, sample_record)
|
4312
4412
|
end
|
@@ -4326,6 +4426,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4326
4426
|
pipeline_id = "mypipeline"
|
4327
4427
|
logstash_index = "fluentd-#{pipeline_id}"
|
4328
4428
|
stub_elastic
|
4429
|
+
stub_elastic_info
|
4329
4430
|
driver.run(default_tag: 'test') do
|
4330
4431
|
driver.feed(time.to_i, sample_record.merge({"pipeline_id" => pipeline_id}))
|
4331
4432
|
end
|
@@ -4336,6 +4437,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4336
4437
|
def test_writes_to_target_index_key_fallack
|
4337
4438
|
driver.configure("target_index_key @target_index\n")
|
4338
4439
|
stub_elastic
|
4440
|
+
stub_elastic_info
|
4339
4441
|
driver.run(default_tag: 'test') do
|
4340
4442
|
driver.feed(sample_record)
|
4341
4443
|
end
|
@@ -4348,6 +4450,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4348
4450
|
time = Time.parse Date.today.iso8601
|
4349
4451
|
logstash_index = "logstash-#{time.getutc.strftime("%Y.%m.%d")}"
|
4350
4452
|
stub_elastic
|
4453
|
+
stub_elastic_info
|
4351
4454
|
driver.run(default_tag: 'test') do
|
4352
4455
|
driver.feed(time.to_i, sample_record)
|
4353
4456
|
end
|
@@ -4361,6 +4464,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4361
4464
|
def test_writes_to_speficied_type(data)
|
4362
4465
|
driver('', data["es_version"]).configure("type_name mytype\n")
|
4363
4466
|
stub_elastic
|
4467
|
+
stub_elastic_info
|
4364
4468
|
driver.run(default_tag: 'test') do
|
4365
4469
|
driver.feed(sample_record)
|
4366
4470
|
end
|
@@ -4374,6 +4478,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4374
4478
|
def test_writes_to_speficied_type_with_placeholders(data)
|
4375
4479
|
driver('', data["es_version"]).configure("type_name mytype.${tag}\n")
|
4376
4480
|
stub_elastic
|
4481
|
+
stub_elastic_info
|
4377
4482
|
driver.run(default_tag: 'test') do
|
4378
4483
|
driver.feed(sample_record)
|
4379
4484
|
end
|
@@ -4388,6 +4493,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4388
4493
|
driver('', data["es_version"])
|
4389
4494
|
.configure("type_name mytype.${tag}\nsuppress_type_name true")
|
4390
4495
|
stub_elastic
|
4496
|
+
stub_elastic_info
|
4391
4497
|
driver.run(default_tag: 'test') do
|
4392
4498
|
driver.feed(sample_record)
|
4393
4499
|
end
|
@@ -4402,6 +4508,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4402
4508
|
def test_writes_to_target_type_key(data)
|
4403
4509
|
driver('', data["es_version"]).configure("target_type_key @target_type\n")
|
4404
4510
|
stub_elastic
|
4511
|
+
stub_elastic_info
|
4405
4512
|
record = sample_record.clone
|
4406
4513
|
driver.run(default_tag: 'test') do
|
4407
4514
|
driver.feed(sample_record.merge('@target_type' => 'local-override'))
|
@@ -4413,6 +4520,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4413
4520
|
def test_writes_to_target_type_key_fallack_to_default
|
4414
4521
|
driver.configure("target_type_key @target_type\n")
|
4415
4522
|
stub_elastic
|
4523
|
+
stub_elastic_info
|
4416
4524
|
driver.run(default_tag: 'test') do
|
4417
4525
|
driver.feed(sample_record)
|
4418
4526
|
end
|
@@ -4423,6 +4531,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4423
4531
|
driver.configure("target_type_key @target_type
|
4424
4532
|
type_name mytype")
|
4425
4533
|
stub_elastic
|
4534
|
+
stub_elastic_info
|
4426
4535
|
driver.run(default_tag: 'test') do
|
4427
4536
|
driver.feed(sample_record)
|
4428
4537
|
end
|
@@ -4437,6 +4546,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4437
4546
|
def test_writes_to_target_type_key_nested(data)
|
4438
4547
|
driver('', data["es_version"]).configure("target_type_key kubernetes.labels.log_type\n")
|
4439
4548
|
stub_elastic
|
4549
|
+
stub_elastic_info
|
4440
4550
|
driver.run(default_tag: 'test') do
|
4441
4551
|
driver.feed(sample_record.merge('kubernetes' => {
|
4442
4552
|
'labels' => {
|
@@ -4451,6 +4561,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4451
4561
|
def test_writes_to_target_type_key_fallack_to_default_nested
|
4452
4562
|
driver.configure("target_type_key kubernetes.labels.log_type\n")
|
4453
4563
|
stub_elastic
|
4564
|
+
stub_elastic_info
|
4454
4565
|
driver.run(default_tag: 'test') do
|
4455
4566
|
driver.feed(sample_record.merge('kubernetes' => {
|
4456
4567
|
'labels' => {
|
@@ -4464,6 +4575,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4464
4575
|
def test_writes_to_speficied_host
|
4465
4576
|
driver.configure("host 192.168.33.50\n")
|
4466
4577
|
elastic_request = stub_elastic("http://192.168.33.50:9200/_bulk")
|
4578
|
+
stub_elastic_info("http://192.168.33.50:9200/")
|
4467
4579
|
driver.run(default_tag: 'test') do
|
4468
4580
|
driver.feed(sample_record)
|
4469
4581
|
end
|
@@ -4473,6 +4585,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4473
4585
|
def test_writes_to_speficied_port
|
4474
4586
|
driver.configure("port 9201\n")
|
4475
4587
|
elastic_request = stub_elastic("http://localhost:9201/_bulk")
|
4588
|
+
stub_elastic_info("http://localhost:9201")
|
4476
4589
|
driver.run(default_tag: 'test') do
|
4477
4590
|
driver.feed(sample_record)
|
4478
4591
|
end
|
@@ -4488,6 +4601,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4488
4601
|
hosts.each do |host_info|
|
4489
4602
|
host, port = host_info
|
4490
4603
|
stub_elastic_with_store_index_command_counts("http://#{host}:#{port}/_bulk")
|
4604
|
+
stub_elastic_info("http://#{host}:#{port}/")
|
4491
4605
|
end
|
4492
4606
|
|
4493
4607
|
driver.run(default_tag: 'test') do
|
@@ -4524,6 +4638,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4524
4638
|
]}
|
4525
4639
|
|
4526
4640
|
stub_elastic
|
4641
|
+
stub_elastic_info
|
4527
4642
|
driver.run(default_tag: 'test') do
|
4528
4643
|
driver.feed(original_hash)
|
4529
4644
|
end
|
@@ -4537,6 +4652,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4537
4652
|
expected_output = {"foo" => {"bar" => "baz"}}
|
4538
4653
|
|
4539
4654
|
stub_elastic
|
4655
|
+
stub_elastic_info
|
4540
4656
|
driver.run(default_tag: 'test') do
|
4541
4657
|
driver.feed(original_hash)
|
4542
4658
|
end
|
@@ -4545,6 +4661,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4545
4661
|
|
4546
4662
|
def test_makes_bulk_request
|
4547
4663
|
stub_elastic
|
4664
|
+
stub_elastic_info
|
4548
4665
|
driver.run(default_tag: 'test') do
|
4549
4666
|
driver.feed(sample_record)
|
4550
4667
|
driver.feed(sample_record.merge('age' => 27))
|
@@ -4552,8 +4669,9 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4552
4669
|
assert_equal(4, index_cmds.count)
|
4553
4670
|
end
|
4554
4671
|
|
4555
|
-
def
|
4672
|
+
def test_all_re
|
4556
4673
|
stub_elastic
|
4674
|
+
stub_elastic_info
|
4557
4675
|
driver.run(default_tag: 'test') do
|
4558
4676
|
driver.feed(sample_record)
|
4559
4677
|
driver.feed(sample_record.merge('age' => 27))
|
@@ -4569,6 +4687,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4569
4687
|
dt = DateTime.new(2015, 6, 1, 0, 0, 1, "+01:00")
|
4570
4688
|
logstash_index = "logstash-2015.05.31"
|
4571
4689
|
stub_elastic
|
4690
|
+
stub_elastic_info
|
4572
4691
|
driver.run(default_tag: 'test') do
|
4573
4692
|
driver.feed(dt.to_time.to_i, sample_record)
|
4574
4693
|
end
|
@@ -4583,6 +4702,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4583
4702
|
time = Date.today.to_time
|
4584
4703
|
index = "logstash-#{time.strftime("%Y.%m.%d")}"
|
4585
4704
|
stub_elastic
|
4705
|
+
stub_elastic_info
|
4586
4706
|
driver.run(default_tag: 'test') do
|
4587
4707
|
driver.feed(time.to_i, sample_record)
|
4588
4708
|
end
|
@@ -4595,6 +4715,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4595
4715
|
time = Time.parse Date.today.iso8601
|
4596
4716
|
logstash_index = "myprefix-#{time.getutc.strftime("%Y.%m.%d")}"
|
4597
4717
|
stub_elastic
|
4718
|
+
stub_elastic_info
|
4598
4719
|
driver.run(default_tag: 'test') do
|
4599
4720
|
driver.feed(time.to_i, sample_record)
|
4600
4721
|
end
|
@@ -4609,6 +4730,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4609
4730
|
time = Time.parse Date.today.iso8601
|
4610
4731
|
logstash_index = "myprefix#{separator}#{time.getutc.strftime("%Y.%m.%d")}"
|
4611
4732
|
stub_elastic
|
4733
|
+
stub_elastic_info
|
4612
4734
|
driver.run(default_tag: 'test') do
|
4613
4735
|
driver.feed(time.to_i, sample_record)
|
4614
4736
|
end
|
@@ -4622,6 +4744,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4622
4744
|
time = Time.parse Date.today.iso8601
|
4623
4745
|
logstash_index = "myprefix-test-#{time.getutc.strftime("%Y.%m.%d")}"
|
4624
4746
|
stub_elastic
|
4747
|
+
stub_elastic_info
|
4625
4748
|
driver.run(default_tag: 'test') do
|
4626
4749
|
driver.feed(time.to_i, sample_record)
|
4627
4750
|
end
|
@@ -4644,6 +4767,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4644
4767
|
time = Time.parse Date.today.iso8601
|
4645
4768
|
logstash_index = "myprefix-#{time.getutc.strftime("%H")}-#{time.getutc.strftime("%Y.%m.%d")}"
|
4646
4769
|
stub_elastic
|
4770
|
+
stub_elastic_info
|
4647
4771
|
driver.run(default_tag: 'test') do
|
4648
4772
|
driver.feed(time.to_i, sample_record)
|
4649
4773
|
end
|
@@ -4664,6 +4788,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4664
4788
|
pipeline_id = "mypipeline"
|
4665
4789
|
logstash_index = "myprefix-#{pipeline_id}-#{time.getutc.strftime("%Y.%m.%d")}"
|
4666
4790
|
stub_elastic
|
4791
|
+
stub_elastic_info
|
4667
4792
|
driver.run(default_tag: 'test') do
|
4668
4793
|
driver.feed(time.to_i, sample_record.merge({"pipeline_id" => pipeline_id}))
|
4669
4794
|
end
|
@@ -4689,6 +4814,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4689
4814
|
time = Time.parse Date.today.iso8601
|
4690
4815
|
logstash_index = "myprefix-#{time.getutc.strftime("%Y.%m.%d")}"
|
4691
4816
|
stub_elastic
|
4817
|
+
stub_elastic_info
|
4692
4818
|
driver.run(default_tag: 'test') do
|
4693
4819
|
driver.feed(time.to_i, sample_record.merge('indexformat' => '%Y.%m.%d'))
|
4694
4820
|
end
|
@@ -4712,6 +4838,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4712
4838
|
time = Time.parse Date.today.iso8601
|
4713
4839
|
logstash_index = "myprefix-#{time.getutc.strftime("%Y.%m")}"
|
4714
4840
|
stub_elastic
|
4841
|
+
stub_elastic_info
|
4715
4842
|
driver.run(default_tag: 'test') do
|
4716
4843
|
driver.feed(time.to_i, sample_record.merge('indexformat' => '%Y.%m'))
|
4717
4844
|
end
|
@@ -4724,6 +4851,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4724
4851
|
driver.configure("host ${tag}\n")
|
4725
4852
|
time = Time.parse Date.today.iso8601
|
4726
4853
|
elastic_request = stub_elastic("http://extracted-host:9200/_bulk")
|
4854
|
+
stub_elastic_info("http://extracted-host:9200/")
|
4727
4855
|
driver.run(default_tag: 'extracted-host') do
|
4728
4856
|
driver.feed(time.to_i, sample_record)
|
4729
4857
|
end
|
@@ -4740,6 +4868,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4740
4868
|
host, port = host_info
|
4741
4869
|
host = "extracted-host" if host == '${tag}'
|
4742
4870
|
stub_elastic_with_store_index_command_counts("http://#{host}:#{port}/_bulk")
|
4871
|
+
stub_elastic_info("http://#{host}:#{port}")
|
4743
4872
|
end
|
4744
4873
|
|
4745
4874
|
driver.run(default_tag: 'extracted-host') do
|
@@ -4774,8 +4903,10 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4774
4903
|
]
|
4775
4904
|
))
|
4776
4905
|
stub_elastic
|
4906
|
+
stub_elastic_info
|
4777
4907
|
time = Time.parse Date.today.iso8601
|
4778
4908
|
elastic_request = stub_elastic("http://host-#{time.utc.strftime('%Y%m%d')}:9200/_bulk")
|
4909
|
+
stub_elastic_info("http://host-#{time.utc.strftime('%Y%m%d')}:9200/")
|
4779
4910
|
driver.run(default_tag: 'test') do
|
4780
4911
|
driver.feed(time.to_i, sample_record)
|
4781
4912
|
end
|
@@ -4796,6 +4927,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4796
4927
|
second_pipeline_id = "2"
|
4797
4928
|
first_request = stub_elastic("http://myhost-1:9200/_bulk")
|
4798
4929
|
second_request = stub_elastic("http://myhost-2:9200/_bulk")
|
4930
|
+
stub_elastic_info("http://myhost-1:9200/")
|
4931
|
+
stub_elastic_info("http://myhost-2:9200/")
|
4799
4932
|
driver.run(default_tag: 'test') do
|
4800
4933
|
driver.feed(time.to_i, sample_record.merge({"pipeline_id" => first_pipeline_id}))
|
4801
4934
|
driver.feed(time.to_i, sample_record.merge({"pipeline_id" => second_pipeline_id}))
|
@@ -4816,6 +4949,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4816
4949
|
time = Time.parse Date.today.iso8601
|
4817
4950
|
pipeline_id = "1"
|
4818
4951
|
request = stub_elastic_unavailable("http://myhost-1:9200/_bulk")
|
4952
|
+
stub_elastic_info("http://myhost-1:9200/")
|
4819
4953
|
exception = assert_raise(Fluent::Plugin::ElasticsearchOutput::RecoverableRequestFailure) {
|
4820
4954
|
driver.run(default_tag: 'test') do
|
4821
4955
|
driver.feed(time.to_i, sample_record.merge({"pipeline_id" => pipeline_id}))
|
@@ -4831,6 +4965,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4831
4965
|
time = Time.parse Date.today.iso8601
|
4832
4966
|
logstash_index = "myprefix-#{time.getutc.strftime("%Y.%m.%d")}"
|
4833
4967
|
stub_elastic
|
4968
|
+
stub_elastic_info
|
4834
4969
|
driver.run(default_tag: 'test') do
|
4835
4970
|
driver.feed(time.to_i, sample_record)
|
4836
4971
|
end
|
@@ -4845,6 +4980,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4845
4980
|
time = Time.parse Date.today.iso8601
|
4846
4981
|
logstash_index = "logstash-#{time.getutc.strftime("%Y.%m")}"
|
4847
4982
|
stub_elastic
|
4983
|
+
stub_elastic_info
|
4848
4984
|
driver.run(default_tag: 'test') do
|
4849
4985
|
driver.feed(time.to_i, sample_record)
|
4850
4986
|
end
|
@@ -4858,6 +4994,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4858
4994
|
time = Time.parse Date.today.iso8601
|
4859
4995
|
logstash_index = "myprefix-#{time.getutc.strftime("%Y.%m")}"
|
4860
4996
|
stub_elastic
|
4997
|
+
stub_elastic_info
|
4861
4998
|
driver.run(default_tag: 'test') do
|
4862
4999
|
driver.feed(time.to_i, sample_record)
|
4863
5000
|
end
|
@@ -4884,6 +5021,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4884
5021
|
|
4885
5022
|
def test_doesnt_add_logstash_timestamp_by_default
|
4886
5023
|
stub_elastic
|
5024
|
+
stub_elastic_info
|
4887
5025
|
driver.run(default_tag: 'test') do
|
4888
5026
|
driver.feed(sample_record)
|
4889
5027
|
end
|
@@ -4893,6 +5031,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4893
5031
|
def test_adds_timestamp_when_logstash
|
4894
5032
|
driver.configure("logstash_format true\n")
|
4895
5033
|
stub_elastic
|
5034
|
+
stub_elastic_info
|
4896
5035
|
ts = DateTime.now
|
4897
5036
|
time = Fluent::EventTime.from_time(ts.to_time)
|
4898
5037
|
driver.run(default_tag: 'test') do
|
@@ -4905,6 +5044,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4905
5044
|
def test_adds_timestamp_when_include_timestamp
|
4906
5045
|
driver.configure("include_timestamp true\n")
|
4907
5046
|
stub_elastic
|
5047
|
+
stub_elastic_info
|
4908
5048
|
ts = DateTime.now
|
4909
5049
|
time = Fluent::EventTime.from_time(ts.to_time)
|
4910
5050
|
driver.run(default_tag: 'test') do
|
@@ -4917,6 +5057,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4917
5057
|
def test_uses_custom_timestamp_when_included_in_record
|
4918
5058
|
driver.configure("logstash_format true\n")
|
4919
5059
|
stub_elastic
|
5060
|
+
stub_elastic_info
|
4920
5061
|
ts = DateTime.new(2001,2,3).iso8601
|
4921
5062
|
driver.run(default_tag: 'test') do
|
4922
5063
|
driver.feed(sample_record.merge!('@timestamp' => ts))
|
@@ -4928,6 +5069,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4928
5069
|
def test_uses_custom_timestamp_when_included_in_record_without_logstash
|
4929
5070
|
driver.configure("include_timestamp true\n")
|
4930
5071
|
stub_elastic
|
5072
|
+
stub_elastic_info
|
4931
5073
|
ts = DateTime.new(2001,2,3).iso8601
|
4932
5074
|
driver.run(default_tag: 'test') do
|
4933
5075
|
driver.feed(sample_record.merge!('@timestamp' => ts))
|
@@ -4940,6 +5082,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4940
5082
|
driver.configure("logstash_format true
|
4941
5083
|
time_key vtm\n")
|
4942
5084
|
stub_elastic
|
5085
|
+
stub_elastic_info
|
4943
5086
|
ts = DateTime.new(2001,2,3).iso8601(9)
|
4944
5087
|
driver.run(default_tag: 'test') do
|
4945
5088
|
driver.feed(sample_record.merge!('vtm' => ts))
|
@@ -4953,6 +5096,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4953
5096
|
time_precision 3
|
4954
5097
|
time_key vtm\n")
|
4955
5098
|
stub_elastic
|
5099
|
+
stub_elastic_info
|
4956
5100
|
time = Time.now
|
4957
5101
|
float_time = time.to_f
|
4958
5102
|
driver.run(default_tag: 'test') do
|
@@ -4967,6 +5111,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4967
5111
|
time_key_format %Y-%m-%d %H:%M:%S.%N%z
|
4968
5112
|
time_key vtm\n")
|
4969
5113
|
stub_elastic
|
5114
|
+
stub_elastic_info
|
4970
5115
|
ts = "2001-02-03 13:14:01.673+02:00"
|
4971
5116
|
driver.run(default_tag: 'test') do
|
4972
5117
|
driver.feed(sample_record.merge!('vtm' => ts))
|
@@ -4981,6 +5126,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4981
5126
|
time_key_format %Y-%m-%d %H:%M:%S.%N%z
|
4982
5127
|
time_key vtm\n")
|
4983
5128
|
stub_elastic
|
5129
|
+
stub_elastic_info
|
4984
5130
|
ts = "2001-02-03 13:14:01.673+02:00"
|
4985
5131
|
time = Time.parse(ts)
|
4986
5132
|
current_zone_offset = Time.new(2001, 02, 03).to_datetime.offset
|
@@ -4998,6 +5144,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
4998
5144
|
time_key_format %Y-%m-%d %H:%M:%S.%N%z
|
4999
5145
|
time_key vtm\n")
|
5000
5146
|
stub_elastic
|
5147
|
+
stub_elastic_info
|
5001
5148
|
ts = "2001-02-03 13:14:01.673+02:00"
|
5002
5149
|
driver.run(default_tag: 'test') do
|
5003
5150
|
driver.feed(sample_record.merge!('vtm' => ts))
|
@@ -5012,6 +5159,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5012
5159
|
time_key vtm
|
5013
5160
|
time_key_exclude_timestamp true\n")
|
5014
5161
|
stub_elastic
|
5162
|
+
stub_elastic_info
|
5015
5163
|
ts = DateTime.new(2001,2,3).iso8601
|
5016
5164
|
driver.run(default_tag: 'test') do
|
5017
5165
|
driver.feed(sample_record.merge!('vtm' => ts))
|
@@ -5023,6 +5171,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5023
5171
|
driver.configure("logstash_format true
|
5024
5172
|
time_key_format %Y-%m-%dT%H:%M:%S.%N%z\n")
|
5025
5173
|
stub_elastic
|
5174
|
+
stub_elastic_info
|
5026
5175
|
ts = "2001-02-03T13:14:01.673+02:00"
|
5027
5176
|
driver.run(default_tag: 'test') do
|
5028
5177
|
driver.feed(sample_record.merge!('@timestamp' => ts))
|
@@ -5037,6 +5186,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5037
5186
|
index_name test
|
5038
5187
|
time_key_format %Y-%m-%dT%H:%M:%S.%N%z\n")
|
5039
5188
|
stub_elastic
|
5189
|
+
stub_elastic_info
|
5040
5190
|
ts = "2001-02-03T13:14:01.673+02:00"
|
5041
5191
|
driver.run(default_tag: 'test') do
|
5042
5192
|
driver.feed(sample_record.merge!('@timestamp' => ts))
|
@@ -5054,6 +5204,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5054
5204
|
driver.configure("logstash_format true
|
5055
5205
|
time_key_format %Y-%m-%dT%H:%M:%S.%N%z\n#{tag_config}\n")
|
5056
5206
|
stub_elastic
|
5207
|
+
stub_elastic_info
|
5057
5208
|
|
5058
5209
|
ts = "2001/02/03 13:14:01,673+02:00"
|
5059
5210
|
index = "logstash-#{Time.now.getutc.strftime("%Y.%m.%d")}"
|
@@ -5074,6 +5225,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5074
5225
|
driver.configure("logstash_format true
|
5075
5226
|
time_key_format %a %b %d %H:%M:%S %Z %Y\n")
|
5076
5227
|
stub_elastic
|
5228
|
+
stub_elastic_info
|
5077
5229
|
ts = "Thu Nov 29 14:33:20 GMT 2001"
|
5078
5230
|
driver.run(default_tag: 'test') do
|
5079
5231
|
driver.feed(sample_record.merge!('@timestamp' => ts))
|
@@ -5086,6 +5238,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5086
5238
|
def test_uses_nanosecond_precision_by_default
|
5087
5239
|
driver.configure("logstash_format true\n")
|
5088
5240
|
stub_elastic
|
5241
|
+
stub_elastic_info
|
5089
5242
|
time = Fluent::EventTime.new(Time.now.to_i, 123456789)
|
5090
5243
|
driver.run(default_tag: 'test') do
|
5091
5244
|
driver.feed(time, sample_record)
|
@@ -5098,6 +5251,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5098
5251
|
driver.configure("logstash_format true
|
5099
5252
|
time_precision 3\n")
|
5100
5253
|
stub_elastic
|
5254
|
+
stub_elastic_info
|
5101
5255
|
time = Fluent::EventTime.new(Time.now.to_i, 123456789)
|
5102
5256
|
driver.run(default_tag: 'test') do
|
5103
5257
|
driver.feed(time, sample_record)
|
@@ -5108,6 +5262,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5108
5262
|
|
5109
5263
|
def test_doesnt_add_tag_key_by_default
|
5110
5264
|
stub_elastic
|
5265
|
+
stub_elastic_info
|
5111
5266
|
driver.run(default_tag: 'test') do
|
5112
5267
|
driver.feed(sample_record)
|
5113
5268
|
end
|
@@ -5117,6 +5272,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5117
5272
|
def test_adds_tag_key_when_configured
|
5118
5273
|
driver.configure("include_tag_key true\n")
|
5119
5274
|
stub_elastic
|
5275
|
+
stub_elastic_info
|
5120
5276
|
driver.run(default_tag: 'mytag') do
|
5121
5277
|
driver.feed(sample_record)
|
5122
5278
|
end
|
@@ -5127,6 +5283,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5127
5283
|
def test_adds_id_key_when_configured
|
5128
5284
|
driver.configure("id_key request_id\n")
|
5129
5285
|
stub_elastic
|
5286
|
+
stub_elastic_info
|
5130
5287
|
driver.run(default_tag: 'test') do
|
5131
5288
|
driver.feed(sample_record)
|
5132
5289
|
end
|
@@ -5137,6 +5294,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5137
5294
|
def test_adds_nested_id_key_with_dot
|
5138
5295
|
driver.configure("id_key nested.request_id\n")
|
5139
5296
|
stub_elastic
|
5297
|
+
stub_elastic_info
|
5140
5298
|
driver.run(default_tag: 'test') do
|
5141
5299
|
driver.feed(nested_sample_record)
|
5142
5300
|
end
|
@@ -5146,6 +5304,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5146
5304
|
def test_adds_nested_id_key_with_dollar_dot
|
5147
5305
|
driver.configure("id_key $.nested.request_id\n")
|
5148
5306
|
stub_elastic
|
5307
|
+
stub_elastic_info
|
5149
5308
|
driver.run(default_tag: 'test') do
|
5150
5309
|
driver.feed(nested_sample_record)
|
5151
5310
|
end
|
@@ -5155,6 +5314,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5155
5314
|
def test_adds_nested_id_key_with_bracket
|
5156
5315
|
driver.configure("id_key $['nested']['request_id']\n")
|
5157
5316
|
stub_elastic
|
5317
|
+
stub_elastic_info
|
5158
5318
|
driver.run(default_tag: 'test') do
|
5159
5319
|
driver.feed(nested_sample_record)
|
5160
5320
|
end
|
@@ -5165,6 +5325,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5165
5325
|
def test_doesnt_add_id_key_if_missing_when_configured
|
5166
5326
|
driver.configure("id_key another_request_id\n")
|
5167
5327
|
stub_elastic
|
5328
|
+
stub_elastic_info
|
5168
5329
|
driver.run(default_tag: 'test') do
|
5169
5330
|
driver.feed(sample_record)
|
5170
5331
|
end
|
@@ -5173,6 +5334,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5173
5334
|
|
5174
5335
|
def test_adds_id_key_when_not_configured
|
5175
5336
|
stub_elastic
|
5337
|
+
stub_elastic_info
|
5176
5338
|
driver.run(default_tag: 'test') do
|
5177
5339
|
driver.feed(sample_record)
|
5178
5340
|
end
|
@@ -5182,6 +5344,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5182
5344
|
def test_adds_parent_key_when_configured
|
5183
5345
|
driver.configure("parent_key parent_id\n")
|
5184
5346
|
stub_elastic
|
5347
|
+
stub_elastic_info
|
5185
5348
|
driver.run(default_tag: 'test') do
|
5186
5349
|
driver.feed(sample_record)
|
5187
5350
|
end
|
@@ -5192,6 +5355,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5192
5355
|
def test_adds_nested_parent_key_with_dot
|
5193
5356
|
driver.configure("parent_key nested.parent_id\n")
|
5194
5357
|
stub_elastic
|
5358
|
+
stub_elastic_info
|
5195
5359
|
driver.run(default_tag: 'test') do
|
5196
5360
|
driver.feed(nested_sample_record)
|
5197
5361
|
end
|
@@ -5201,6 +5365,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5201
5365
|
def test_adds_nested_parent_key_with_dollar_dot
|
5202
5366
|
driver.configure("parent_key $.nested.parent_id\n")
|
5203
5367
|
stub_elastic
|
5368
|
+
stub_elastic_info
|
5204
5369
|
driver.run(default_tag: 'test') do
|
5205
5370
|
driver.feed(nested_sample_record)
|
5206
5371
|
end
|
@@ -5210,6 +5375,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5210
5375
|
def test_adds_nested_parent_key_with_bracket
|
5211
5376
|
driver.configure("parent_key $['nested']['parent_id']\n")
|
5212
5377
|
stub_elastic
|
5378
|
+
stub_elastic_info
|
5213
5379
|
driver.run(default_tag: 'test') do
|
5214
5380
|
driver.feed(nested_sample_record)
|
5215
5381
|
end
|
@@ -5220,6 +5386,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5220
5386
|
def test_doesnt_add_parent_key_if_missing_when_configured
|
5221
5387
|
driver.configure("parent_key another_parent_id\n")
|
5222
5388
|
stub_elastic
|
5389
|
+
stub_elastic_info
|
5223
5390
|
driver.run(default_tag: 'test') do
|
5224
5391
|
driver.feed(sample_record)
|
5225
5392
|
end
|
@@ -5228,6 +5395,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5228
5395
|
|
5229
5396
|
def test_adds_parent_key_when_not_configured
|
5230
5397
|
stub_elastic
|
5398
|
+
stub_elastic_info
|
5231
5399
|
driver.run(default_tag: 'test') do
|
5232
5400
|
driver.feed(sample_record)
|
5233
5401
|
end
|
@@ -5238,6 +5406,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5238
5406
|
def test_es6
|
5239
5407
|
driver("routing_key routing_id\n", 6)
|
5240
5408
|
stub_elastic
|
5409
|
+
stub_elastic_info
|
5241
5410
|
driver.run(default_tag: 'test') do
|
5242
5411
|
driver.feed(sample_record)
|
5243
5412
|
end
|
@@ -5247,6 +5416,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5247
5416
|
def test_es7
|
5248
5417
|
driver("routing_key routing_id\n", 7)
|
5249
5418
|
stub_elastic
|
5419
|
+
stub_elastic_info
|
5250
5420
|
driver.run(default_tag: 'test') do
|
5251
5421
|
driver.feed(sample_record)
|
5252
5422
|
end
|
@@ -5258,6 +5428,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5258
5428
|
def test_adds_nested_routing_key_with_dot
|
5259
5429
|
driver.configure("routing_key nested.routing_id\n")
|
5260
5430
|
stub_elastic
|
5431
|
+
stub_elastic_info
|
5261
5432
|
driver.run(default_tag: 'test') do
|
5262
5433
|
driver.feed(nested_sample_record)
|
5263
5434
|
end
|
@@ -5267,6 +5438,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5267
5438
|
def test_adds_nested_routing_key_with_dollar_dot
|
5268
5439
|
driver.configure("routing_key $.nested.routing_id\n")
|
5269
5440
|
stub_elastic
|
5441
|
+
stub_elastic_info
|
5270
5442
|
driver.run(default_tag: 'test') do
|
5271
5443
|
driver.feed(nested_sample_record)
|
5272
5444
|
end
|
@@ -5276,6 +5448,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5276
5448
|
def test_adds_nested_routing_key_with_bracket
|
5277
5449
|
driver.configure("routing_key $['nested']['routing_id']\n")
|
5278
5450
|
stub_elastic
|
5451
|
+
stub_elastic_info
|
5279
5452
|
driver.run(default_tag: 'test') do
|
5280
5453
|
driver.feed(nested_sample_record)
|
5281
5454
|
end
|
@@ -5286,6 +5459,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5286
5459
|
def test_doesnt_add_routing_key_if_missing_when_configured
|
5287
5460
|
driver.configure("routing_key another_routing_id\n")
|
5288
5461
|
stub_elastic
|
5462
|
+
stub_elastic_info
|
5289
5463
|
driver.run(default_tag: 'test') do
|
5290
5464
|
driver.feed(sample_record)
|
5291
5465
|
end
|
@@ -5294,6 +5468,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5294
5468
|
|
5295
5469
|
def test_adds_routing_key_when_not_configured
|
5296
5470
|
stub_elastic
|
5471
|
+
stub_elastic_info
|
5297
5472
|
driver.run(default_tag: 'test') do
|
5298
5473
|
driver.feed(sample_record)
|
5299
5474
|
end
|
@@ -5303,6 +5478,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5303
5478
|
def test_remove_one_key
|
5304
5479
|
driver.configure("remove_keys key1\n")
|
5305
5480
|
stub_elastic
|
5481
|
+
stub_elastic_info
|
5306
5482
|
driver.run(default_tag: 'test') do
|
5307
5483
|
driver.feed(sample_record.merge('key1' => 'v1', 'key2' => 'v2'))
|
5308
5484
|
end
|
@@ -5313,6 +5489,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5313
5489
|
def test_remove_multi_keys
|
5314
5490
|
driver.configure("remove_keys key1, key2\n")
|
5315
5491
|
stub_elastic
|
5492
|
+
stub_elastic_info
|
5316
5493
|
driver.run(default_tag: 'test') do
|
5317
5494
|
driver.feed(sample_record.merge('key1' => 'v1', 'key2' => 'v2'))
|
5318
5495
|
end
|
@@ -5321,6 +5498,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5321
5498
|
end
|
5322
5499
|
|
5323
5500
|
def test_request_error
|
5501
|
+
stub_elastic_info
|
5324
5502
|
stub_elastic_unavailable
|
5325
5503
|
assert_raise(Fluent::Plugin::ElasticsearchOutput::RecoverableRequestFailure) {
|
5326
5504
|
driver.run(default_tag: 'test', shutdown: false) do
|
@@ -5332,6 +5510,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5332
5510
|
def test_request_forever
|
5333
5511
|
omit("retry_forever test is unstable.") if ENV["CI"]
|
5334
5512
|
stub_elastic
|
5513
|
+
stub_elastic_info
|
5335
5514
|
driver.configure(Fluent::Config::Element.new(
|
5336
5515
|
'ROOT', '', {
|
5337
5516
|
'@type' => 'elasticsearch',
|
@@ -5356,6 +5535,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5356
5535
|
connection_resets += 1
|
5357
5536
|
raise Faraday::ConnectionFailed, "Test message"
|
5358
5537
|
end
|
5538
|
+
stub_elastic_info
|
5359
5539
|
|
5360
5540
|
assert_raise(Fluent::Plugin::ElasticsearchOutput::RecoverableRequestFailure) {
|
5361
5541
|
driver.run(default_tag: 'test', shutdown: false) do
|
@@ -5372,6 +5552,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5372
5552
|
connection_resets += 1
|
5373
5553
|
raise ZeroDivisionError, "any not host_unreachable_exceptions exception"
|
5374
5554
|
end
|
5555
|
+
stub_elastic_info
|
5375
5556
|
|
5376
5557
|
driver.configure("reconnect_on_error true\n")
|
5377
5558
|
|
@@ -5398,6 +5579,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5398
5579
|
connection_resets += 1
|
5399
5580
|
raise ZeroDivisionError, "any not host_unreachable_exceptions exception"
|
5400
5581
|
end
|
5582
|
+
stub_elastic_info
|
5401
5583
|
|
5402
5584
|
driver.configure("reconnect_on_error false\n")
|
5403
5585
|
|
@@ -5441,6 +5623,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5441
5623
|
})
|
5442
5624
|
}
|
5443
5625
|
end)
|
5626
|
+
stub_elastic_info
|
5444
5627
|
|
5445
5628
|
driver.run(default_tag: 'test') do
|
5446
5629
|
driver.feed(1, sample_record)
|
@@ -5512,6 +5695,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5512
5695
|
})
|
5513
5696
|
}
|
5514
5697
|
end)
|
5698
|
+
stub_elastic_info
|
5515
5699
|
|
5516
5700
|
# Check buffer fulfillment condition
|
5517
5701
|
assert_raise(Fluent::Plugin::ElasticsearchOutput::RetryStreamEmitFailure) do
|
@@ -5558,6 +5742,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5558
5742
|
})
|
5559
5743
|
}
|
5560
5744
|
end)
|
5745
|
+
stub_elastic_info
|
5746
|
+
|
5561
5747
|
sample_record1 = sample_record('my_id' => 'abc')
|
5562
5748
|
sample_record4 = sample_record('my_id' => 'xyz')
|
5563
5749
|
|
@@ -5607,6 +5793,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5607
5793
|
})
|
5608
5794
|
}
|
5609
5795
|
end)
|
5796
|
+
stub_elastic_info
|
5797
|
+
|
5610
5798
|
sample_record1 = sample_record('my_id' => 'abc')
|
5611
5799
|
sample_record4 = sample_record('my_id' => 'xyz')
|
5612
5800
|
|
@@ -5677,6 +5865,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5677
5865
|
})
|
5678
5866
|
}
|
5679
5867
|
end)
|
5868
|
+
stub_elastic_info
|
5680
5869
|
|
5681
5870
|
driver.run(default_tag: 'test') do
|
5682
5871
|
driver.feed(1, sample_record)
|
@@ -5693,6 +5882,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5693
5882
|
def test_update_should_not_write_if_theres_no_id
|
5694
5883
|
driver.configure("write_operation update\n")
|
5695
5884
|
stub_elastic
|
5885
|
+
stub_elastic_info
|
5696
5886
|
driver.run(default_tag: 'test') do
|
5697
5887
|
driver.feed(sample_record)
|
5698
5888
|
end
|
@@ -5702,6 +5892,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5702
5892
|
def test_upsert_should_not_write_if_theres_no_id
|
5703
5893
|
driver.configure("write_operation upsert\n")
|
5704
5894
|
stub_elastic
|
5895
|
+
stub_elastic_info
|
5705
5896
|
driver.run(default_tag: 'test') do
|
5706
5897
|
driver.feed(sample_record)
|
5707
5898
|
end
|
@@ -5711,6 +5902,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5711
5902
|
def test_create_should_not_write_if_theres_no_id
|
5712
5903
|
driver.configure("write_operation create\n")
|
5713
5904
|
stub_elastic
|
5905
|
+
stub_elastic_info
|
5714
5906
|
driver.run(default_tag: 'test') do
|
5715
5907
|
driver.feed(sample_record)
|
5716
5908
|
end
|
@@ -5721,6 +5913,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5721
5913
|
driver.configure("write_operation update
|
5722
5914
|
id_key request_id")
|
5723
5915
|
stub_elastic
|
5916
|
+
stub_elastic_info
|
5724
5917
|
driver.run(default_tag: 'test') do
|
5725
5918
|
driver.feed(sample_record)
|
5726
5919
|
end
|
@@ -5734,6 +5927,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5734
5927
|
id_key request_id
|
5735
5928
|
remove_keys_on_update parent_id")
|
5736
5929
|
stub_elastic
|
5930
|
+
stub_elastic_info
|
5737
5931
|
driver.run(default_tag: 'test') do
|
5738
5932
|
driver.feed(sample_record)
|
5739
5933
|
end
|
@@ -5745,6 +5939,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5745
5939
|
driver.configure("write_operation upsert
|
5746
5940
|
id_key request_id")
|
5747
5941
|
stub_elastic
|
5942
|
+
stub_elastic_info
|
5748
5943
|
driver.run(default_tag: 'test') do
|
5749
5944
|
driver.feed(sample_record)
|
5750
5945
|
end
|
@@ -5758,6 +5953,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5758
5953
|
id_key request_id
|
5759
5954
|
remove_keys_on_update parent_id")
|
5760
5955
|
stub_elastic
|
5956
|
+
stub_elastic_info
|
5761
5957
|
driver.run(default_tag: 'test') do
|
5762
5958
|
driver.feed(sample_record)
|
5763
5959
|
end
|
@@ -5772,6 +5968,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5772
5968
|
id_key request_id
|
5773
5969
|
remove_keys_on_update parent_id")
|
5774
5970
|
stub_elastic
|
5971
|
+
stub_elastic_info
|
5775
5972
|
driver.run(default_tag: 'test') do
|
5776
5973
|
driver.feed(sample_record)
|
5777
5974
|
end
|
@@ -5785,6 +5982,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5785
5982
|
id_key id
|
5786
5983
|
remove_keys_on_update foo,baz")
|
5787
5984
|
stub_elastic
|
5985
|
+
stub_elastic_info
|
5788
5986
|
driver.run(default_tag: 'test') do
|
5789
5987
|
driver.feed("id" => 1, "foo" => "bar", "baz" => "quix", "zip" => "zam")
|
5790
5988
|
end
|
@@ -5809,6 +6007,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5809
6007
|
id_key id
|
5810
6008
|
remove_keys_on_update_key keys_to_skip")
|
5811
6009
|
stub_elastic
|
6010
|
+
stub_elastic_info
|
5812
6011
|
driver.run(default_tag: 'test') do
|
5813
6012
|
driver.feed("id" => 1, "foo" => "bar", "baz" => "quix", "keys_to_skip" => ["baz"])
|
5814
6013
|
end
|
@@ -5833,6 +6032,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5833
6032
|
remove_keys_on_update foo,bar
|
5834
6033
|
remove_keys_on_update_key keys_to_skip")
|
5835
6034
|
stub_elastic
|
6035
|
+
stub_elastic_info
|
5836
6036
|
driver.run(default_tag: 'test') do
|
5837
6037
|
driver.feed("id" => 1, "foo" => "bar", "baz" => "quix", "keys_to_skip" => ["baz"])
|
5838
6038
|
end
|
@@ -5857,6 +6057,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5857
6057
|
driver.configure("write_operation create
|
5858
6058
|
id_key request_id")
|
5859
6059
|
stub_elastic
|
6060
|
+
stub_elastic_info
|
5860
6061
|
driver.run(default_tag: 'test') do
|
5861
6062
|
driver.feed(sample_record)
|
5862
6063
|
end
|
@@ -5865,6 +6066,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5865
6066
|
|
5866
6067
|
def test_include_index_in_url
|
5867
6068
|
stub_elastic('http://localhost:9200/logstash-2018.01.01/_bulk')
|
6069
|
+
stub_elastic_info('http://localhost:9200/')
|
5868
6070
|
|
5869
6071
|
driver.configure("index_name logstash-2018.01.01
|
5870
6072
|
include_index_in_url true")
|
@@ -5878,8 +6080,8 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5878
6080
|
|
5879
6081
|
def test_use_simple_sniffer
|
5880
6082
|
require 'fluent/plugin/elasticsearch_simple_sniffer'
|
5881
|
-
stub_elastic_info
|
5882
6083
|
stub_elastic
|
6084
|
+
stub_elastic_info
|
5883
6085
|
config = %[
|
5884
6086
|
sniffer_class_name Fluent::Plugin::ElasticsearchSimpleSniffer
|
5885
6087
|
log_level debug
|
@@ -5903,6 +6105,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5903
6105
|
remove_keys id
|
5904
6106
|
suppress_doc_wrap true')
|
5905
6107
|
stub_elastic
|
6108
|
+
stub_elastic_info
|
5906
6109
|
doc_body = {'field' => 'value'}
|
5907
6110
|
script_body = {'source' => 'ctx._source.counter += params.param1',
|
5908
6111
|
'lang' => 'painless',
|
@@ -5929,6 +6132,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5929
6132
|
remove_keys id
|
5930
6133
|
suppress_doc_wrap true')
|
5931
6134
|
stub_elastic
|
6135
|
+
stub_elastic_info
|
5932
6136
|
doc_body = {'field' => 'value'}
|
5933
6137
|
script_body = {'source' => 'ctx._source.counter += params.param1',
|
5934
6138
|
'lang' => 'painless',
|
@@ -5955,6 +6159,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5955
6159
|
def test_ignore_exception
|
5956
6160
|
driver.configure('ignore_exceptions ["Elasticsearch::Transport::Transport::Errors::ServiceUnavailable"]')
|
5957
6161
|
stub_elastic_unavailable
|
6162
|
+
stub_elastic_info
|
5958
6163
|
|
5959
6164
|
driver.run(default_tag: 'test') do
|
5960
6165
|
driver.feed(sample_record)
|
@@ -5964,6 +6169,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5964
6169
|
def test_ignore_exception_with_superclass
|
5965
6170
|
driver.configure('ignore_exceptions ["Elasticsearch::Transport::Transport::ServerError"]')
|
5966
6171
|
stub_elastic_unavailable
|
6172
|
+
stub_elastic_info
|
5967
6173
|
|
5968
6174
|
driver.run(default_tag: 'test') do
|
5969
6175
|
driver.feed(sample_record)
|
@@ -5973,6 +6179,7 @@ class ElasticsearchOutputTest < Test::Unit::TestCase
|
|
5973
6179
|
def test_ignore_excetion_handles_appropriate_ones
|
5974
6180
|
driver.configure('ignore_exceptions ["Faraday::ConnectionFailed"]')
|
5975
6181
|
stub_elastic_unavailable
|
6182
|
+
stub_elastic_info
|
5976
6183
|
|
5977
6184
|
assert_raise(Fluent::Plugin::ElasticsearchOutput::RecoverableRequestFailure) {
|
5978
6185
|
driver.run(default_tag: 'test', shutdown: false) do
|