Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::metric_export_config Struct Reference

Configuration for metric exporters. More...

#include <metric_exporters.h>

Collaboration diagram for kcenon::monitoring::metric_export_config:
Collaboration graph

Public Member Functions

common::VoidResult validate () const
 Validate export configuration.
 

Public Attributes

std::string endpoint
 Endpoint URL or address.
 
std::uint16_t port = 0
 Port number (for UDP/TCP)
 
metric_export_format format = metric_export_format::prometheus_text
 
std::chrono::milliseconds push_interval {15000}
 Push interval for push-based systems.
 
std::chrono::milliseconds timeout {5000}
 Request timeout.
 
std::size_t max_batch_size = 1000
 Maximum metrics per batch.
 
std::size_t max_queue_size = 10000
 Maximum queued metrics.
 
bool enable_compression = false
 Enable data compression.
 
std::unordered_map< std::string, std::string > headers
 Custom HTTP headers.
 
std::unordered_map< std::string, std::string > labels
 Default labels/tags.
 
std::string job_name = "monitoring_system"
 Prometheus job name.
 
std::string instance_id
 Instance identifier.
 

Detailed Description

Configuration for metric exporters.

Definition at line 76 of file metric_exporters.h.

Member Function Documentation

◆ validate()

common::VoidResult kcenon::monitoring::metric_export_config::validate ( ) const
inline

Validate export configuration.

Definition at line 93 of file metric_exporters.h.

93 {
94 if (endpoint.empty() && port == 0) {
95 return common::VoidResult::err(error_info(monitoring_error_code::invalid_configuration,
96 "Either endpoint or port must be specified", "monitoring_system").to_common_error());
97 }
98
99 if (push_interval.count() <= 0) {
100 return common::VoidResult::err(error_info(monitoring_error_code::invalid_configuration,
101 "Push interval must be positive", "monitoring_system").to_common_error());
102 }
103
104 if (max_batch_size == 0) {
105 return common::VoidResult::err(error_info(monitoring_error_code::invalid_configuration,
106 "Batch size must be greater than 0", "monitoring_system").to_common_error());
107 }
108
110 return common::VoidResult::err(error_info(monitoring_error_code::invalid_configuration,
111 "Queue size must be at least batch size", "monitoring_system").to_common_error());
112 }
113
114 return common::ok();
115 }
std::size_t max_batch_size
Maximum metrics per batch.
std::chrono::milliseconds push_interval
Push interval for push-based systems.
std::uint16_t port
Port number (for UDP/TCP)
std::size_t max_queue_size
Maximum queued metrics.
std::string endpoint
Endpoint URL or address.

References endpoint, kcenon::monitoring::invalid_configuration, max_batch_size, max_queue_size, port, and push_interval.

Referenced by TEST_F().

Here is the caller graph for this function:

Member Data Documentation

◆ enable_compression

bool kcenon::monitoring::metric_export_config::enable_compression = false

Enable data compression.

Definition at line 84 of file metric_exporters.h.

◆ endpoint

◆ format

◆ headers

std::unordered_map<std::string, std::string> kcenon::monitoring::metric_export_config::headers

Custom HTTP headers.

Definition at line 85 of file metric_exporters.h.

Referenced by kcenon::monitoring::otlp_metrics_exporter::send_via_http().

◆ instance_id

◆ job_name

std::string kcenon::monitoring::metric_export_config::job_name = "monitoring_system"

Prometheus job name.

Definition at line 87 of file metric_exporters.h.

Referenced by kcenon::monitoring::create_prometheus_exporter().

◆ labels

◆ max_batch_size

std::size_t kcenon::monitoring::metric_export_config::max_batch_size = 1000

Maximum metrics per batch.

Definition at line 82 of file metric_exporters.h.

Referenced by TEST_F(), TEST_F(), and validate().

◆ max_queue_size

std::size_t kcenon::monitoring::metric_export_config::max_queue_size = 10000

Maximum queued metrics.

Definition at line 83 of file metric_exporters.h.

Referenced by TEST_F(), and validate().

◆ port

◆ push_interval

std::chrono::milliseconds kcenon::monitoring::metric_export_config::push_interval {15000}

Push interval for push-based systems.

Definition at line 80 of file metric_exporters.h.

80{15000};

Referenced by TEST_F(), and validate().

◆ timeout

std::chrono::milliseconds kcenon::monitoring::metric_export_config::timeout {5000}

The documentation for this struct was generated from the following file: