aboutsummaryrefslogtreecommitdiff
path: root/src/zenutil/jupiter/jupiterbuildstorage.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2025-03-19 16:12:38 +0100
committerGitHub Enterprise <[email protected]>2025-03-19 16:12:38 +0100
commitb625980599880e1e7d1149a51b9562e79c0f2994 (patch)
treece364510b1c51eede0bfbf8f0884fc942e4c3fb3 /src/zenutil/jupiter/jupiterbuildstorage.cpp
parentbuild list filters (#313) (diff)
downloadzen-b625980599880e1e7d1149a51b9562e79c0f2994.tar.xz
zen-b625980599880e1e7d1149a51b9562e79c0f2994.zip
jupiter builds stats upload (#315)
- Improvement: At end of build upload we post statistics to the Jupiter build stats endpoint: - `totalSize` - `reusedRatio` - `reusedBlockCount` - `reusedBlockByteCount` - `newBlockCount` - `newBlockByteCount` - `uploadedCount` - `uploadedByteCount` - `elapsedTimeSec` - `uploadedBytesPerSec`
Diffstat (limited to 'src/zenutil/jupiter/jupiterbuildstorage.cpp')
-rw-r--r--src/zenutil/jupiter/jupiterbuildstorage.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/zenutil/jupiter/jupiterbuildstorage.cpp b/src/zenutil/jupiter/jupiterbuildstorage.cpp
index bf89ce785..d70fd8c00 100644
--- a/src/zenutil/jupiter/jupiterbuildstorage.cpp
+++ b/src/zenutil/jupiter/jupiterbuildstorage.cpp
@@ -348,6 +348,30 @@ public:
return SortedBlockDescriptions;
}
+ virtual void PutBuildPartStats(const Oid& BuildId,
+ const Oid& BuildPartId,
+ const tsl::robin_map<std::string, double>& FloatStats) override
+ {
+ ZEN_UNUSED(BuildId, BuildPartId, FloatStats);
+ CbObjectWriter Request;
+ Request.BeginObject("floatStats"sv);
+ for (auto It : FloatStats)
+ {
+ Request.AddFloat(It.first, It.second);
+ }
+ Request.EndObject();
+ IoBuffer Payload = Request.Save().GetBuffer().AsIoBuffer();
+ Payload.SetContentType(ZenContentType::kCbObject);
+ JupiterResult PutBuildPartStatsResult = m_Session.PutBuildPartStats(m_Namespace, m_Bucket, BuildId, BuildPartId, Payload);
+ AddStatistic(PutBuildPartStatsResult);
+ if (!PutBuildPartStatsResult.Success)
+ {
+ throw std::runtime_error(fmt::format("Failed posting build part statistics: {} ({})",
+ PutBuildPartStatsResult.Reason,
+ PutBuildPartStatsResult.ErrorCode));
+ }
+ }
+
private:
static CbObject PayloadToJson(std::string_view Context, const IoBuffer& Payload)
{