mirror of
https://github.com/falcosecurity/falco.git
synced 2025-09-09 02:29:36 +00:00
cleanup(outputs): ensure old defaults in queue_capacity_outputs in new config
Co-authored-by: Leonardo Grasso <me@leonardograsso.com> Signed-off-by: Melissa Kilby <melissa.kilby.oss@gmail.com>
This commit is contained in:
@@ -42,7 +42,7 @@ falco_configuration::falco_configuration():
|
||||
m_watch_config_files(true),
|
||||
m_buffered_outputs(false),
|
||||
m_queue_capacity_outputs_items(DEFAULT_ITEMS_QUEUE_CAPAXITY_OUTPUTS),
|
||||
m_queue_capacity_outputs_recovery(RECOVERY_DROP_CURRENT),
|
||||
m_queue_capacity_outputs_recovery(RECOVERY_EXIT),
|
||||
m_time_format_iso_8601(false),
|
||||
m_output_timeout(2000),
|
||||
m_grpc_enabled(false),
|
||||
@@ -285,7 +285,7 @@ void falco_configuration::load_yaml(const std::string& config_name, const yaml_h
|
||||
|
||||
m_buffered_outputs = config.get_scalar<bool>("buffered_outputs", false);
|
||||
m_queue_capacity_outputs_items = config.get_scalar<size_t>("queue_capacity_outputs.items", DEFAULT_ITEMS_QUEUE_CAPAXITY_OUTPUTS);
|
||||
m_queue_capacity_outputs_recovery = config.get_scalar<uint32_t>("queue_capacity_outputs.recovery", RECOVERY_DROP_CURRENT);
|
||||
m_queue_capacity_outputs_recovery = config.get_scalar<uint32_t>("queue_capacity_outputs.recovery", RECOVERY_EXIT);
|
||||
m_time_format_iso_8601 = config.get_scalar<bool>("time_format_iso_8601", false);
|
||||
|
||||
m_webserver_enabled = config.get_scalar<bool>("webserver.enabled", false);
|
||||
|
@@ -13,7 +13,7 @@ limitations under the License.
|
||||
|
||||
#pragma once
|
||||
|
||||
#define DEFAULT_ITEMS_QUEUE_CAPAXITY_OUTPUTS 1000000UL
|
||||
#define DEFAULT_ITEMS_QUEUE_CAPAXITY_OUTPUTS 0
|
||||
|
||||
enum outputs_recovery_code {
|
||||
RECOVERY_DROP_CURRENT = 0, /* queue_capacity_outputs recovery strategy of continuing on. */
|
||||
|
@@ -68,7 +68,11 @@ falco_outputs::falco_outputs(
|
||||
}
|
||||
#ifndef __EMSCRIPTEN__
|
||||
m_worker_thread = std::thread(&falco_outputs::worker, this);
|
||||
m_queue.set_capacity(queue_capacity_outputs_items);
|
||||
if (queue_capacity_outputs_items > 0)
|
||||
{
|
||||
m_queue.set_capacity(queue_capacity_outputs_items);
|
||||
}
|
||||
|
||||
m_recovery = queue_capacity_outputs_recovery;
|
||||
#endif
|
||||
}
|
||||
@@ -289,13 +293,13 @@ inline void falco_outputs::push(const ctrl_msg& cmsg)
|
||||
switch (m_recovery)
|
||||
{
|
||||
case RECOVERY_EXIT:
|
||||
fprintf(stderr, "Fatal error: Output queue reached maximum capacity. Exiting ... \n");
|
||||
fprintf(stderr, "Fatal error: Output queue out of memory. Exiting ... \n");
|
||||
exit(EXIT_FAILURE);
|
||||
case RECOVERY_EMPTY:
|
||||
fprintf(stderr, "Output queue reached maximum capacity. Empty queue and continue ... \n");
|
||||
fprintf(stderr, "Output queue out of memory. Empty queue and continue ... \n");
|
||||
m_queue.empty();
|
||||
default:
|
||||
fprintf(stderr, "Output queue reached maximum capacity. Continue on ... \n");
|
||||
fprintf(stderr, "Output queue out of memory. Continue on ... \n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -91,7 +91,10 @@ stats_writer::stats_writer(
|
||||
m_config = config;
|
||||
// capacity and controls should not be relevant for stats outputs, adopt capacity
|
||||
// for completeness, but do not implement config recovery strategies.
|
||||
m_queue.set_capacity(config->m_queue_capacity_outputs_items);
|
||||
if (config->m_queue_capacity_outputs_items > 0)
|
||||
{
|
||||
m_queue.set_capacity(config->m_queue_capacity_outputs_items);
|
||||
}
|
||||
if (config->m_metrics_enabled)
|
||||
{
|
||||
if (!config->m_metrics_output_file.empty())
|
||||
|
Reference in New Issue
Block a user