fix(metrics): convert container memory samples from bytes to MB

Sentinel stores container used memory in bytes while application and
database charts label the series as megabytes. Convert those samples
before they reach the frontend so the graph is not inflated by ~1024x.
This commit is contained in:
Andras Bacsai
2026-08-13 10:58:28 +02:00
parent 6481ffffcf
commit 7162185400
3 changed files with 59 additions and 2 deletions
@@ -0,0 +1,33 @@
<?php
/**
* Sentinel reports container memory `used` in bytes. The application metrics
* chart labels those values as megabytes, so the series must be converted.
*
* @see https://github.com/coollabsio/coolify/issues/11246
*/
it('converts sentinel container memory samples from bytes to megabytes', function () {
$metrics = [
[1_700_000_000_000, 84_996_096.0],
[1_700_000_005_000, 104_857_600.0],
];
$converted = convertContainerMemoryBytesToMegabytes($metrics);
expect($converted)->toBe([
[1_700_000_000_000, 81.06],
[1_700_000_005_000, 100.0],
]);
});
it('preserves timestamps and converts a zero byte sample to zero megabytes', function () {
expect(convertContainerMemoryBytesToMegabytes([
[1_700_000_000_000, 0.0],
]))->toBe([
[1_700_000_000_000, 0.0],
]);
});
it('leaves an empty series unchanged', function () {
expect(convertContainerMemoryBytesToMegabytes([]))->toBe([]);
});