aboutsummaryrefslogtreecommitdiff
path: root/src/zenutil
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2026-03-20 13:44:00 +0100
committerGitHub Enterprise <[email protected]>2026-03-20 13:44:00 +0100
commit7cc4b1701aa2923573adabceed486229abba5a2d (patch)
tree04a1b5eddcabd24e5c5a50a817fa50c5829972f2 /src/zenutil
parentZs/consul token (#870) (diff)
downloadzen-7cc4b1701aa2923573adabceed486229abba5a2d.tar.xz
zen-7cc4b1701aa2923573adabceed486229abba5a2d.zip
add hub instance info (#869)
- Improvement: Hub module listing now includes per-instance process metrics (memory, CPU time, working set, pagefile usage) - Improvement: Hub now monitors provisioned instance health in the background and refreshes process metrics periodically - Improvement: Hub no longer exposes raw `StorageServerInstance` pointers to callers; instance state is returned as value snapshots (`Hub::InstanceInfo`) - Improvement: Hub instance access is now guarded by RAII per-instance locks (`SharedLockedPtr`/`ExclusiveLockedPtr`), preventing concurrent modifications during provisioning and deprovisioning - Improvement: Hub instance lifecycle is now tracked as a `HubInstanceState` enum covering transitional states (Provisioning, Deprovisioning, Hibernating, Waking); exposed as a string in the HTTP API and dashboard
Diffstat (limited to 'src/zenutil')
-rw-r--r--src/zenutil/include/zenutil/zenserverprocess.h27
-rw-r--r--src/zenutil/zenserverprocess.cpp2
2 files changed, 15 insertions, 14 deletions
diff --git a/src/zenutil/include/zenutil/zenserverprocess.h b/src/zenutil/include/zenutil/zenserverprocess.h
index 5528b766c..308ae0ef2 100644
--- a/src/zenutil/include/zenutil/zenserverprocess.h
+++ b/src/zenutil/include/zenutil/zenserverprocess.h
@@ -115,22 +115,23 @@ struct ZenServerInstance
ZenServerInstance(ZenServerEnvironment& TestEnvironment, ServerMode Mode = ServerMode::kStorageServer);
~ZenServerInstance();
- int Shutdown();
- bool SignalShutdown(std::error_code& OutEc);
- uint16_t WaitUntilReady();
- [[nodiscard]] bool WaitUntilReady(int Timeout);
- [[nodiscard]] bool WaitUntilExited(int Timeout, std::error_code& OutEc);
- void EnableTermination() { m_Terminate = true; }
- void EnableShutdownOnDestroy() { m_ShutdownOnDestroy = true; }
- void DisableShutdownOnDestroy() { m_ShutdownOnDestroy = false; }
- void Detach();
- inline int GetPid() const { return m_Process.Pid(); }
- inline void SetOwnerPid(int Pid) { m_OwnerPid = Pid; }
- void* GetProcessHandle() const { return m_Process.Handle(); }
+ int Shutdown();
+ bool SignalShutdown(std::error_code& OutEc);
+ uint16_t WaitUntilReady();
+ [[nodiscard]] bool WaitUntilReady(int Timeout);
+ [[nodiscard]] bool WaitUntilExited(int Timeout, std::error_code& OutEc);
+ void EnableTermination() { m_Terminate = true; }
+ void EnableShutdownOnDestroy() { m_ShutdownOnDestroy = true; }
+ void DisableShutdownOnDestroy() { m_ShutdownOnDestroy = false; }
+ void Detach();
+ inline int GetPid() const { return m_Process.Pid(); }
+ inline void SetOwnerPid(int Pid) { m_OwnerPid = Pid; }
+ const ProcessHandle& GetProcessHandle() const { return m_Process; }
+
#if ZEN_PLATFORM_WINDOWS
void SetJobObject(JobObject* Job) { m_JobObject = Job; }
#endif
- bool IsRunning();
+ bool IsRunning() const;
bool Terminate();
std::string GetLogOutput() const;
diff --git a/src/zenutil/zenserverprocess.cpp b/src/zenutil/zenserverprocess.cpp
index ebce9730e..8eaf2cf5b 100644
--- a/src/zenutil/zenserverprocess.cpp
+++ b/src/zenutil/zenserverprocess.cpp
@@ -1419,7 +1419,7 @@ ZenServerInstance::SetDataDir(std::filesystem::path TestDir)
}
bool
-ZenServerInstance::IsRunning()
+ZenServerInstance::IsRunning() const
{
if (!m_Process.IsValid())
{