mirror of
https://github.com/elastic/logstash.git
synced 2025-04-25 07:07:54 -04:00
include pipeline id in queue path
create queue sub directory based on pipeline id Fixes #6540
This commit is contained in:
parent
f2486324af
commit
b4c7c97452
2 changed files with 20 additions and 2 deletions
|
@ -1,4 +1,5 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
|
require "fileutils"
|
||||||
require "logstash/event"
|
require "logstash/event"
|
||||||
require "logstash/namespace"
|
require "logstash/namespace"
|
||||||
require "logstash/util/wrapped_acked_queue"
|
require "logstash/util/wrapped_acked_queue"
|
||||||
|
@ -24,7 +25,8 @@ module LogStash
|
||||||
LogStash::Util::WrappedSynchronousQueue.new
|
LogStash::Util::WrappedSynchronousQueue.new
|
||||||
when "persisted"
|
when "persisted"
|
||||||
# persisted is the disk based acked queue
|
# persisted is the disk based acked queue
|
||||||
queue_path = settings.get("path.queue")
|
queue_path = ::File.join(settings.get("path.queue"), settings.get("pipeline.id"))
|
||||||
|
FileUtils.mkdir_p(queue_path)
|
||||||
LogStash::Util::WrappedAckedQueue.create_file_based(queue_path, queue_page_capacity, queue_max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval, queue_max_bytes)
|
LogStash::Util::WrappedAckedQueue.create_file_based(queue_path, queue_page_capacity, queue_max_events, checkpoint_max_writes, checkpoint_max_acks, checkpoint_max_interval, queue_max_bytes)
|
||||||
else
|
else
|
||||||
raise ConfigurationError, "Invalid setting `#{queue_type}` for `queue.type`, supported types are: 'memory_acked', 'memory', 'persisted'"
|
raise ConfigurationError, "Invalid setting `#{queue_type}` for `queue.type`, supported types are: 'memory_acked', 'memory', 'persisted'"
|
||||||
|
|
|
@ -4,6 +4,7 @@ require "logstash/settings"
|
||||||
require "stud/temporary"
|
require "stud/temporary"
|
||||||
|
|
||||||
describe LogStash::QueueFactory do
|
describe LogStash::QueueFactory do
|
||||||
|
let(:pipeline_id) { "my_pipeline" }
|
||||||
let(:settings_array) do
|
let(:settings_array) do
|
||||||
[
|
[
|
||||||
LogStash::Setting::WritableDirectory.new("path.queue", Stud::Temporary.pathname),
|
LogStash::Setting::WritableDirectory.new("path.queue", Stud::Temporary.pathname),
|
||||||
|
@ -13,7 +14,8 @@ describe LogStash::QueueFactory do
|
||||||
LogStash::Setting::Numeric.new("queue.max_events", 0),
|
LogStash::Setting::Numeric.new("queue.max_events", 0),
|
||||||
LogStash::Setting::Numeric.new("queue.checkpoint.acks", 1024),
|
LogStash::Setting::Numeric.new("queue.checkpoint.acks", 1024),
|
||||||
LogStash::Setting::Numeric.new("queue.checkpoint.writes", 1024),
|
LogStash::Setting::Numeric.new("queue.checkpoint.writes", 1024),
|
||||||
LogStash::Setting::Numeric.new("queue.checkpoint.interval", 1000)
|
LogStash::Setting::Numeric.new("queue.checkpoint.interval", 1000),
|
||||||
|
LogStash::Setting::String.new("pipeline.id", pipeline_id)
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -36,6 +38,20 @@ describe LogStash::QueueFactory do
|
||||||
it "returns a `WrappedAckedQueue`" do
|
it "returns a `WrappedAckedQueue`" do
|
||||||
expect(subject.create(settings)).to be_kind_of(LogStash::Util::WrappedAckedQueue)
|
expect(subject.create(settings)).to be_kind_of(LogStash::Util::WrappedAckedQueue)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "per pipeline id subdirectory creation" do
|
||||||
|
let(:queue_path) { ::File.join(settings.get("path.queue"), pipeline_id) }
|
||||||
|
|
||||||
|
after :each do
|
||||||
|
FileUtils.rmdir(queue_path)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "creates a queue directory based on the pipeline id" do
|
||||||
|
expect(Dir.exist?(queue_path)).to be_falsey
|
||||||
|
queue = subject.create(settings)
|
||||||
|
expect(Dir.exist?(queue_path)).to be_truthy
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "when `queue.type` is `memory_acked`" do
|
context "when `queue.type` is `memory_acked`" do
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue