logstash-output-elasticsearch 10.5.1-java → 10.7.3-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/CONTRIBUTORS +1 -0
  4. data/docs/index.asciidoc +142 -81
  5. data/lib/logstash/outputs/elasticsearch.rb +33 -0
  6. data/lib/logstash/outputs/elasticsearch/common.rb +21 -8
  7. data/lib/logstash/outputs/elasticsearch/common_configs.rb +3 -3
  8. data/lib/logstash/outputs/elasticsearch/http_client.rb +6 -2
  9. data/lib/logstash/outputs/elasticsearch/ilm.rb +1 -1
  10. data/lib/logstash/outputs/elasticsearch/template_manager.rb +20 -12
  11. data/lib/logstash/outputs/elasticsearch/{elasticsearch-template-es2x.json → templates/ecs-disabled/elasticsearch-2x.json} +0 -0
  12. data/lib/logstash/outputs/elasticsearch/{elasticsearch-template-es5x.json → templates/ecs-disabled/elasticsearch-5x.json} +0 -0
  13. data/lib/logstash/outputs/elasticsearch/{elasticsearch-template-es6x.json → templates/ecs-disabled/elasticsearch-6x.json} +0 -0
  14. data/lib/logstash/outputs/elasticsearch/{elasticsearch-template-es7x.json → templates/ecs-disabled/elasticsearch-7x.json} +0 -0
  15. data/lib/logstash/outputs/elasticsearch/templates/ecs-disabled/elasticsearch-8x.json +50 -0
  16. data/lib/logstash/outputs/elasticsearch/templates/ecs-v1/elasticsearch-6x.json +2950 -0
  17. data/lib/logstash/outputs/elasticsearch/templates/ecs-v1/elasticsearch-7x.json +2948 -0
  18. data/logstash-output-elasticsearch.gemspec +2 -1
  19. data/spec/es_spec_helper.rb +32 -12
  20. data/spec/fixtures/template-with-policy-es8x.json +50 -0
  21. data/spec/integration/outputs/ilm_spec.rb +36 -22
  22. data/spec/integration/outputs/metrics_spec.rb +1 -5
  23. data/spec/unit/outputs/elasticsearch/http_client_spec.rb +22 -0
  24. data/spec/unit/outputs/elasticsearch/template_manager_spec.rb +40 -3
  25. data/spec/unit/outputs/elasticsearch_spec.rb +23 -1
  26. data/spec/unit/outputs/error_whitelist_spec.rb +1 -1
  27. metadata +25 -7
  28. data/lib/logstash/outputs/elasticsearch/elasticsearch-template-es8x.json +0 -44
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-output-elasticsearch'
3
- s.version = '10.5.1'
3
+ s.version = '10.7.3'
4
4
 
5
5
  s.licenses = ['apache-2.0']
6
6
  s.summary = "Stores logs in Elasticsearch"
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.add_runtime_dependency 'stud', ['>= 0.0.17', '~> 0.0']
26
26
  s.add_runtime_dependency 'cabin', ['~> 0.6']
27
27
  s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
28
+ s.add_runtime_dependency 'logstash-mixin-ecs_compatibility_support', '~>1.0'
28
29
 
29
30
  s.add_development_dependency 'logstash-codec-plain'
30
31
  s.add_development_dependency 'logstash-devutils'
@@ -49,19 +49,10 @@ module ESHelper
49
49
  Time.now.strftime("%Y.%m.%d")
50
50
  end
51
51
 
52
-
53
- def default_mapping_from_mappings(mappings)
54
- if ESHelper.es_version_satisfies?(">=7")
55
- mappings
56
- else
57
- mappings["_default_"]
58
- end
59
- end
60
-
61
52
  def field_properties_from_template(template_name, field)
62
- mappings = @es.indices.get_template(name: template_name)[template_name]["mappings"]
63
- mapping = default_mapping_from_mappings(mappings)
64
- mapping["properties"][field]["properties"]
53
+ template = get_template(@es, template_name)
54
+ mappings = get_template_mappings(template)
55
+ mappings["properties"][field]["properties"]
65
56
  end
66
57
 
67
58
  def routing_field_name
@@ -105,6 +96,7 @@ module ESHelper
105
96
 
106
97
  def clean(client)
107
98
  client.indices.delete_template(:name => "*")
99
+ client.indices.delete_index_template(:name => "logstash*") rescue nil
108
100
  # This can fail if there are no indexes, ignore failure.
109
101
  client.indices.delete(:index => "*") rescue nil
110
102
  clean_ilm(client) if supports_ilm?(client)
@@ -182,6 +174,34 @@ module ESHelper
182
174
  }
183
175
  }
184
176
  end
177
+
178
+ def get_template(client, name)
179
+ if ESHelper.es_version_satisfies?(">=8")
180
+ t = client.indices.get_index_template(name: name)
181
+ t['index_templates'][0]['index_template']
182
+ else
183
+ t = client.indices.get_template(name: name)
184
+ t[name]
185
+ end
186
+ end
187
+
188
+ def get_template_settings(template)
189
+ if ESHelper.es_version_satisfies?(">=8")
190
+ template['template']['settings']
191
+ else
192
+ template['settings']
193
+ end
194
+ end
195
+
196
+ def get_template_mappings(template)
197
+ if ESHelper.es_version_satisfies?(">=8")
198
+ template['template']['mappings']
199
+ elsif ESHelper.es_version_satisfies?(">=7")
200
+ template['mappings']
201
+ else
202
+ template['mappings']["_default_"]
203
+ end
204
+ end
185
205
  end
186
206
 
187
207
  RSpec.configure do |config|
@@ -0,0 +1,50 @@
1
+ {
2
+ "index_patterns" : "overwrite-*",
3
+ "version" : 80001,
4
+ "template" : {
5
+ "settings" : {
6
+ "index.refresh_interval" : "1s",
7
+ "number_of_shards": 1
8
+ },
9
+ "mappings" : {
10
+ "dynamic_templates" : [ {
11
+ "message_field" : {
12
+ "path_match" : "message",
13
+ "match_mapping_type" : "string",
14
+ "mapping" : {
15
+ "type" : "text",
16
+ "norms" : false
17
+ }
18
+ }
19
+ }, {
20
+ "string_fields" : {
21
+ "match" : "*",
22
+ "match_mapping_type" : "string",
23
+ "mapping" : {
24
+ "type" : "text", "norms" : false,
25
+ "fields" : {
26
+ "keyword" : { "type": "keyword", "ignore_above": 256 }
27
+ }
28
+ }
29
+ }
30
+ } ],
31
+ "properties" : {
32
+ "@timestamp": { "type": "date" },
33
+ "@version": { "type": "keyword" },
34
+ "geoip" : {
35
+ "dynamic": true,
36
+ "properties" : {
37
+ "ip": { "type": "ip" },
38
+ "location" : { "type" : "geo_point" },
39
+ "latitude" : { "type" : "half_float" },
40
+ "longitude" : { "type" : "half_float" }
41
+ }
42
+ }
43
+ }
44
+ }
45
+ },
46
+ "priority": 200,
47
+ "_meta" : {
48
+ "description": "index template for logstash-output-elasticsearch"
49
+ }
50
+ }
@@ -8,7 +8,7 @@ shared_examples_for 'an ILM enabled Logstash' do
8
8
  let (:settings) { super.merge("ilm_policy" => ilm_policy_name)}
9
9
 
10
10
  it 'should rollover when the policy max docs is reached' do
11
- put_policy(@es,ilm_policy_name, policy)
11
+ put_policy(@es, ilm_policy_name, policy)
12
12
  subject.register
13
13
 
14
14
  subject.multi_receive([
@@ -108,9 +108,11 @@ shared_examples_for 'an ILM disabled Logstash' do
108
108
  it 'should not write the ILM settings into the template' do
109
109
  subject.register
110
110
  sleep(1)
111
- expect(@es.indices.get_template(name: "logstash")["logstash"]).to have_index_pattern("logstash-*")
111
+
112
+ template = get_template(@es, "logstash")
113
+ expect(template).to have_index_pattern("logstash-*")
112
114
  if ESHelper.es_version_satisfies?(">= 2")
113
- expect(@es.indices.get_template(name: "logstash")["logstash"]["settings"]['index']['lifecycle']).to be_nil
115
+ expect(get_template_settings(template)['index']['lifecycle']).to be_nil
114
116
  end
115
117
  end
116
118
 
@@ -152,16 +154,17 @@ shared_examples_for 'an ILM disabled Logstash' do
152
154
  end
153
155
 
154
156
  context 'with a custom template name' do
155
- let (:template_name) { "custom_template_name" }
157
+ let (:template_name) { "logstash_custom_template_name" }
156
158
  let (:settings) { super.merge('template_name' => template_name)}
157
159
 
158
160
  it 'should not write the ILM settings into the template' do
159
161
  subject.register
160
162
  sleep(1)
161
163
 
162
- expect(@es.indices.get_template(name: template_name)[template_name]).to have_index_pattern("logstash-*")
164
+ template = get_template(@es, template_name)
165
+ expect(template).to have_index_pattern("logstash-*")
163
166
  if ESHelper.es_version_satisfies?(">= 2")
164
- expect(@es.indices.get_template(name: template_name)[template_name]["settings"]['index']['lifecycle']).to be_nil
167
+ expect(get_template_settings(template)['index']['lifecycle']).to be_nil
165
168
  end
166
169
  end
167
170
  end
@@ -249,9 +252,9 @@ if ESHelper.es_version_satisfies?(">= 6.6")
249
252
  }
250
253
  let (:small_max_doc_policy) { max_docs_policy(3) }
251
254
  let (:large_max_doc_policy) { max_docs_policy(1000000) }
252
- let (:expected_index) { LogStash::Outputs::ElasticSearch::DEFAULT_ROLLOVER_ALIAS }
255
+ let (:expected_index) { elasticsearch_output_plugin.default_ilm_rollover_alias }
253
256
 
254
- subject { LogStash::Outputs::ElasticSearch.new(settings) }
257
+ subject(:elasticsearch_output_plugin) { LogStash::Outputs::ElasticSearch.new(settings) }
255
258
 
256
259
  before :each do
257
260
  # Delete all templates first.
@@ -387,16 +390,20 @@ if ESHelper.es_version_satisfies?(">= 6.6")
387
390
  it 'should write the ILM settings into the template' do
388
391
  subject.register
389
392
  sleep(1)
390
- expect(@es.indices.get_template(name: "logstash")["logstash"]).to have_index_pattern("logstash-*")
391
- expect(@es.indices.get_template(name: "logstash")["logstash"]["settings"]['index']['lifecycle']['name']).to eq("logstash-policy")
392
- expect(@es.indices.get_template(name: "logstash")["logstash"]["settings"]['index']['lifecycle']['rollover_alias']).to eq("logstash")
393
+
394
+ template = get_template(@es, "logstash")
395
+ expect(template).to have_index_pattern("logstash-*")
396
+ expect(get_template_settings(template)['index']['lifecycle']['name']).to eq("logstash-policy")
397
+ expect(get_template_settings(template)['index']['lifecycle']['rollover_alias']).to eq("logstash")
393
398
  end
394
399
 
395
400
  it_behaves_like 'an ILM enabled Logstash'
396
401
  end
397
402
 
398
403
  context 'with a set index and a custom index pattern' do
399
- if ESHelper.es_version_satisfies?(">= 7.0")
404
+ if ESHelper.es_version_satisfies?(">= 8.0")
405
+ let (:template) { "spec/fixtures/template-with-policy-es8x.json" }
406
+ elsif ESHelper.es_version_satisfies?(">= 7.0")
400
407
  let (:template) { "spec/fixtures/template-with-policy-es7x.json" }
401
408
  else
402
409
  let (:template) { "spec/fixtures/template-with-policy-es6x.json" }
@@ -408,13 +415,15 @@ if ESHelper.es_version_satisfies?(">= 6.6")
408
415
  it 'should not overwrite the index patterns' do
409
416
  subject.register
410
417
  sleep(1)
411
- expect(@es.indices.get_template(name: "logstash")["logstash"]).to have_index_pattern("overwrite-*")
418
+
419
+ template = get_template(@es, "logstash")
420
+ expect(template).to have_index_pattern("overwrite-*")
412
421
  end
413
422
  end
414
423
 
415
424
 
416
425
  context 'with a custom template' do
417
- let (:ilm_rollover_alias) { "the_cat_in_the_hat" }
426
+ let (:ilm_rollover_alias) { "logstash_the_cat_in_the_hat" }
418
427
  let (:index) { ilm_rollover_alias }
419
428
  let(:expected_index) { index }
420
429
  let (:settings) { super.merge("ilm_policy" => ilm_policy_name,
@@ -422,7 +431,9 @@ if ESHelper.es_version_satisfies?(">= 6.6")
422
431
  "ilm_rollover_alias" => ilm_rollover_alias)}
423
432
 
424
433
 
425
- if ESHelper.es_version_satisfies?(">= 7.0")
434
+ if ESHelper.es_version_satisfies?(">= 8.0")
435
+ let (:template) { "spec/fixtures/template-with-policy-es8x.json" }
436
+ elsif ESHelper.es_version_satisfies?(">= 7.0")
426
437
  let (:template) { "spec/fixtures/template-with-policy-es7x.json" }
427
438
  else
428
439
  let (:template) { "spec/fixtures/template-with-policy-es6x.json" }
@@ -460,13 +471,15 @@ if ESHelper.es_version_satisfies?(">= 6.6")
460
471
  it 'should write the ILM settings into the template' do
461
472
  subject.register
462
473
  sleep(1)
463
- expect(@es.indices.get_template(name: ilm_rollover_alias)[ilm_rollover_alias]).to have_index_pattern("#{ilm_rollover_alias}-*")
464
- expect(@es.indices.get_template(name: ilm_rollover_alias)[ilm_rollover_alias]["settings"]['index']['lifecycle']['name']).to eq(ilm_policy_name)
465
- expect(@es.indices.get_template(name: ilm_rollover_alias)[ilm_rollover_alias]["settings"]['index']['lifecycle']['rollover_alias']).to eq(ilm_rollover_alias)
474
+
475
+ template = get_template(@es, ilm_rollover_alias)
476
+ expect(template).to have_index_pattern("#{ilm_rollover_alias}-*")
477
+ expect(get_template_settings(template)['index']['lifecycle']['name']).to eq(ilm_policy_name)
478
+ expect(get_template_settings(template)['index']['lifecycle']['rollover_alias']).to eq(ilm_rollover_alias)
466
479
  end
467
480
 
468
481
  context 'with a different template_name' do
469
- let (:template_name) { "custom_template_name" }
482
+ let (:template_name) { "logstash_custom_template_name" }
470
483
  let (:settings) { super.merge('template_name' => template_name)}
471
484
 
472
485
  it_behaves_like 'an ILM enabled Logstash'
@@ -474,9 +487,10 @@ if ESHelper.es_version_satisfies?(">= 6.6")
474
487
  it 'should write the ILM settings into the template' do
475
488
  subject.register
476
489
  sleep(1)
477
- expect(@es.indices.get_template(name: template_name)[template_name]).to have_index_pattern("#{ilm_rollover_alias}-*")
478
- expect(@es.indices.get_template(name: template_name)[template_name]["settings"]['index']['lifecycle']['name']).to eq(ilm_policy_name)
479
- expect(@es.indices.get_template(name: template_name)[template_name]["settings"]['index']['lifecycle']['rollover_alias']).to eq(ilm_rollover_alias)
490
+ template = get_template(@es, template_name)
491
+ expect(template).to have_index_pattern("#{ilm_rollover_alias}-*")
492
+ expect(get_template_settings(template)['index']['lifecycle']['name']).to eq(ilm_policy_name)
493
+ expect(get_template_settings(template)['index']['lifecycle']['rollover_alias']).to eq(ilm_rollover_alias)
480
494
  end
481
495
  end
482
496
 
@@ -19,11 +19,7 @@ describe "metrics", :integration => true do
19
19
 
20
20
  # Clean ES of data before we start.
21
21
  @es = get_client
22
- @es.indices.delete_template(:name => "*")
23
-
24
- # This can fail if there are no indexes, ignore failure.
25
- @es.indices.delete(:index => "*") rescue nil
26
- #@es.indices.refresh
22
+ clean(@es)
27
23
  subject.register
28
24
  end
29
25
 
@@ -1,3 +1,4 @@
1
+ require_relative "../../../../spec/es_spec_helper"
1
2
  require "logstash/devutils/rspec/spec_helper"
2
3
  require "logstash/outputs/elasticsearch/http_client"
3
4
  require "java"
@@ -138,6 +139,27 @@ describe LogStash::Outputs::ElasticSearch::HttpClient do
138
139
  end
139
140
  end
140
141
 
142
+ describe "index template" do
143
+ subject { described_class.new(base_options) }
144
+ let(:template_name) { "logstash" }
145
+ let(:template) { {} }
146
+ let(:get_response) {
147
+ double("response", :body => {})
148
+ }
149
+
150
+ it "should call composable index template in version 8+" do
151
+ expect(subject).to receive(:maximum_seen_major_version).and_return(8)
152
+ expect(subject.pool).to receive(:put).with("_index_template/#{template_name}", nil, anything).and_return(get_response)
153
+ subject.template_put(template_name, template)
154
+ end
155
+
156
+ it "should call index template in version < 8" do
157
+ expect(subject).to receive(:maximum_seen_major_version).and_return(7)
158
+ expect(subject.pool).to receive(:put).with("_template/#{template_name}", nil, anything).and_return(get_response)
159
+ subject.template_put(template_name, template)
160
+ end
161
+ end
162
+
141
163
  describe "join_bulk_responses" do
142
164
  subject { described_class.new(base_options) }
143
165
 
@@ -8,17 +8,54 @@ describe LogStash::Outputs::ElasticSearch::TemplateManager do
8
8
  describe ".default_template_path" do
9
9
  context "elasticsearch 1.x" do
10
10
  it "chooses the 2x template" do
11
- expect(described_class.default_template_path(1)).to match(/elasticsearch-template-es2x.json/)
11
+ expect(described_class.default_template_path(1)).to end_with("/templates/ecs-disabled/elasticsearch-2x.json")
12
12
  end
13
13
  end
14
14
  context "elasticsearch 2.x" do
15
15
  it "chooses the 2x template" do
16
- expect(described_class.default_template_path(2)).to match(/elasticsearch-template-es2x.json/)
16
+ expect(described_class.default_template_path(2)).to end_with("/templates/ecs-disabled/elasticsearch-2x.json")
17
17
  end
18
18
  end
19
19
  context "elasticsearch 5.x" do
20
20
  it "chooses the 5x template" do
21
- expect(described_class.default_template_path(5)).to match(/elasticsearch-template-es5x.json/)
21
+ expect(described_class.default_template_path(5)).to end_with("/templates/ecs-disabled/elasticsearch-5x.json")
22
+ end
23
+ end
24
+ end
25
+
26
+ context 'when ECS v1 is requested' do
27
+ it 'resolves' do
28
+ expect(described_class.default_template_path(7, :v1)).to end_with("/templates/ecs-v1/elasticsearch-7x.json")
29
+ end
30
+ end
31
+
32
+ describe "index template with ilm settings" do
33
+ let(:plugin_settings) { {"manage_template" => true, "template_overwrite" => true} }
34
+ let(:plugin) { LogStash::Outputs::ElasticSearch.new(plugin_settings) }
35
+
36
+ describe "in version 8+" do
37
+ let(:file_path) { described_class.default_template_path(8) }
38
+ let(:template) { described_class.read_template_file(file_path)}
39
+
40
+ it "should update settings" do
41
+ expect(plugin).to receive(:maximum_seen_major_version).at_least(:once).and_return(8)
42
+ described_class.add_ilm_settings_to_template(plugin, template)
43
+ expect(template['template']['settings']['index.lifecycle.name']).not_to eq(nil)
44
+ expect(template['template']['settings']['index.lifecycle.rollover_alias']).not_to eq(nil)
45
+ expect(template.include?('settings')).to be_falsey
46
+ end
47
+ end
48
+
49
+ describe "in version < 8" do
50
+ let(:file_path) { described_class.default_template_path(7) }
51
+ let(:template) { described_class.read_template_file(file_path)}
52
+
53
+ it "should update settings" do
54
+ expect(plugin).to receive(:maximum_seen_major_version).at_least(:once).and_return(7)
55
+ described_class.add_ilm_settings_to_template(plugin, template)
56
+ expect(template['settings']['index.lifecycle.name']).not_to eq(nil)
57
+ expect(template['settings']['index.lifecycle.rollover_alias']).not_to eq(nil)
58
+ expect(template.include?('template')).to be_falsey
22
59
  end
23
60
  end
24
61
  end
@@ -6,7 +6,7 @@ require "logstash/outputs/elasticsearch"
6
6
  describe LogStash::Outputs::ElasticSearch do
7
7
  subject { described_class.new(options) }
8
8
  let(:options) { {} }
9
- let(:maximum_seen_major_version) { rand(100) }
9
+ let(:maximum_seen_major_version) { [1,2,5,6,7,8].sample }
10
10
 
11
11
  let(:do_register) { true }
12
12
 
@@ -355,6 +355,28 @@ describe LogStash::Outputs::ElasticSearch do
355
355
  end
356
356
  end
357
357
 
358
+ describe "the pipeline option" do
359
+ context "with a sprintf and set pipeline" do
360
+ let(:options) { {"pipeline" => "%{pipeline}" } }
361
+
362
+ let(:event) { LogStash::Event.new("pipeline" => "my-ingest-pipeline") }
363
+
364
+ it "should interpolate the pipeline value and set it" do
365
+ expect(subject.event_action_tuple(event)[1]).to include(:pipeline => "my-ingest-pipeline")
366
+ end
367
+ end
368
+
369
+ context "with a sprintf and empty pipeline" do
370
+ let(:options) { {"pipeline" => "%{pipeline}" } }
371
+
372
+ let(:event) { LogStash::Event.new("pipeline" => "") }
373
+
374
+ it "should interpolate the pipeline value but not set it because it is empty" do
375
+ expect(subject.event_action_tuple(event)[1]).not_to include(:pipeline)
376
+ end
377
+ end
378
+ end
379
+
358
380
  describe "SSL end to end" do
359
381
  let(:do_register) { false } # skip the register in the global before block, as is called here.
360
382
 
@@ -11,10 +11,10 @@ describe "whitelisting error types in expected behavior" do
11
11
 
12
12
  before :each do
13
13
  allow(subject.logger).to receive(:warn)
14
+ allow(subject).to receive(:maximum_seen_major_version).and_return(0)
14
15
 
15
16
  subject.register
16
17
 
17
- allow(subject.client).to receive(:maximum_seen_major_version).and_return(0)
18
18
  allow(subject.client).to receive(:get_xpack_info)
19
19
  allow(subject.client).to receive(:bulk).and_return(
20
20
  {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-elasticsearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.5.1
4
+ version: 10.7.3
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-30 00:00:00.000000000 Z
11
+ date: 2020-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -84,6 +84,20 @@ dependencies:
84
84
  - - "<="
85
85
  - !ruby/object:Gem::Version
86
86
  version: '2.99'
87
+ - !ruby/object:Gem::Dependency
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '1.0'
93
+ name: logstash-mixin-ecs_compatibility_support
94
+ prerelease: false
95
+ type: :runtime
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: '1.0'
87
101
  - !ruby/object:Gem::Dependency
88
102
  requirement: !ruby/object:Gem::Requirement
89
103
  requirements:
@@ -159,17 +173,19 @@ files:
159
173
  - lib/logstash/outputs/elasticsearch/common.rb
160
174
  - lib/logstash/outputs/elasticsearch/common_configs.rb
161
175
  - lib/logstash/outputs/elasticsearch/default-ilm-policy.json
162
- - lib/logstash/outputs/elasticsearch/elasticsearch-template-es2x.json
163
- - lib/logstash/outputs/elasticsearch/elasticsearch-template-es5x.json
164
- - lib/logstash/outputs/elasticsearch/elasticsearch-template-es6x.json
165
- - lib/logstash/outputs/elasticsearch/elasticsearch-template-es7x.json
166
- - lib/logstash/outputs/elasticsearch/elasticsearch-template-es8x.json
167
176
  - lib/logstash/outputs/elasticsearch/http_client.rb
168
177
  - lib/logstash/outputs/elasticsearch/http_client/manticore_adapter.rb
169
178
  - lib/logstash/outputs/elasticsearch/http_client/pool.rb
170
179
  - lib/logstash/outputs/elasticsearch/http_client_builder.rb
171
180
  - lib/logstash/outputs/elasticsearch/ilm.rb
172
181
  - lib/logstash/outputs/elasticsearch/template_manager.rb
182
+ - lib/logstash/outputs/elasticsearch/templates/ecs-disabled/elasticsearch-2x.json
183
+ - lib/logstash/outputs/elasticsearch/templates/ecs-disabled/elasticsearch-5x.json
184
+ - lib/logstash/outputs/elasticsearch/templates/ecs-disabled/elasticsearch-6x.json
185
+ - lib/logstash/outputs/elasticsearch/templates/ecs-disabled/elasticsearch-7x.json
186
+ - lib/logstash/outputs/elasticsearch/templates/ecs-disabled/elasticsearch-8x.json
187
+ - lib/logstash/outputs/elasticsearch/templates/ecs-v1/elasticsearch-6x.json
188
+ - lib/logstash/outputs/elasticsearch/templates/ecs-v1/elasticsearch-7x.json
173
189
  - logstash-output-elasticsearch.gemspec
174
190
  - spec/es_spec_helper.rb
175
191
  - spec/fixtures/_nodes/2x_1x.json
@@ -185,6 +201,7 @@ files:
185
201
  - spec/fixtures/scripts/painless/scripted_upsert.painless
186
202
  - spec/fixtures/template-with-policy-es6x.json
187
203
  - spec/fixtures/template-with-policy-es7x.json
204
+ - spec/fixtures/template-with-policy-es8x.json
188
205
  - spec/fixtures/test_certs/ca/ca.crt
189
206
  - spec/fixtures/test_certs/ca/ca.key
190
207
  - spec/fixtures/test_certs/test.crt
@@ -262,6 +279,7 @@ test_files:
262
279
  - spec/fixtures/scripts/painless/scripted_upsert.painless
263
280
  - spec/fixtures/template-with-policy-es6x.json
264
281
  - spec/fixtures/template-with-policy-es7x.json
282
+ - spec/fixtures/template-with-policy-es8x.json
265
283
  - spec/fixtures/test_certs/ca/ca.crt
266
284
  - spec/fixtures/test_certs/ca/ca.key
267
285
  - spec/fixtures/test_certs/test.crt