diff options
| author | Dan Engelbrecht <[email protected]> | 2025-03-19 16:12:38 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-03-19 16:12:38 +0100 |
| commit | b625980599880e1e7d1149a51b9562e79c0f2994 (patch) | |
| tree | ce364510b1c51eede0bfbf8f0884fc942e4c3fb3 /src/zenutil/jupiter/jupiterbuildstorage.cpp | |
| parent | build list filters (#313) (diff) | |
| download | zen-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.cpp | 24 |
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) { |