Skip to content

Commit d4f1412

Browse files
committed
added memory usage and loadavg metrics
1 parent ffdff46 commit d4f1412

4 files changed

Lines changed: 28 additions & 1 deletion

File tree

lib/node/metrics.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import { Metrics } from "../transport/metrics";
33
import { TraceoOptions } from "../transport/options";
44
import { cpu } from "./metrics/cpu-usage";
55
import { loadRuntimeMetrics } from "./metrics/runtime-data";
6+
import * as os from "node:os";
7+
import { memory } from "./metrics/memory-sage";
68

79
const DEFAULT_INTERVAL = 30; //seconds
810

@@ -17,6 +19,8 @@ const collectMetrics = (options: TraceoOptions) => {
1719
setInterval(() => {
1820
const metrics: Metrics = {
1921
cpuUsage: cpu.usage(),
22+
memory: memory.usage(),
23+
loadAvg: Number(os.loadavg()[0].toFixed(2)), //The load average is a Unix-specific concept. On Windows, the return value is always [0, 0, 0]
2024
};
2125

2226
httpService.sendMetrics(metrics);

lib/node/metrics/memory-sage.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import * as os from "node:os";
2+
3+
const usage = () => {
4+
const freeMemory = Math.round(os.freemem() / 1024 / 1024);
5+
const totalMemory = Math.round(os.totalmem() / 1024 / 1024);
6+
7+
const usedMemory = Math.round(totalMemory - freeMemory);
8+
const percentageUsed = Number(((usedMemory / totalMemory) * 100).toFixed(2));
9+
10+
return {
11+
mb: usedMemory,
12+
percentage: percentageUsed,
13+
};
14+
};
15+
16+
export const memory = {
17+
usage,
18+
};

lib/transport/metrics.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
export interface Metrics {
22
cpuUsage: number;
3+
memory: {
4+
mb: number;
5+
percentage: number;
6+
};
7+
loadAvg?: number;
38
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "traceo-sdk",
3-
"version": "0.0.116-beta",
3+
"version": "0.0.117-beta",
44
"license": "MIT",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

0 commit comments

Comments
 (0)