Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions userspace/falco/config_json_schema.h
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,10 @@ const char config_schema_string[] = LONG_STRING_CONST(
},
"jemalloc_stats_enabled": {
"type": "boolean"
},
"include_k8s_metadata": {
"type": "boolean",
"default": false
}
},
"minProperties": 1,
Expand Down
2 changes: 2 additions & 0 deletions userspace/falco/configuration.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ falco_configuration::falco_configuration():
m_metrics_flags(0),
m_metrics_convert_memory_to_mb(true),
m_metrics_include_empty_values(false),
m_include_k8s_metadata(false),
m_plugins_hostinfo(true),
m_capture_enabled(false),
m_capture_path_prefix("/tmp/falco"),
Expand Down Expand Up @@ -563,6 +564,7 @@ void falco_configuration::load_yaml(const std::string &config_name) {
m_base_syscalls_all = m_config.get_scalar<bool>("base_syscalls.all", false);

m_metrics_enabled = m_config.get_scalar<bool>("metrics.enabled", false);
m_include_k8s_metadata = m_config.get_scalar<bool>("metrics.include_k8s_metadata", false);
m_metrics_interval_str = m_config.get_scalar<std::string>("metrics.interval", "5000");
m_metrics_interval = falco::utils::parse_prometheus_interval(m_metrics_interval_str);
m_metrics_stats_rule_enabled = m_config.get_scalar<bool>("metrics.output_rule", false);
Expand Down
1 change: 1 addition & 0 deletions userspace/falco/configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ class falco_configuration {
uint32_t m_metrics_flags;
bool m_metrics_convert_memory_to_mb;
bool m_metrics_include_empty_values;
bool m_include_k8s_metadata;
std::vector<plugin_config> m_plugins;
bool m_plugins_hostinfo;

Expand Down
6 changes: 6 additions & 0 deletions userspace/falco/falco_metrics.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,12 @@ std::string falco_metrics::falco_to_text_prometheus(
{"priority", std::to_string(rule->priority)},
{"source", rule->source},
};
if(state.config->m_include_k8s_metadata) {
// Kubernetes metadata is not available at metrics aggregation level.
// Expose placeholder labels for consistency with other Falco outputs.
const_labels["k8s_ns_name"] = "n/a";
const_labels["k8s_pod_name"] = "n/a";
}
std::for_each(rule->tags.cbegin(),
rule->tags.cend(),
[&const_labels](std::string const& tag) {
Expand Down