aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2024-12-02 12:21:53 +0100
committerGitHub Enterprise <[email protected]>2024-12-02 12:21:53 +0100
commite6f44577f469e891ed8dab1492a4c53224e0b765 (patch)
tree47334606ce62fb6bf1975cdc09276ced335599f4 /src/zenserver
parent5.5.15-pre0 (diff)
downloadzen-e6f44577f469e891ed8dab1492a4c53224e0b765.tar.xz
zen-e6f44577f469e891ed8dab1492a4c53224e0b765.zip
added support for dynamic LLM tags (#245)
* added FLLMTag which can be used to register memory tags outside of core * changed `UE_MEMSCOPE` -> `ZEN_MEMSCOPE` for consistency * instrumented some subsystems with dynamic tags
Diffstat (limited to 'src/zenserver')
-rw-r--r--src/zenserver/cache/httpstructuredcache.cpp13
-rw-r--r--src/zenserver/diag/diagsvcs.cpp13
-rw-r--r--src/zenserver/diag/logging.cpp9
-rw-r--r--src/zenserver/main.cpp11
-rw-r--r--src/zenserver/projectstore/httpprojectstore.cpp11
-rw-r--r--src/zenserver/zenserver.cpp18
6 files changed, 72 insertions, 3 deletions
diff --git a/src/zenserver/cache/httpstructuredcache.cpp b/src/zenserver/cache/httpstructuredcache.cpp
index f49f6a645..a6606c7ad 100644
--- a/src/zenserver/cache/httpstructuredcache.cpp
+++ b/src/zenserver/cache/httpstructuredcache.cpp
@@ -10,6 +10,7 @@
#include <zencore/enumflags.h>
#include <zencore/fmtutils.h>
#include <zencore/logging.h>
+#include <zencore/memory/llm.h>
#include <zencore/scopeguard.h>
#include <zencore/stream.h>
#include <zencore/timer.h>
@@ -42,6 +43,14 @@
namespace zen {
+const FLLMTag&
+GetCacheHttpTag()
+{
+ static FLLMTag CacheHttpTag("http", FLLMTag("cache"));
+
+ return CacheHttpTag;
+}
+
using namespace std::literals;
//////////////////////////////////////////////////////////////////////////
@@ -365,6 +374,8 @@ HttpStructuredCacheService::HandleRequest(HttpServerRequest& Request)
{
ZEN_TRACE_CPU("z$::Http::HandleRequest");
+ ZEN_MEMSCOPE(GetCacheHttpTag());
+
metrics::OperationTiming::Scope $(m_HttpRequests);
const std::string_view Key = Request.RelativeUri();
@@ -1742,6 +1753,8 @@ HttpStructuredCacheService::HandleRpcRequest(HttpServerRequest& Request, std::st
void
HttpStructuredCacheService::HandleStatsRequest(HttpServerRequest& Request)
{
+ ZEN_MEMSCOPE(GetCacheHttpTag());
+
CbObjectWriter Cbo;
EmitSnapshot("requests", m_HttpRequests, Cbo);
diff --git a/src/zenserver/diag/diagsvcs.cpp b/src/zenserver/diag/diagsvcs.cpp
index f0aec98ab..8abf6e8a3 100644
--- a/src/zenserver/diag/diagsvcs.cpp
+++ b/src/zenserver/diag/diagsvcs.cpp
@@ -7,6 +7,7 @@
#include <zencore/config.h>
#include <zencore/filesystem.h>
#include <zencore/logging.h>
+#include <zencore/memory/llm.h>
#include <zencore/string.h>
#include <fstream>
#include <sstream>
@@ -17,6 +18,14 @@ ZEN_THIRD_PARTY_INCLUDES_END
namespace zen {
+const FLLMTag&
+GetHealthTag()
+{
+ static FLLMTag CacheHttpTag("health");
+
+ return CacheHttpTag;
+}
+
using namespace std::literals;
static bool
@@ -45,6 +54,8 @@ ReadLogFile(const std::string& Path, StringBuilderBase& Out)
HttpHealthService::HttpHealthService()
{
+ ZEN_MEMSCOPE(GetHealthTag());
+
m_Router.RegisterRoute(
"",
[](HttpRouterRequest& RoutedReq) {
@@ -115,6 +126,7 @@ HttpHealthService::HttpHealthService()
void
HttpHealthService::SetHealthInfo(HealthServiceInfo&& Info)
{
+ ZEN_MEMSCOPE(GetHealthTag());
RwLock::ExclusiveLockScope _(m_InfoLock);
m_HealthInfo = std::move(Info);
}
@@ -128,6 +140,7 @@ HttpHealthService::BaseUri() const
void
HttpHealthService::HandleRequest(HttpServerRequest& Request)
{
+ ZEN_MEMSCOPE(GetHealthTag());
if (!m_Router.HandleRequest(Request))
{
Request.WriteResponse(HttpResponseCode::OK, HttpContentType::kText, u8"OK!"sv);
diff --git a/src/zenserver/diag/logging.cpp b/src/zenserver/diag/logging.cpp
index 0d96cd8d6..f3d3377b0 100644
--- a/src/zenserver/diag/logging.cpp
+++ b/src/zenserver/diag/logging.cpp
@@ -21,7 +21,7 @@ namespace zen {
void
InitializeServerLogging(const ZenServerOptions& InOptions)
{
- UE_MEMSCOPE(ELLMTag::Logging);
+ ZEN_MEMSCOPE(ELLMTag::Logging);
const LoggingOptions LogOptions = {.IsDebug = InOptions.IsDebug,
.IsVerbose = false,
@@ -76,13 +76,16 @@ InitializeServerLogging(const ZenServerOptions& InOptions)
const zen::Oid ServerSessionId = zen::GetSessionId();
- spdlog::apply_all([&](auto Logger) { Logger->info("server session id: {}", ServerSessionId); });
+ spdlog::apply_all([&](auto Logger) {
+ ZEN_MEMSCOPE(ELLMTag::Logging);
+ Logger->info("server session id: {}", ServerSessionId);
+ });
}
void
ShutdownServerLogging()
{
- UE_MEMSCOPE(ELLMTag::Logging);
+ ZEN_MEMSCOPE(ELLMTag::Logging);
zen::ShutdownLogging();
}
diff --git a/src/zenserver/main.cpp b/src/zenserver/main.cpp
index 4444241cc..d5419d342 100644
--- a/src/zenserver/main.cpp
+++ b/src/zenserver/main.cpp
@@ -18,6 +18,7 @@
#include <zenhttp/httpserver.h>
#include <zencore/memory/fmalloc.h>
+#include <zencore/memory/llm.h>
#include <zencore/memory/memory.h>
#include <zencore/memory/memorytrace.h>
#include <zencore/memory/newdelete.h>
@@ -58,6 +59,14 @@ SignalCallbackHandler(int SigNum)
namespace zen {
+static const FLLMTag&
+GetZenserverTag()
+{
+ static FLLMTag _("zenserver");
+
+ return _;
+}
+
using namespace std::literals;
////////////////////////////////////////////////////////////////////////////////
@@ -440,6 +449,8 @@ main(int argc, char* argv[])
}
#endif
+ ZEN_MEMSCOPE(GetZenserverTag());
+
#if ZEN_PLATFORM_WINDOWS
if (ServerOptions.InstallService)
{
diff --git a/src/zenserver/projectstore/httpprojectstore.cpp b/src/zenserver/projectstore/httpprojectstore.cpp
index 4babcd224..c06ad8918 100644
--- a/src/zenserver/projectstore/httpprojectstore.cpp
+++ b/src/zenserver/projectstore/httpprojectstore.cpp
@@ -11,6 +11,7 @@
#include <zencore/filesystem.h>
#include <zencore/fmtutils.h>
#include <zencore/logging.h>
+#include <zencore/memory/llm.h>
#include <zencore/stream.h>
#include <zencore/trace.h>
#include <zenstore/zenstore.h>
@@ -18,6 +19,14 @@
namespace zen {
+const FLLMTag&
+GetProjectHttpTag()
+{
+ static FLLMTag CacheHttpTag("http", FLLMTag("project"));
+
+ return CacheHttpTag;
+}
+
void
CSVHeader(bool Details, bool AttachmentDetails, StringBuilderBase& CSVWriter)
{
@@ -372,6 +381,8 @@ HttpProjectService::HandleRequest(HttpServerRequest& Request)
{
m_ProjectStats.RequestCount++;
+ ZEN_MEMSCOPE(GetProjectHttpTag());
+
metrics::OperationTiming::Scope $(m_HttpRequests);
if (m_Router.HandleRequest(Request) == false)
diff --git a/src/zenserver/zenserver.cpp b/src/zenserver/zenserver.cpp
index f6d6556a0..3714dfaeb 100644
--- a/src/zenserver/zenserver.cpp
+++ b/src/zenserver/zenserver.cpp
@@ -54,8 +54,18 @@ ZEN_THIRD_PARTY_INCLUDES_END
#include "config.h"
#include "diag/logging.h"
+#include <zencore/memory/llm.h>
+
namespace zen {
+static const FLLMTag&
+GetZenserverTag()
+{
+ static FLLMTag _("zenserver");
+
+ return _;
+}
+
namespace utils {
extern std::atomic_uint32_t SignalCounter[NSIG];
}
@@ -117,6 +127,7 @@ ZenServer::OnReady()
int
ZenServer::Initialize(const ZenServerOptions& ServerOptions, ZenServerState::ZenServerEntry* ServerEntry)
{
+ ZEN_MEMSCOPE(GetZenserverTag());
const std::string MutexName = fmt::format("zen_{}", ServerOptions.BasePort);
if (NamedMutex::Exists(MutexName))
@@ -806,6 +817,7 @@ ZenServer::Cleanup()
void
ZenServer::EnsureIoRunner()
{
+ ZEN_MEMSCOPE(GetZenserverTag());
if (!m_IoRunner.joinable())
{
m_IoRunner = std::thread{[this] {
@@ -818,6 +830,7 @@ ZenServer::EnsureIoRunner()
void
ZenServer::EnqueueProcessMonitorTimer()
{
+ ZEN_MEMSCOPE(GetZenserverTag());
m_PidCheckTimer.expires_after(std::chrono::seconds(1));
m_PidCheckTimer.async_wait([this](const asio::error_code&) { CheckOwnerPid(); });
@@ -827,6 +840,7 @@ ZenServer::EnqueueProcessMonitorTimer()
void
ZenServer::EnqueueStateMarkerTimer()
{
+ ZEN_MEMSCOPE(GetZenserverTag());
m_StateMakerTimer.expires_after(std::chrono::seconds(5));
m_StateMakerTimer.async_wait([this](const asio::error_code&) { CheckStateMarker(); });
EnsureIoRunner();
@@ -835,6 +849,7 @@ ZenServer::EnqueueStateMarkerTimer()
void
ZenServer::EnqueueSigIntTimer()
{
+ ZEN_MEMSCOPE(GetZenserverTag());
m_SigIntTimer.expires_after(std::chrono::milliseconds(500));
m_SigIntTimer.async_wait([this](const asio::error_code&) { CheckSigInt(); });
EnsureIoRunner();
@@ -843,6 +858,7 @@ ZenServer::EnqueueSigIntTimer()
void
ZenServer::EnqueueStateExitFlagTimer()
{
+ ZEN_MEMSCOPE(GetZenserverTag());
m_StateExitFlagTimer.expires_after(std::chrono::milliseconds(500));
m_StateExitFlagTimer.async_wait([this](const asio::error_code&) { CheckStateExitFlag(); });
EnsureIoRunner();
@@ -851,6 +867,7 @@ ZenServer::EnqueueStateExitFlagTimer()
void
ZenServer::EnqueueStatsReportingTimer()
{
+ ZEN_MEMSCOPE(GetZenserverTag());
m_StatsReportingTimer.expires_after(std::chrono::milliseconds(500));
m_StatsReportingTimer.async_wait([this](const asio::error_code& Ec) {
if (!Ec)
@@ -865,6 +882,7 @@ ZenServer::EnqueueStatsReportingTimer()
void
ZenServer::CheckStateMarker()
{
+ ZEN_MEMSCOPE(GetZenserverTag());
std::filesystem::path StateMarkerPath = m_DataRoot / "state_marker";
try
{