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/filebuildstorage.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/filebuildstorage.cpp')
| -rw-r--r-- | src/zenutil/filebuildstorage.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/zenutil/filebuildstorage.cpp b/src/zenutil/filebuildstorage.cpp index 47a4e1cc4..130fec355 100644 --- a/src/zenutil/filebuildstorage.cpp +++ b/src/zenutil/filebuildstorage.cpp @@ -502,6 +502,30 @@ public: return Result; } + virtual void PutBuildPartStats(const Oid& BuildId, + const Oid& BuildPartId, + const tsl::robin_map<std::string, double>& FloatStats) override + { + CbObjectWriter Request; + Request.BeginObject("floatStats"sv); + for (auto It : FloatStats) + { + Request.AddFloat(It.first, It.second); + } + Request.EndObject(); + CbObject Payload = Request.Save(); + + SimulateLatency(Payload.GetSize(), 0); + + const std::filesystem::path BuildPartStatsDataPath = GetBuildPartStatsPath(BuildId, BuildPartId); + CreateDirectories(BuildPartStatsDataPath.parent_path()); + + TemporaryFile::SafeWriteFile(BuildPartStatsDataPath, Payload.GetView()); + WriteAsJson(BuildPartStatsDataPath, Payload); + + SimulateLatency(0, 0); + } + protected: std::filesystem::path GetBuildsFolder() const { return m_StoragePath / "builds"; } std::filesystem::path GetBlobsFolder() const { return m_StoragePath / "blobs"; } @@ -520,6 +544,11 @@ protected: return GetBuildPartFolder(BuildId, BuildPartId) / "metadata.cb"; } + std::filesystem::path GetBuildPartStatsPath(const Oid& BuildId, const Oid& BuildPartId) const + { + return GetBuildPartFolder(BuildId, BuildPartId) / fmt::format("stats_{}.cb", Oid::NewOid()); + } + std::filesystem::path GetBlobPayloadPath(const IoHash& RawHash) const { return GetBlobsFolder() / fmt::format("{}.cbz", RawHash); } std::filesystem::path GetBlobMetadataPath(const IoHash& RawHash) const |