diff options
| author | Stefan Boberg <[email protected]> | 2024-12-02 12:21:53 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-12-02 12:21:53 +0100 |
| commit | e6f44577f469e891ed8dab1492a4c53224e0b765 (patch) | |
| tree | 47334606ce62fb6bf1975cdc09276ced335599f4 /src/zenserver | |
| parent | 5.5.15-pre0 (diff) | |
| download | zen-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.cpp | 13 | ||||
| -rw-r--r-- | src/zenserver/diag/diagsvcs.cpp | 13 | ||||
| -rw-r--r-- | src/zenserver/diag/logging.cpp | 9 | ||||
| -rw-r--r-- | src/zenserver/main.cpp | 11 | ||||
| -rw-r--r-- | src/zenserver/projectstore/httpprojectstore.cpp | 11 | ||||
| -rw-r--r-- | src/zenserver/zenserver.cpp | 18 |
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 { |