diff --git a/docs/openrpc/openrpc/stats.json b/docs/openrpc/openrpc/stats.json index 2b41f70..6b7a917 100644 --- a/docs/openrpc/openrpc/stats.json +++ b/docs/openrpc/openrpc/stats.json @@ -8,7 +8,7 @@ "methods": [ { "name": "memoryUsage", - "summary": "Returns information about container memory usage, in units of 1024 bytes.", + "summary": "Returns information about container memory usage in bytes.", "tags": [ { "name": "capabilities", @@ -32,10 +32,10 @@ "name": "value", "description": "The memory usage information", "value": { - "userMemoryUsedKiB": 123456, - "userMemoryLimitKiB": 789012, - "gpuMemoryUsedKiB": 345678, - "gpuMemoryLimitKiB": 901234 + "userMemoryUsed": 126418944, + "userMemoryLimit": 807948288, + "gpuMemoryUsed": 353974272, + "gpuMemoryLimit": 922863616 } } } @@ -49,28 +49,32 @@ "type": "object", "description": "Describes current and maximum memory usage of the container.", "properties": { - "userMemoryUsedKiB": { + "userMemoryUsed": { "type": "integer", - "description": "User memory currently used in 1024 bytes." + "description": "User memory currently used, in bytes.", + "minimum": 0 }, - "userMemoryLimitKiB": { + "userMemoryLimit": { "type": "integer", - "description": "Maximum user memory available in 1024 bytes." + "description": "Maximum user memory available, in bytes.", + "minimum": 0 }, - "gpuMemoryUsedKiB": { + "gpuMemoryUsed": { "type": "integer", - "description": "GPU memory currently used in 1024 bytes." + "description": "GPU memory currently used, in bytes.", + "minimum": 0 }, - "gpuMemoryLimitKiB": { + "gpuMemoryLimit": { "type": "integer", - "description": "Maximum GPU memory available in 1024 bytes." + "description": "Maximum GPU memory available, in bytes.", + "minimum": 0 } }, "required": [ - "userMemoryUsedKiB", - "userMemoryLimitKiB", - "gpuMemoryUsedKiB", - "gpuMemoryLimitKiB" + "userMemoryUsed", + "userMemoryLimit", + "gpuMemoryUsed", + "gpuMemoryLimit" ] } } diff --git a/docs/openrpc/the-spec/firebolt-app-open-rpc.json b/docs/openrpc/the-spec/firebolt-app-open-rpc.json index b2eff49..00437d8 100644 --- a/docs/openrpc/the-spec/firebolt-app-open-rpc.json +++ b/docs/openrpc/the-spec/firebolt-app-open-rpc.json @@ -1009,28 +1009,32 @@ "type": "object", "description": "Describes current and maximum memory usage of the container.", "properties": { - "userMemoryUsedKiB": { + "userMemoryUsed": { "type": "integer", - "description": "User memory currently used in 1024 bytes." + "description": "User memory currently used, in bytes.", + "minimum": 0 }, - "userMemoryLimitKiB": { + "userMemoryLimit": { "type": "integer", - "description": "Maximum user memory available in 1024 bytes." + "description": "Maximum user memory available, in bytes.", + "minimum": 0 }, - "gpuMemoryUsedKiB": { + "gpuMemoryUsed": { "type": "integer", - "description": "GPU memory currently used in 1024 bytes." + "description": "GPU memory currently used, in bytes.", + "minimum": 0 }, - "gpuMemoryLimitKiB": { + "gpuMemoryLimit": { "type": "integer", - "description": "Maximum GPU memory available in 1024 bytes." + "description": "Maximum GPU memory available, in bytes.", + "minimum": 0 } }, "required": [ - "userMemoryUsedKiB", - "userMemoryLimitKiB", - "gpuMemoryUsedKiB", - "gpuMemoryLimitKiB" + "userMemoryUsed", + "userMemoryLimit", + "gpuMemoryUsed", + "gpuMemoryLimit" ] }, "TTSEnabled": { diff --git a/docs/openrpc/the-spec/firebolt-open-rpc--legacy.json b/docs/openrpc/the-spec/firebolt-open-rpc--legacy.json index ea3b2d0..6383dff 100644 --- a/docs/openrpc/the-spec/firebolt-open-rpc--legacy.json +++ b/docs/openrpc/the-spec/firebolt-open-rpc--legacy.json @@ -2707,7 +2707,7 @@ }, { "name": "Stats.memoryUsage", - "summary": "Returns information about container memory usage, in units of 1024 bytes.", + "summary": "Returns information about container memory usage in bytes.", "tags": [ { "name": "capabilities", @@ -2731,10 +2731,10 @@ "name": "value", "description": "The memory usage information", "value": { - "userMemoryUsedKiB": 123456, - "userMemoryLimitKiB": 789012, - "gpuMemoryUsedKiB": 345678, - "gpuMemoryLimitKiB": 901234 + "userMemoryUsed": 126418944, + "userMemoryLimit": 807948288, + "gpuMemoryUsed": 353974272, + "gpuMemoryLimit": 922863616 } } } @@ -3530,28 +3530,32 @@ "type": "object", "description": "Describes current and maximum memory usage of the container.", "properties": { - "userMemoryUsedKiB": { + "userMemoryUsed": { "type": "integer", - "description": "User memory currently used in 1024 bytes." + "description": "User memory currently used, in bytes.", + "minimum": 0 }, - "userMemoryLimitKiB": { + "userMemoryLimit": { "type": "integer", - "description": "Maximum user memory available in 1024 bytes." + "description": "Maximum user memory available, in bytes.", + "minimum": 0 }, - "gpuMemoryUsedKiB": { + "gpuMemoryUsed": { "type": "integer", - "description": "GPU memory currently used in 1024 bytes." + "description": "GPU memory currently used, in bytes.", + "minimum": 0 }, - "gpuMemoryLimitKiB": { + "gpuMemoryLimit": { "type": "integer", - "description": "Maximum GPU memory available in 1024 bytes." + "description": "Maximum GPU memory available, in bytes.", + "minimum": 0 } }, "required": [ - "userMemoryUsedKiB", - "userMemoryLimitKiB", - "gpuMemoryUsedKiB", - "gpuMemoryLimitKiB" + "userMemoryUsed", + "userMemoryLimit", + "gpuMemoryUsed", + "gpuMemoryLimit" ] }, "TTSEnabled": { diff --git a/docs/openrpc/the-spec/firebolt-open-rpc.json b/docs/openrpc/the-spec/firebolt-open-rpc.json index 698d4f1..73c6fef 100644 --- a/docs/openrpc/the-spec/firebolt-open-rpc.json +++ b/docs/openrpc/the-spec/firebolt-open-rpc.json @@ -2228,7 +2228,7 @@ }, { "name": "Stats.memoryUsage", - "summary": "Returns information about container memory usage, in units of 1024 bytes.", + "summary": "Returns information about container memory usage in bytes.", "tags": [ { "name": "capabilities", @@ -2252,10 +2252,10 @@ "name": "value", "description": "The memory usage information", "value": { - "userMemoryUsedKiB": 123456, - "userMemoryLimitKiB": 789012, - "gpuMemoryUsedKiB": 345678, - "gpuMemoryLimitKiB": 901234 + "userMemoryUsed": 126418944, + "userMemoryLimit": 807948288, + "gpuMemoryUsed": 353974272, + "gpuMemoryLimit": 922863616 } } } @@ -3649,28 +3649,32 @@ "type": "object", "description": "Describes current and maximum memory usage of the container.", "properties": { - "userMemoryUsedKiB": { + "userMemoryUsed": { "type": "integer", - "description": "User memory currently used in 1024 bytes." + "description": "User memory currently used, in bytes.", + "minimum": 0 }, - "userMemoryLimitKiB": { + "userMemoryLimit": { "type": "integer", - "description": "Maximum user memory available in 1024 bytes." + "description": "Maximum user memory available, in bytes.", + "minimum": 0 }, - "gpuMemoryUsedKiB": { + "gpuMemoryUsed": { "type": "integer", - "description": "GPU memory currently used in 1024 bytes." + "description": "GPU memory currently used, in bytes.", + "minimum": 0 }, - "gpuMemoryLimitKiB": { + "gpuMemoryLimit": { "type": "integer", - "description": "Maximum GPU memory available in 1024 bytes." + "description": "Maximum GPU memory available, in bytes.", + "minimum": 0 } }, "required": [ - "userMemoryUsedKiB", - "userMemoryLimitKiB", - "gpuMemoryUsedKiB", - "gpuMemoryLimitKiB" + "userMemoryUsed", + "userMemoryLimit", + "gpuMemoryUsed", + "gpuMemoryLimit" ] }, "TTSEnabled": { diff --git a/include/firebolt/stats.h b/include/firebolt/stats.h index 17efcd4..4fdf4c3 100644 --- a/include/firebolt/stats.h +++ b/include/firebolt/stats.h @@ -24,10 +24,10 @@ namespace Firebolt::Stats { struct MemoryInfo { - uint32_t userMemoryUsed; - uint32_t userMemoryLimit; - uint32_t gpuMemoryUsed; - uint32_t gpuMemoryLimit; + uint64_t userMemoryUsed; + uint64_t userMemoryLimit; + uint64_t gpuMemoryUsed; + uint64_t gpuMemoryLimit; }; class IStats @@ -36,7 +36,7 @@ class IStats virtual ~IStats() = default; /** - @brief Returns information about container memory usage, in units of 1024 bytes + @brief Returns information about container memory usage in bytes. * * @retval MemoryInfo struct or error */ diff --git a/src/json_types/stats.h b/src/json_types/stats.h index 45576d7..e8ad013 100644 --- a/src/json_types/stats.h +++ b/src/json_types/stats.h @@ -29,15 +29,14 @@ class MemoryInfo : public Firebolt::JSON::NL_Json_Basic<::Firebolt::Stats::Memor public: void fromJson(const nlohmann::json& json) override { - if (!checkRequiredFields(json, - {"userMemoryUsedKiB", "userMemoryLimitKiB", "gpuMemoryUsedKiB", "gpuMemoryLimitKiB"})) + if (!checkRequiredFields(json, {"userMemoryUsed", "userMemoryLimit", "gpuMemoryUsed", "gpuMemoryLimit"})) { throw std::invalid_argument("Missing required fields in JSON"); } - userMemoryUsed = json["userMemoryUsedKiB"].get(); - userMemoryLimit = json["userMemoryLimitKiB"].get(); - gpuMemoryUsed = json["gpuMemoryUsedKiB"].get(); - gpuMemoryLimit = json["gpuMemoryLimitKiB"].get(); + userMemoryUsed = json["userMemoryUsed"].get(); + userMemoryLimit = json["userMemoryLimit"].get(); + gpuMemoryUsed = json["gpuMemoryUsed"].get(); + gpuMemoryLimit = json["gpuMemoryLimit"].get(); } ::Firebolt::Stats::MemoryInfo value() const override { @@ -45,9 +44,9 @@ class MemoryInfo : public Firebolt::JSON::NL_Json_Basic<::Firebolt::Stats::Memor } private: - uint32_t userMemoryUsed; - uint32_t userMemoryLimit; - uint32_t gpuMemoryUsed; - uint32_t gpuMemoryLimit; + uint64_t userMemoryUsed; + uint64_t userMemoryLimit; + uint64_t gpuMemoryUsed; + uint64_t gpuMemoryLimit; }; } // namespace Firebolt::Stats::JsonData diff --git a/test/api_test_app/apis/statsDemo.cpp b/test/api_test_app/apis/statsDemo.cpp index cc2524f..6fe5047 100644 --- a/test/api_test_app/apis/statsDemo.cpp +++ b/test/api_test_app/apis/statsDemo.cpp @@ -38,8 +38,8 @@ void StatsDemo::runOption(const std::string& method) auto r = Firebolt::IFireboltAccessor::Instance().StatsInterface().memoryUsage(); if (succeed(r)) { - std::cout << "User Memory Used: " << r->userMemoryUsed << " / " << r->userMemoryLimit << std::endl; - std::cout << "GPU Memory Used: " << r->gpuMemoryUsed << " / " << r->gpuMemoryLimit << std::endl; + std::cout << "User Memory Used (bytes): " << r->userMemoryUsed << " / " << r->userMemoryLimit << std::endl; + std::cout << "GPU Memory Used (bytes): " << r->gpuMemoryUsed << " / " << r->gpuMemoryLimit << std::endl; } } } diff --git a/test/component/statsTest.cpp b/test/component/statsTest.cpp index 01d8a29..3f9676e 100644 --- a/test/component/statsTest.cpp +++ b/test/component/statsTest.cpp @@ -33,8 +33,8 @@ TEST_F(StatsCTest, MemoryUsage) ASSERT_TRUE(result) << "StatsImpl::memoryUsage() returned an error"; - EXPECT_EQ(result->gpuMemoryLimit, expectedValue.at("gpuMemoryLimitKiB").get()); - EXPECT_EQ(result->gpuMemoryUsed, expectedValue.at("gpuMemoryUsedKiB").get()); - EXPECT_EQ(result->userMemoryLimit, expectedValue.at("userMemoryLimitKiB").get()); - EXPECT_EQ(result->userMemoryUsed, expectedValue.at("userMemoryUsedKiB").get()); + EXPECT_EQ(result->gpuMemoryLimit, expectedValue.at("gpuMemoryLimit").get()); + EXPECT_EQ(result->gpuMemoryUsed, expectedValue.at("gpuMemoryUsed").get()); + EXPECT_EQ(result->userMemoryLimit, expectedValue.at("userMemoryLimit").get()); + EXPECT_EQ(result->userMemoryUsed, expectedValue.at("userMemoryUsed").get()); } diff --git a/test/unit/statsTest.cpp b/test/unit/statsTest.cpp index fb614e7..355695f 100644 --- a/test/unit/statsTest.cpp +++ b/test/unit/statsTest.cpp @@ -35,10 +35,10 @@ TEST_F(StatsUTest, MemoryUsage) ASSERT_TRUE(result) << "StatsImpl::memoryUsage() returned an error"; - EXPECT_EQ(result->userMemoryUsed, expectedValue.at("userMemoryUsedKiB").get()); - EXPECT_EQ(result->userMemoryLimit, expectedValue.at("userMemoryLimitKiB").get()); - EXPECT_EQ(result->gpuMemoryUsed, expectedValue.at("gpuMemoryUsedKiB").get()); - EXPECT_EQ(result->gpuMemoryLimit, expectedValue.at("gpuMemoryLimitKiB").get()); + EXPECT_EQ(result->userMemoryUsed, expectedValue.at("userMemoryUsed").get()); + EXPECT_EQ(result->userMemoryLimit, expectedValue.at("userMemoryLimit").get()); + EXPECT_EQ(result->gpuMemoryUsed, expectedValue.at("gpuMemoryUsed").get()); + EXPECT_EQ(result->gpuMemoryLimit, expectedValue.at("gpuMemoryLimit").get()); } TEST_F(StatsUTest, MemoryUsageBadResponse)