From 7b1c99f53da3a08b844cc7d7ce99530758e34be2 Mon Sep 17 00:00:00 2001 From: Stefan Boberg Date: Wed, 5 Mar 2025 12:25:51 +0100 Subject: Add trace support for zen CLI command (#296) - This change adds support for `--trace`, `--tracehost` and `--tracefile` command arguments to enable and control tracing to Insights - It also adds profiling scopes primarily to build download command related code --- src/zenutil/jupiter/jupiterbuildstorage.cpp | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/zenutil/jupiter/jupiterbuildstorage.cpp') diff --git a/src/zenutil/jupiter/jupiterbuildstorage.cpp b/src/zenutil/jupiter/jupiterbuildstorage.cpp index 481e9146f..309885b05 100644 --- a/src/zenutil/jupiter/jupiterbuildstorage.cpp +++ b/src/zenutil/jupiter/jupiterbuildstorage.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include ZEN_THIRD_PARTY_INCLUDES_START @@ -36,6 +37,8 @@ public: virtual CbObject ListBuilds(CbObject Query) override { + ZEN_TRACE_CPU("Jupiter::ListBuilds"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); IoBuffer Payload = Query.GetBuffer().AsIoBuffer(); @@ -51,6 +54,8 @@ public: virtual CbObject PutBuild(const Oid& BuildId, const CbObject& MetaData) override { + ZEN_TRACE_CPU("Jupiter::PutBuild"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); IoBuffer Payload = MetaData.GetBuffer().AsIoBuffer(); @@ -66,6 +71,8 @@ public: virtual CbObject GetBuild(const Oid& BuildId) override { + ZEN_TRACE_CPU("Jupiter::GetBuild"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); JupiterResult GetBuildResult = m_Session.GetBuild(m_Namespace, m_Bucket, BuildId); @@ -79,6 +86,8 @@ public: virtual void FinalizeBuild(const Oid& BuildId) override { + ZEN_TRACE_CPU("Jupiter::FinalizeBuild"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); JupiterResult FinalizeBuildResult = m_Session.FinalizeBuild(m_Namespace, m_Bucket, BuildId); @@ -95,6 +104,8 @@ public: std::string_view PartName, const CbObject& MetaData) override { + ZEN_TRACE_CPU("Jupiter::PutBuildPart"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); IoBuffer Payload = MetaData.GetBuffer().AsIoBuffer(); @@ -110,6 +121,8 @@ public: virtual CbObject GetBuildPart(const Oid& BuildId, const Oid& BuildPartId) override { + ZEN_TRACE_CPU("Jupiter::GetBuildPart"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); JupiterResult GetBuildPartResult = m_Session.GetBuildPart(m_Namespace, m_Bucket, BuildId, BuildPartId); @@ -126,6 +139,8 @@ public: virtual std::vector FinalizeBuildPart(const Oid& BuildId, const Oid& BuildPartId, const IoHash& PartHash) override { + ZEN_TRACE_CPU("Jupiter::FinalizeBuildPart"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); FinalizeBuildPartResult FinalizePartResult = m_Session.FinalizeBuildPart(m_Namespace, m_Bucket, BuildId, BuildPartId, PartHash); @@ -143,6 +158,8 @@ public: ZenContentType ContentType, const CompositeBuffer& Payload) override { + ZEN_TRACE_CPU("Jupiter::PutBuildBlob"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); JupiterResult PutBlobResult = m_Session.PutBuildBlob(m_Namespace, m_Bucket, BuildId, RawHash, ContentType, Payload); @@ -160,6 +177,8 @@ public: std::function&& Transmitter, std::function&& OnSentBytes) override { + ZEN_TRACE_CPU("Jupiter::PutLargeBuildBlob"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); std::vector> WorkItems; @@ -200,6 +219,8 @@ public: virtual IoBuffer GetBuildBlob(const Oid& BuildId, const IoHash& RawHash) override { + ZEN_TRACE_CPU("Jupiter::GetBuildBlob"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); JupiterResult GetBuildBlobResult = m_Session.GetBuildBlob(m_Namespace, m_Bucket, BuildId, RawHash, m_TempFolderPath); @@ -218,6 +239,8 @@ public: uint64_t ChunkSize, std::function&& Receiver) override { + ZEN_TRACE_CPU("Jupiter::GetLargeBuildBlob"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); std::vector> WorkItems; @@ -249,6 +272,8 @@ public: virtual void PutBlockMetadata(const Oid& BuildId, const IoHash& BlockRawHash, const CbObject& MetaData) override { + ZEN_TRACE_CPU("Jupiter::PutBlockMetadata"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); IoBuffer Payload = MetaData.GetBuffer().AsIoBuffer(); @@ -264,6 +289,8 @@ public: virtual std::vector FindBlocks(const Oid& BuildId) override { + ZEN_TRACE_CPU("Jupiter::FindBlocks"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); JupiterResult FindResult = m_Session.FindBlocks(m_Namespace, m_Bucket, BuildId); @@ -277,6 +304,8 @@ public: virtual std::vector GetBlockMetadata(const Oid& BuildId, std::span BlockHashes) override { + ZEN_TRACE_CPU("Jupiter::GetBlockMetadata"); + Stopwatch ExecutionTimer; auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); }); CbObjectWriter Request; @@ -365,6 +394,8 @@ CreateJupiterBuildStorage(LoggerRef InLog, std::string_view Bucket, const std::filesystem::path& TempFolderPath) { + ZEN_TRACE_CPU("CreateJupiterBuildStorage"); + return std::make_unique(InLog, InHttpClient, Stats, Namespace, Bucket, TempFolderPath); } -- cgit v1.2.3