@@ -31,7 +31,7 @@ export interface MetricsResponse {
3131 dataLatency : LatencyDataPoint [ ] ;
3232}
3333
34- const bytesToGB = ( bytes : number ) => Number ( ( bytes / ( 1024 * 1024 * 1024 ) ) . toFixed ( 2 ) )
34+ const bytesToMB = ( bytes : number ) => Number ( ( bytes / ( 1024 * 1024 ) ) . toFixed ( 2 ) )
3535
3636export default async function ( fastify : FastifyInstance ) {
3737 const calculateMetrics = async ( ) => {
@@ -68,6 +68,8 @@ export default async function (fastify: FastifyInstance) {
6868 let aggregatedSumP90 = 0
6969 let aggregatedSumP95 = 0
7070 let aggregatedSumP99 = 0
71+ let aggregatedRss = 0
72+
7173 const runtimeMetrics = await api . getRuntimeMetrics ( pid , { format : 'json' } )
7274 if ( ! fastify . mappedMetrics [ pid ] ) {
7375 fastify . mappedMetrics [ pid ] = { services : { } , aggregated : { dataCpu : [ ] , dataLatency : [ ] , dataMem : [ ] } }
@@ -108,30 +110,28 @@ export default async function (fastify: FastifyInstance) {
108110 for ( const metric of runtimeMetrics ) {
109111 if ( metric . values . length > 0 ) {
110112 const [ { value, labels } ] = metric . values
113+ if ( metric . name === 'process_resident_memory_bytes' ) {
114+ aggregatedRss = bytesToMB ( value )
115+ }
111116
112117 if ( serviceId === labels . serviceId ) {
113- if ( metric . name === 'process_resident_memory_bytes' ) {
114- serviceMemData . rss = bytesToGB ( value )
115- aggregatedMemData . rss += serviceMemData . rss
116- }
117-
118118 if ( metric . name === 'nodejs_heap_size_total_bytes' ) {
119- serviceMemData . totalHeap = bytesToGB ( value )
119+ serviceMemData . totalHeap = bytesToMB ( value )
120120 aggregatedMemData . totalHeap += serviceMemData . totalHeap
121121 }
122122
123123 if ( metric . name === 'nodejs_heap_size_used_bytes' ) {
124- serviceMemData . usedHeap = bytesToGB ( value )
124+ serviceMemData . usedHeap = bytesToMB ( value )
125125 aggregatedMemData . usedHeap += serviceMemData . usedHeap
126126 }
127127
128128 if ( metric . name === 'nodejs_heap_space_size_used_bytes' ) {
129129 metric . values . forEach ( val => {
130130 if ( val . labels ?. space === 'new' ) {
131- serviceMemData . newSpace = bytesToGB ( val . value )
131+ serviceMemData . newSpace = bytesToMB ( val . value )
132132 aggregatedMemData . newSpace += serviceMemData . newSpace
133133 } else if ( val . labels ?. space === 'old' ) {
134- serviceMemData . oldSpace = bytesToGB ( val . value )
134+ serviceMemData . oldSpace = bytesToMB ( val . value )
135135 aggregatedMemData . oldSpace += serviceMemData . oldSpace
136136 }
137137 } )
@@ -186,6 +186,8 @@ export default async function (fastify: FastifyInstance) {
186186 }
187187 }
188188
189+ serviceMemData . rss = aggregatedRss
190+ aggregatedMemData . rss = aggregatedRss
189191 if ( fastify . mappedMetrics [ pid ] . services [ serviceId ] . dataMem . length >= MAX_STORED_METRICS ) {
190192 fastify . mappedMetrics [ pid ] . services [ serviceId ] . dataMem . shift ( )
191193 }
0 commit comments