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

Performance monitoring and profiling implementation. More...

#include <string>
#include <memory>
#include <chrono>
#include <vector>
#include <deque>
#include <unordered_map>
#include <mutex>
#include <atomic>
#include <functional>
#include <thread>
#include <algorithm>
#include <numeric>
#include <cmath>
#include <shared_mutex>
#include "../core/result_types.h"
#include "../core/error_codes.h"
#include "../interfaces/monitoring_core.h"
#include <kcenon/common/interfaces/monitoring_interface.h>
Include dependency graph for performance_monitor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kcenon::monitoring::tagged_metric
 Represents a metric value with associated tags. More...
 
struct  kcenon::monitoring::performance_metrics
 Performance metrics for a specific operation. More...
 
struct  kcenon::monitoring::system_metrics
 System resource metrics. More...
 
class  kcenon::monitoring::performance_profiler
 Performance profiler for code sections. More...
 
struct  kcenon::monitoring::performance_profiler::profile_data
 
class  kcenon::monitoring::scoped_timer
 Scoped performance timer. More...
 
class  kcenon::monitoring::system_monitor
 System resource monitor. More...
 
class  kcenon::monitoring::performance_monitor
 Performance monitor combining profiling and system monitoring. More...
 
struct  kcenon::monitoring::performance_monitor::thresholds
 
struct  kcenon::monitoring::performance_monitor::metric_data
 
class  kcenon::monitoring::performance_benchmark
 Performance benchmark utility. More...
 

Namespaces

namespace  kcenon
 
namespace  kcenon::monitoring
 

Macros

#define PERF_TIMER(operation_name)
 Helper macro for timing code sections.
 
#define PERF_TIMER_CUSTOM(profiler, operation_name)
 

Typedefs

using kcenon::monitoring::tag_map = std::unordered_map<std::string, std::string>
 Type alias for metric tags/labels.
 

Enumerations

enum class  kcenon::monitoring::recorded_metric_type { kcenon::monitoring::counter , kcenon::monitoring::gauge , kcenon::monitoring::histogram }
 Types of recorded metrics. More...
 

Functions

performance_monitorkcenon::monitoring::global_performance_monitor ()
 Global performance monitor instance.
 

Detailed Description

Performance monitoring and profiling implementation.

Date
2025

Provides performance monitoring capabilities including CPU, memory, and custom performance metrics collection with minimal overhead.

Definition in file performance_monitor.h.

Macro Definition Documentation

◆ PERF_TIMER

#define PERF_TIMER ( operation_name)
Value:
operation_name \
)
performance_monitor & global_performance_monitor()
Global performance monitor instance.

Helper macro for timing code sections.

Definition at line 615 of file performance_monitor.h.

615#define PERF_TIMER(operation_name) \
616 kcenon::monitoring::scoped_timer _perf_timer( \
617 &kcenon::monitoring::global_performance_monitor().get_profiler(), \
618 operation_name \
619 )

Referenced by TEST_F().

◆ PERF_TIMER_CUSTOM

#define PERF_TIMER_CUSTOM ( profiler,
operation_name )
Value:
kcenon::monitoring::scoped_timer _perf_timer(profiler, operation_name)

Definition at line 621 of file performance_monitor.h.

621#define PERF_TIMER_CUSTOM(profiler, operation_name) \
622 kcenon::monitoring::scoped_timer _perf_timer(profiler, operation_name)