aboutsummaryrefslogtreecommitdiff
path: root/src/zenutil/jupiter/jupiterbuildstorage.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2025-03-05 12:25:51 +0100
committerGitHub Enterprise <[email protected]>2025-03-05 12:25:51 +0100
commit7b1c99f53da3a08b844cc7d7ce99530758e34be2 (patch)
treeace6b6184a8fe67d22255833a15b3f922d0be3c5 /src/zenutil/jupiter/jupiterbuildstorage.cpp
parentstreaming compress (#295) (diff)
downloadzen-7b1c99f53da3a08b844cc7d7ce99530758e34be2.tar.xz
zen-7b1c99f53da3a08b844cc7d7ce99530758e34be2.zip
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
Diffstat (limited to 'src/zenutil/jupiter/jupiterbuildstorage.cpp')
-rw-r--r--src/zenutil/jupiter/jupiterbuildstorage.cpp31
1 files changed, 31 insertions, 0 deletions
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 <zencore/fmtutils.h>
#include <zencore/scopeguard.h>
#include <zencore/timer.h>
+#include <zencore/trace.h>
#include <zenutil/jupiter/jupitersession.h>
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<IoHash> 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<IoBuffer(uint64_t Offset, uint64_t Size)>&& Transmitter,
std::function<void(uint64_t, bool)>&& OnSentBytes) override
{
+ ZEN_TRACE_CPU("Jupiter::PutLargeBuildBlob");
+
Stopwatch ExecutionTimer;
auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); });
std::vector<std::function<JupiterResult(bool&)>> 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<void(uint64_t Offset, const IoBuffer& Chunk, uint64_t BytesRemaining)>&& Receiver) override
{
+ ZEN_TRACE_CPU("Jupiter::GetLargeBuildBlob");
+
Stopwatch ExecutionTimer;
auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); });
std::vector<std::function<JupiterResult()>> 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<ChunkBlockDescription> 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<ChunkBlockDescription> GetBlockMetadata(const Oid& BuildId, std::span<const IoHash> 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<JupiterBuildStorage>(InLog, InHttpClient, Stats, Namespace, Bucket, TempFolderPath);
}