sync code

This commit is contained in:
Ned Wright
2026-01-03 18:59:01 +00:00
parent c1058db57d
commit 2105628f05
188 changed files with 8272 additions and 2723 deletions

View File

@@ -40,7 +40,13 @@ struct ServiceData
class PrometheusMetricData
{
public:
PrometheusMetricData(const string &n, const string &t, const string &d) : name(n), type(t), description(d) {}
PrometheusMetricData(const string &n, const string &u, const string &t, const string &d)
:
name(n),
unique_name(u),
type(t),
description(d)
{}
void
addElement(const string &labels, const string &value)
@@ -55,7 +61,9 @@ public:
string representative_name = "";
if (!name.empty()) {
auto metric_name = convertMetricName(name);
string metric_name;
if (!unique_name.empty()) metric_name = convertMetricName(unique_name);
if (metric_name.empty()) metric_name = convertMetricName(name);
!metric_name.empty() ? representative_name = metric_name : representative_name = name;
}
@@ -73,6 +81,7 @@ public:
private:
string name;
string unique_name;
string type;
string description;
map<string, string> metric_labels_to_values;
@@ -98,6 +107,7 @@ public:
for(auto &metric : metrics) {
auto &metric_object = getDataObject(
metric.name,
metric.unique_name,
metric.type,
metric.description
);
@@ -107,11 +117,14 @@ public:
private:
PrometheusMetricData &
getDataObject(const string &name, const string &type, const string &description)
getDataObject(const string &name, const string &unique_name, const string &type, const string &description)
{
auto elem = prometheus_metrics.find(name);
auto elem = prometheus_metrics.find(unique_name);
if (elem == prometheus_metrics.end()) {
elem = prometheus_metrics.emplace(name, PrometheusMetricData(name, type, description)).first;
elem = prometheus_metrics.emplace(
unique_name,
PrometheusMetricData(name, unique_name, type, description)
).first;
}
return elem->second;

View File

@@ -71,37 +71,37 @@ convertMetricName(const std::string &original_metric_name)
{"responseBodySizeUponTimeoutMaxSample", "response_body_size_max"},
{"responseBodySizeUponTimeoutMinSample", "response_body_size_min"},
// WaapTelemetrics
{"reservedNgenA", "total_requests_counter"},
{"reservedNgenB", "unique_sources_counter"},
{"reservedNgenC", "requests_blocked_by_force_and_exception_counter"},
{"reservedNgenD", "requests_blocked_by_waf_counter"},
{"reservedNgenE", "requests_blocked_by_open_api_counter"},
{"reservedNgenF", "requests_blocked_by_bot_protection_counter"},
{"reservedNgenG", "requests_threat_level_info_and_no_threat_counter"},
{"reservedNgenH", "requests_threat_level_low_counter"},
{"reservedNgenI", "requests_threat_level_medium_counter"},
{"reservedNgenJ", "requests_threat_level_high_counter"},
{"reservedNgenA_WAAP telemetry", "total_requests_counter"},
{"reservedNgenB_WAAP telemetry", "unique_sources_counter"},
{"reservedNgenC_WAAP telemetry", "requests_blocked_by_force_and_exception_counter"},
{"reservedNgenD_WAAP telemetry", "requests_blocked_by_waf_counter"},
{"reservedNgenE_WAAP telemetry", "requests_blocked_by_open_api_counter"},
{"reservedNgenF_WAAP telemetry", "requests_blocked_by_bot_protection_counter"},
{"reservedNgenG_WAAP telemetry", "requests_threat_level_info_and_no_threat_counter"},
{"reservedNgenH_WAAP telemetry", "requests_threat_level_low_counter"},
{"reservedNgenI_WAAP telemetry", "requests_threat_level_medium_counter"},
{"reservedNgenJ_WAAP telemetry", "requests_threat_level_high_counter"},
// WaapTrafficTelemetrics
{"reservedNgenA", "post_requests_counter"},
{"reservedNgenB", "get_requests_counter"},
{"reservedNgenC", "put_requests_counter"},
{"reservedNgenD", "patch_requests_counter"},
{"reservedNgenE", "delete_requests_counter"},
{"reservedNgenF", "other_requests_counter"},
{"reservedNgenG", "2xx_status_code_responses_counter"},
{"reservedNgenH", "4xx_status_code_responses_counter"},
{"reservedNgenI", "5xx_status_code_responses_counter"},
{"reservedNgenJ", "requests_time_latency_average"},
{"reservedNgenA_WAAP traffic telemetry", "post_requests_counter"},
{"reservedNgenB_WAAP traffic telemetry", "get_requests_counter"},
{"reservedNgenC_WAAP traffic telemetry", "put_requests_counter"},
{"reservedNgenD_WAAP traffic telemetry", "patch_requests_counter"},
{"reservedNgenE_WAAP traffic telemetry", "delete_requests_counter"},
{"reservedNgenF_WAAP traffic telemetry", "other_requests_counter"},
{"reservedNgenG_WAAP traffic telemetry", "status_code_2xx_responses_counter"},
{"reservedNgenH_WAAP traffic telemetry", "status_code_4xx_responses_counter"},
{"reservedNgenI_WAAP traffic telemetry", "status_code_5xx_responses_counter"},
{"reservedNgenJ_WAAP traffic telemetry", "requests_time_latency_average"},
// WaapAttackTypesMetrics
{"reservedNgenA", "sql_injection_attacks_type_counter"},
{"reservedNgenB", "vulnerability_scanning_attacks_type_counter"},
{"reservedNgenC", "path_traversal_attacks_type_counter"},
{"reservedNgenD", "ldap_injection_attacks_type_counter"},
{"reservedNgenE", "evasion_techniques_attacks_type_counter"},
{"reservedNgenF", "remote_code_execution_attacks_type_counter"},
{"reservedNgenG", "xml_extern_entity_attacks_type_counter"},
{"reservedNgenH", "cross_site_scripting_attacks_type_counter"},
{"reservedNgenI", "general_attacks_type_counter"},
{"reservedNgenA_WAAP attack type telemetry", "sql_injection_attacks_type_counter"},
{"reservedNgenB_WAAP attack type telemetry", "vulnerability_scanning_attacks_type_counter"},
{"reservedNgenC_WAAP attack type telemetry", "path_traversal_attacks_type_counter"},
{"reservedNgenD_WAAP attack type telemetry", "ldap_injection_attacks_type_counter"},
{"reservedNgenE_WAAP attack type telemetry", "evasion_techniques_attacks_type_counter"},
{"reservedNgenF_WAAP attack type telemetry", "remote_code_execution_attacks_type_counter"},
{"reservedNgenG_WAAP attack type telemetry", "xml_extern_entity_attacks_type_counter"},
{"reservedNgenH_WAAP attack type telemetry", "cross_site_scripting_attacks_type_counter"},
{"reservedNgenI_WAAP attack type telemetry", "general_attacks_type_counter"},
// AssetsMetric
{"numberOfProtectedApiAssetsSample", "api_assets_counter"},
{"numberOfProtectedWebAppAssetsSample", "web_api_assets_counter"},