Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
resource_manager.h File Reference

Resource exhaustion handling strategies and limits. More...

#include <atomic>
#include <chrono>
#include <functional>
#include <memory>
#include <mutex>
#include <string>
#include <unordered_map>
#include "kcenon/monitoring/core/result_types.h"
Include dependency graph for resource_manager.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kcenon::monitoring::resource_metrics
 Metrics for resource usage tracking. More...
 
struct  kcenon::monitoring::rate_limit_config
 Configuration for rate limiting. More...
 
struct  kcenon::monitoring::resource_quota
 Configuration for resource quotas. More...
 
struct  kcenon::monitoring::cpu_throttle_config
 Configuration for CPU throttling. More...
 
class  kcenon::monitoring::rate_limiter
 Base interface for rate limiters. More...
 
class  kcenon::monitoring::token_bucket_limiter
 Token bucket rate limiter implementation. More...
 
class  kcenon::monitoring::leaky_bucket_limiter
 Leaky bucket rate limiter implementation. More...
 
class  kcenon::monitoring::memory_quota_manager
 Manages memory quota with tracking and throttling. More...
 
class  kcenon::monitoring::cpu_throttler
 Throttles operations based on CPU usage. More...
 
class  kcenon::monitoring::resource_manager
 Coordinates multiple resource management components. More...
 

Namespaces

namespace  kcenon
 
namespace  kcenon::monitoring
 

Enumerations

enum class  kcenon::monitoring::throttling_strategy { kcenon::monitoring::reject , kcenon::monitoring::delay }
 Strategy for handling resource exhaustion. More...
 
enum class  kcenon::monitoring::resource_type { kcenon::monitoring::memory , kcenon::monitoring::cpu }
 Type of resource being managed. More...
 

Functions

std::unique_ptr< token_bucket_limiterkcenon::monitoring::create_token_bucket_limiter (const std::string &name, double rate, size_t capacity, throttling_strategy strategy=throttling_strategy::reject)
 Create a token bucket rate limiter.
 
std::unique_ptr< leaky_bucket_limiterkcenon::monitoring::create_leaky_bucket_limiter (const std::string &name, double rate, size_t capacity)
 Create a leaky bucket rate limiter.
 
std::unique_ptr< memory_quota_managerkcenon::monitoring::create_memory_quota_manager (const std::string &name, size_t max_bytes, throttling_strategy strategy=throttling_strategy::reject)
 Create a memory quota manager.
 
std::unique_ptr< resource_managerkcenon::monitoring::create_resource_manager (const std::string &name)
 Create a resource manager.
 

Detailed Description

Resource exhaustion handling strategies and limits.

Definition in file resource_manager.h.