diff options
Diffstat (limited to 'LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp')
-rw-r--r-- | LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp b/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp index f63cd88..d965d75 100644 --- a/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp +++ b/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp @@ -31,6 +31,7 @@ SystemdHealthMonitor::SystemdHealthMonitor(ICommandExecutor& executor, Configura : IHealthMonitor(executor, config) , PluginBase(executor, config, HealthMonitor_Api_v1) , mIntervalInMs(-1) +, m_iterationCounter(0) { char* envVar = getenv("WATCHDOG_USEC"); if (envVar) @@ -94,12 +95,28 @@ bool SystemdHealthMonitor::watchdogEnabled() t_ilm_bool SystemdHealthMonitor::threadMainLoop() { - if (watchdogEnabled() && PluginBase::mExecutor.getHealth()) + if (watchdogEnabled() && PluginBase::mExecutor.getHealth() == HealthRunning) { + ++m_iterationCounter; signalWatchdog(); usleep(mIntervalInMs * 1000); } return ILM_TRUE; } +int SystemdHealthMonitor::getPluginReportIntervalInMs() +{ + int result = -1; + if (watchdogEnabled()) + { + result = mIntervalInMs / 2; + } + return result; +} + +int SystemdHealthMonitor::getIterationCounter() +{ + return m_iterationCounter; +} + DECLARE_LAYERMANAGEMENT_PLUGIN(SystemdHealthMonitor) |