Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 21 additions & 17 deletions docs/openrpc/openrpc/stats.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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
}
}
}
Expand All @@ -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"
]
}
}
Expand Down
28 changes: 16 additions & 12 deletions docs/openrpc/the-spec/firebolt-app-open-rpc.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
38 changes: 21 additions & 17 deletions docs/openrpc/the-spec/firebolt-open-rpc--legacy.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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
}
}
}
Expand Down Expand Up @@ -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": {
Expand Down
38 changes: 21 additions & 17 deletions docs/openrpc/the-spec/firebolt-open-rpc.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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
}
}
}
Expand Down Expand Up @@ -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": {
Expand Down
10 changes: 5 additions & 5 deletions include/firebolt/stats.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
*/
Expand Down
19 changes: 9 additions & 10 deletions src/json_types/stats.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,25 +29,24 @@ 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<uint32_t>();
userMemoryLimit = json["userMemoryLimitKiB"].get<uint32_t>();
gpuMemoryUsed = json["gpuMemoryUsedKiB"].get<uint32_t>();
gpuMemoryLimit = json["gpuMemoryLimitKiB"].get<uint32_t>();
userMemoryUsed = json["userMemoryUsed"].get<uint64_t>();
userMemoryLimit = json["userMemoryLimit"].get<uint64_t>();
gpuMemoryUsed = json["gpuMemoryUsed"].get<uint64_t>();
gpuMemoryLimit = json["gpuMemoryLimit"].get<uint64_t>();
}
::Firebolt::Stats::MemoryInfo value() const override
{
return ::Firebolt::Stats::MemoryInfo{userMemoryUsed, userMemoryLimit, gpuMemoryUsed, gpuMemoryLimit};
}

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
4 changes: 2 additions & 2 deletions test/api_test_app/apis/statsDemo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
}
8 changes: 4 additions & 4 deletions test/component/statsTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ TEST_F(StatsCTest, MemoryUsage)

ASSERT_TRUE(result) << "StatsImpl::memoryUsage() returned an error";

EXPECT_EQ(result->gpuMemoryLimit, expectedValue.at("gpuMemoryLimitKiB").get<uint32_t>());
EXPECT_EQ(result->gpuMemoryUsed, expectedValue.at("gpuMemoryUsedKiB").get<uint32_t>());
EXPECT_EQ(result->userMemoryLimit, expectedValue.at("userMemoryLimitKiB").get<uint32_t>());
EXPECT_EQ(result->userMemoryUsed, expectedValue.at("userMemoryUsedKiB").get<uint32_t>());
EXPECT_EQ(result->gpuMemoryLimit, expectedValue.at("gpuMemoryLimit").get<uint64_t>());
EXPECT_EQ(result->gpuMemoryUsed, expectedValue.at("gpuMemoryUsed").get<uint64_t>());
EXPECT_EQ(result->userMemoryLimit, expectedValue.at("userMemoryLimit").get<uint64_t>());
EXPECT_EQ(result->userMemoryUsed, expectedValue.at("userMemoryUsed").get<uint64_t>());
}
8 changes: 4 additions & 4 deletions test/unit/statsTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ TEST_F(StatsUTest, MemoryUsage)

ASSERT_TRUE(result) << "StatsImpl::memoryUsage() returned an error";

EXPECT_EQ(result->userMemoryUsed, expectedValue.at("userMemoryUsedKiB").get<uint32_t>());
EXPECT_EQ(result->userMemoryLimit, expectedValue.at("userMemoryLimitKiB").get<uint32_t>());
EXPECT_EQ(result->gpuMemoryUsed, expectedValue.at("gpuMemoryUsedKiB").get<uint32_t>());
EXPECT_EQ(result->gpuMemoryLimit, expectedValue.at("gpuMemoryLimitKiB").get<uint32_t>());
EXPECT_EQ(result->userMemoryUsed, expectedValue.at("userMemoryUsed").get<uint64_t>());
EXPECT_EQ(result->userMemoryLimit, expectedValue.at("userMemoryLimit").get<uint64_t>());
EXPECT_EQ(result->gpuMemoryUsed, expectedValue.at("gpuMemoryUsed").get<uint64_t>());
EXPECT_EQ(result->gpuMemoryLimit, expectedValue.at("gpuMemoryLimit").get<uint64_t>());
}

TEST_F(StatsUTest, MemoryUsageBadResponse)
Expand Down
Loading