1- import { httpService } from "../../core/http" ;
2- import * as os from "node:os" ;
3- import * as v8 from "node:v8" ;
4-
5- const normalizePackageName = ( pkg : string , pkgType : string ) => {
6- let targetKey = pkg . replace ( pkgType , "" ) . replace ( "__" , "@" ) ;
7- if ( targetKey . includes ( "@" ) ) {
8- const [ lib , pkg ] = targetKey . split ( "_" ) ;
9- targetKey = `${ lib } /${ pkg } ` ;
10- }
11-
12- targetKey = targetKey . replace ( "_" , "" ) . replace ( "_" , "-" ) ;
13-
14- return targetKey ;
15- } ;
16-
17- export const loadRuntimeMetrics = ( ) => {
18- const traceoVersion =
19- process . env [ "npm_package_dependencies_traceo" ] ||
20- process . env [ "npm_package_devDependencies_traceo" ] ;
21-
22- const packageEngineNode = process . env [ "npm_package_engines_node" ] ;
23- const packageName = process . env [ "npm_package_name" ] ;
24- const packageDescription = process . env [ "npm_package_description" ] ;
25- const packageVersion = process . env [ "npm_package_version" ] ;
26-
27- const dependencies = { } ;
28- const devDependencies = { } ;
29- const scripts = { } ;
30-
31- for ( const [ key , value ] of Object . entries ( process . env ) ) {
32- if ( key ?. startsWith ( "npm_package_dependencies_" ) ) {
33- const targetKey = normalizePackageName ( key , "npm_package_dependencies" ) ;
34- dependencies [ targetKey ] = value ;
35- }
36-
37- if ( key ?. startsWith ( "npm_package_devDependencies_" ) ) {
38- const targetKey = normalizePackageName ( key , "npm_package_devDependencies" ) ;
39- devDependencies [ targetKey ] = value ;
40- }
41-
42- if ( key ?. startsWith ( "npm_package_scripts_" ) ) {
43- const targetKey = key . replace ( "npm_package_scripts_" , "" ) ;
44- scripts [ targetKey ] = value ;
45- }
46- }
47-
48- const osDataToScrap = [
49- "arch" ,
50- "platform" ,
51- "release" ,
52- "version" ,
53- "homedir" ,
54- "tmpdir" ,
55- "type" ,
56- "hostname" ,
57- ] ;
58- const osData = { } ;
59- for ( const [ key , _ ] of Object . entries ( os ) ) {
60- if ( osDataToScrap . includes ( key ) ) {
61- osData [ key ] = os [ key ] ( ) ;
62- }
63- }
64-
65- const heap = { } ;
66- for ( const [ key , value ] of Object . entries ( v8 . getHeapCodeStatistics ( ) ) ) {
67- heap [ key ] = value ;
68- }
69-
70- const heapStats = v8 . getHeapStatistics ( ) ;
71- const heapStatistics = {
72- heap_size_limit : heapStats . heap_size_limit ,
73- total_heap_size_executable : heapStats . total_heap_size_executable ,
74- total_physical_size : heapStats . total_physical_size ,
75- } ;
76-
77- const nodeVersion = process . versions ;
78-
79- const data = {
80- node : {
81- ...heap ,
82- ...heapStatistics ,
83- ...nodeVersion ,
84- } ,
85- os : osData ,
86- scripts,
87- dependencies,
88- devDependencies,
89- npm : {
90- packageEngineNode,
91- packageName,
92- packageDescription,
93- packageVersion,
94- } ,
95- traceo : {
96- version : traceoVersion ,
97- } ,
98- } ;
99-
100- httpService . sendRuntimeMetrics ( data ) ;
101- } ;
1+ import { httpService } from "../../core/http" ;
2+ import * as os from "node:os" ;
3+ import * as v8 from "node:v8" ;
4+
5+ const normalizePackageName = ( pkg : string , pkgType : string ) => {
6+ let targetKey = pkg . replace ( pkgType , "" ) . replace ( "__" , "@" ) ;
7+ if ( targetKey . includes ( "@" ) ) {
8+ const [ lib , pkg ] = targetKey . split ( "_" ) ;
9+ targetKey = `${ lib } /${ pkg } ` ;
10+ }
11+
12+ targetKey = targetKey . replace ( "_" , "" ) . replace ( "_" , "-" ) ;
13+
14+ return targetKey ;
15+ } ;
16+
17+ export const loadRuntimeMetrics = ( ) => {
18+ const traceoVersion =
19+ process . env [ "npm_package_dependencies_traceo" ] ||
20+ process . env [ "npm_package_devDependencies_traceo" ] ;
21+
22+ const packageEngineNode = process . env [ "npm_package_engines_node" ] ;
23+ const packageName = process . env [ "npm_package_name" ] ;
24+ const packageDescription = process . env [ "npm_package_description" ] ;
25+ const packageVersion = process . env [ "npm_package_version" ] ;
26+
27+ const dependencies = { } ;
28+ const devDependencies = { } ;
29+ const scripts = { } ;
30+
31+ for ( const [ key , value ] of Object . entries ( process . env ) ) {
32+ if ( key ?. startsWith ( "npm_package_dependencies_" ) ) {
33+ const targetKey = normalizePackageName ( key , "npm_package_dependencies" ) ;
34+ dependencies [ targetKey ] = value ;
35+ }
36+
37+ if ( key ?. startsWith ( "npm_package_devDependencies_" ) ) {
38+ const targetKey = normalizePackageName (
39+ key ,
40+ "npm_package_devDependencies"
41+ ) ;
42+ devDependencies [ targetKey ] = value ;
43+ }
44+
45+ if ( key ?. startsWith ( "npm_package_scripts_" ) ) {
46+ const targetKey = key . replace ( "npm_package_scripts_" , "" ) ;
47+ scripts [ targetKey ] = value ;
48+ }
49+ }
50+
51+ const osDataToScrap = [
52+ "arch" ,
53+ "platform" ,
54+ "release" ,
55+ "version" ,
56+ "homedir" ,
57+ "tmpdir" ,
58+ "type" ,
59+ "hostname" ,
60+ ] ;
61+ const osData = { } ;
62+ for ( const [ key , _ ] of Object . entries ( os ) ) {
63+ if ( osDataToScrap . includes ( key ) ) {
64+ osData [ key ] = os [ key ] ( ) ;
65+ }
66+ }
67+
68+ const heap = { } ;
69+ for ( const [ key , value ] of Object . entries ( v8 . getHeapCodeStatistics ( ) ) ) {
70+ heap [ key ] = value ;
71+ }
72+
73+ const heapStats = v8 . getHeapStatistics ( ) ;
74+ 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 ,
78+ } ;
79+
80+ const nodeVersion = process . versions ;
81+
82+ const data = {
83+ node : {
84+ ...heap ,
85+ ...heapStatistics ,
86+ ...nodeVersion ,
87+ } ,
88+ os : osData ,
89+ scripts,
90+ dependencies,
91+ devDependencies,
92+ npm : {
93+ packageEngineNode,
94+ packageName,
95+ packageDescription,
96+ packageVersion,
97+ } ,
98+ traceo : {
99+ version : traceoVersion ,
100+ } ,
101+ } ;
102+
103+ httpService . sendRuntimeMetrics ( data ) ;
104+ } ;
0 commit comments