mirror of
https://github.com/openappsec/openappsec.git
synced 2026-01-17 16:00:26 +03:00
sync code
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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"},
|
||||
|
||||
Reference in New Issue
Block a user