Skip to content

Commit 0439977

Browse files
committed
added new metrics
1 parent 0d083da commit 0439977

5 files changed

Lines changed: 20 additions & 11 deletions

File tree

lib/node/metrics.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { cpu } from "./metrics/cpu-usage";
55
import { loadRuntimeMetrics } from "./metrics/runtime-data";
66
import * as os from "node:os";
77
import { memory } from "./metrics/memory-usage";
8+
import { heap } from "./metrics/heap";
89

910
const DEFAULT_INTERVAL = 30; //seconds
1011

@@ -20,7 +21,8 @@ const collectMetrics = (options: TraceoOptions) => {
2021
const metrics: Metrics = {
2122
cpuUsage: cpu.usage(),
2223
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]
24+
loadAvg: Number(os.loadavg()[0].toFixed(2)),
25+
heap,
2426
};
2527

2628
httpService.sendMetrics(metrics);

lib/node/v8.ts renamed to lib/node/metrics/heap.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,20 @@ import * as v8 from "v8";
44
* https://www.geeksforgeeks.org/node-js-v8-getheapstatistics-method/
55
*
66
*/
7-
const getHeapStatistics = () => v8.getHeapStatistics();
7+
const TO_MB = 1024 * 1024;
88

9-
const getUsedHeapSize = () => getHeapStatistics().used_heap_size;
9+
const getHeapStatistics = () => v8.getHeapStatistics();
1010

1111
const getNumberOfNativeContexts = () =>
1212
getHeapStatistics().number_of_native_contexts;
1313

1414
const getNumberOfDetachedContexts = () =>
1515
getHeapStatistics().number_of_detached_contexts;
1616

17-
export const v8Metrics = {
18-
usedHeapSize: getUsedHeapSize(),
19-
numberOfNativeContexts: getNumberOfNativeContexts(),
20-
numberOfDetachedContexts: getNumberOfDetachedContexts(),
17+
export const heap = {
18+
used: Number((process.memoryUsage().heapUsed / TO_MB).toFixed(2)),
19+
total: Number((process.memoryUsage().heapTotal / TO_MB).toFixed(2)),
20+
rss: Number((process.memoryUsage().rss / TO_MB).toFixed(2)),
21+
nativeContexts: getNumberOfNativeContexts(),
22+
detachedContexts: getNumberOfDetachedContexts(),
2123
};

lib/node/metrics/runtime-data.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,7 @@ export const loadRuntimeMetrics = () => {
7272

7373
const heapStats = v8.getHeapStatistics();
7474
const heapStatistics = {
75-
heap_size_limit: heapStats.heap_size_limit,
76-
total_heap_size_executable: heapStats.total_heap_size_executable,
77-
total_physical_size: heapStats.total_physical_size,
75+
...heapStats
7876
};
7977

8078
const nodeVersion = process.versions;

lib/transport/metrics.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,11 @@ export interface Metrics {
55
percentage: number;
66
};
77
loadAvg?: number;
8+
heap: {
9+
used: number;
10+
total: number;
11+
rss: number;
12+
nativeContexts: number;
13+
detachedContexts: number;
14+
};
815
}

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.117-beta",
3+
"version": "0.0.126-beta",
44
"license": "MIT",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

0 commit comments

Comments
 (0)