90template <
typename Process_writer,
typename System_writer>
92 Process_writer &&write_process,
93 System_writer &&write_system) {
97 std::forward<Process_writer>(write_process)(memory_info.
proc);
99 std::forward<System_writer>(write_system)(memory_info.
sys);
131 std::shared_ptr<Stat_Buffer<System_Memory_Info>>
sys_buffer() {
Definition: health_monitor_collector.h:41
static constexpr uint64_t no_warn_level
Definition: health_monitor_collector.h:121
Memory Collector.
Definition: health_monitor_memory.h:110
uint64_t m_last_warn_level_mb
Definition: health_monitor_memory.h:182
uint64_t m_process_mb
Definition: health_monitor_memory.h:180
uint64_t m_avail_mb
Definition: health_monitor_memory.h:176
void set_warning_state()
Definition: health_monitor_memory.h:147
uint64_t m_max_warn_level_mb
Definition: health_monitor_memory.h:181
std::string format_status_info() override
Memory info formatted string.
Definition: health_monitor_memory.cc:277
const std::string k_warning_level
Definition: health_monitor_memory.h:189
ms::Stop_State m_stop_state
Definition: health_monitor_memory.h:153
std::shared_ptr< Stat_Buffer< System_Memory_Info > > sys_buffer()
Definition: health_monitor_memory.h:131
std::shared_ptr< Stat_Buffer< System_Memory_Info > > m_sys_buffer
Definition: health_monitor_memory.h:193
void set_state(ms::Memory_State &new_state)
Set the next state based on the available memory.
Definition: health_monitor_memory.cc:381
Memory_Info m_info
Definition: health_monitor_memory.h:186
void post_process() override
Final tasks before exiting the thread.
Definition: health_monitor_memory.cc:101
std::shared_ptr< Stat_Buffer< Process_Memory_Info > > m_proc_buffer
Definition: health_monitor_memory.h:192
uint64_t m_warn_level_3_mb
Definition: health_monitor_memory.h:171
int get_process_memory_info(Process_Memory_Info &process_info, bool &unavailable)
Get the physical memory used by the current process.
Definition: health_monitor_memory.cc:185
uint64_t m_warn_level_1_mb
Definition: health_monitor_memory.h:169
void set_params() final
Set collection parameters from the system variables.
Definition: health_monitor_memory.cc:138
bool m_refresh_memory_profile
Definition: health_monitor_memory.h:183
void check_memory_levels() const
Check the available memory against the memory thresholds.
Definition: health_monitor_memory.cc:394
PSI_rwlock_info m_rwlock_info
Definition: health_monitor_memory.h:196
uint64_t m_warn_level_2_mb
Definition: health_monitor_memory.h:170
void pre_process() override
Tasks before starting the collection loop.
Definition: health_monitor_memory.cc:62
static void set_state_params()
Set threshold params for all memory states.
Definition: health_monitor_memory.cc:376
bool settings_changed() override
Indicate if the Memory Collector settings have changed.
Definition: health_monitor_memory.cc:123
int get_memory_info(Memory_Info &memory_info)
Get the current system and process memory info.
Definition: health_monitor_memory.cc:163
void set_buffer_size() final
Resize the stat buffer if necessary.
Definition: health_monitor_memory.cc:109
std::atomic< bool > m_settings_changed
Definition: health_monitor_memory.h:172
ms::Error_State m_error_state
Definition: health_monitor_memory.h:156
uint64_t m_last_avail_mb
Definition: health_monitor_memory.h:177
ms::Start_State m_start_state
Definition: health_monitor_memory.h:152
PSI_memory_key m_memory_key
Definition: health_monitor_memory.h:199
ms::Warning_State m_warning_state
Definition: health_monitor_memory.h:155
PSI_memory_info m_memory_info
Definition: health_monitor_memory.h:200
int get_system_memory_info(System_Memory_Info &sys_memory_info)
Get memory stats for the system.
Definition: health_monitor_memory.cc:201
void log_warning_error_condition()
Error condition warning.
Definition: health_monitor_memory.cc:333
void log_warning_level()
Definition: health_monitor_memory.h:165
Memory_Collector()
Definition: health_monitor_memory.cc:41
std::string tag_collector_state() override
Collector state tag.
Definition: health_monitor_memory.cc:295
uint64_t m_total_mb
Definition: health_monitor_memory.h:175
PSI_rwlock_key m_rwlock_key
Definition: health_monitor_memory.h:195
int m_delta_pct
Definition: health_monitor_memory.h:179
std::string format_settings() override
Memory Collector settings formatted string.
Definition: health_monitor_memory.cc:262
std::shared_ptr< Stat_Buffer< Process_Memory_Info > > proc_buffer()
Definition: health_monitor_memory.h:128
void update_per_sample_totals(const Memory_Info &memory_info)
Update totals used for status and warning messages, convert to MiB.
Definition: health_monitor_memory.cc:211
void process() override
Collect the current memory stats and write to the stat buffer.
Definition: health_monitor_memory.cc:70
bool m_sysinfo_error
Definition: health_monitor_memory.h:185
void set_error_state()
Definition: health_monitor_memory.h:148
void set_normal_state()
Definition: health_monitor_memory.h:146
bool running() const override
Return health_monitor.memory_running.
Definition: health_monitor_memory.cc:154
void log_resource_status() override
Memory status, depending on state.
Definition: health_monitor_memory.cc:341
ms::Normal_State m_normal_state
Definition: health_monitor_memory.h:154
void set_stop_state()
Definition: health_monitor_memory.h:145
float m_used_pct
Definition: health_monitor_memory.h:178
ms::Memory_State * m_current_state
Definition: health_monitor_memory.h:151
void set_start_state()
Definition: health_monitor_memory.h:144
void set_memory_profile(const Memory_Info &memory_info)
Update the memory warning thresholds, convert to MiB.
Definition: health_monitor_memory.cc:246
Error State.
Definition: health_monitor_memory_state.h:126
Definition: health_monitor_memory_state.h:35
Normal State.
Definition: health_monitor_memory_state.h:101
Start State.
Definition: health_monitor_memory_state.h:73
Stop State.
Definition: health_monitor_memory_state.h:87
Warning State.
Definition: health_monitor_memory_state.h:112
#define PSI_DOCUMENT_ME
Definition: component_common.h:29
#define PSI_FLAG_SINGLETON
Singleton flag.
Definition: component_common.h:35
unsigned int PSI_memory_key
Instrumented memory key.
Definition: psi_memory_bits.h:49
unsigned int PSI_rwlock_key
Instrumented rwlock key.
Definition: psi_rwlock_bits.h:44
#define PSI_VOLATILITY_PROVISIONING
Definition: psi_bits.h:155
#define PSI_FLAG_ONLY_GLOBAL_STAT
Global stat only flag.
Definition: psi_bits.h:112
constexpr value_type timestamp
Definition: classic_protocol_constants.h:278
Definition: component_command.h:29
void publish_memory_records(Memory_Info &memory_info, time_t timestamp, Process_writer &&write_process, System_writer &&write_system)
Timestamp and publish the records for one memory sample.
Definition: health_monitor_memory.h:91
Memory instrument information.
Definition: psi_memory_bits.h:58
Rwlock information.
Definition: psi_rwlock_bits.h:162
Memory Info Record structure for health_process_memory and health_system_memory.
Definition: health_monitor_memory.h:70
bool m_process_memory_available
Definition: health_monitor_memory.h:74
System_Memory_Info sys
Definition: health_monitor_memory.h:73
Process_Memory_Info proc
Definition: health_monitor_memory.h:72
Definition: health_monitor_memory.h:37
bool m_page_faults_available
Definition: health_monitor_memory.h:49
uint64_t m_page_faults
Definition: health_monitor_memory.h:46
uint64_t m_vmdata_bytes
Definition: health_monitor_memory.h:44
time_t m_timestamp
Definition: health_monitor_memory.h:40
uint64_t m_vmswap_bytes
Definition: health_monitor_memory.h:45
bool m_residency_available
Definition: health_monitor_memory.h:47
uint64_t m_vmrss_bytes
Definition: health_monitor_memory.h:43
Process_Memory_Info()=default
bool m_details_available
Definition: health_monitor_memory.h:48
std::string m_name
Definition: health_monitor_memory.h:41
uint64_t m_pid
Definition: health_monitor_memory.h:42
Definition: health_monitor_memory.h:52
uint64_t m_swap_total_bytes
Definition: health_monitor_memory.h:60
bool m_swap_capacity_available
Definition: health_monitor_memory.h:63
time_t m_timestamp
Definition: health_monitor_memory.h:55
uint64_t m_avail_bytes
Definition: health_monitor_memory.h:58
uint64_t m_total_bytes
Definition: health_monitor_memory.h:56
uint64_t m_swap_free_bytes
Definition: health_monitor_memory.h:61
bool m_cache_available
Definition: health_monitor_memory.h:62
uint64_t m_cached_bytes
Definition: health_monitor_memory.h:59
System_Memory_Info()=default
uint64_t m_free_bytes
Definition: health_monitor_memory.h:57